<?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>180016</bug_id>
          
          <creation_ts>2017-11-26 08:18:33 -0800</creation_ts>
          <short_desc>[JSC] Remove JSStringBuilder</short_desc>
          <delta_ts>2017-11-26 17:23:26 -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>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>jfbastien</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>1374732</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-11-26 08:18:33 -0800</bug_when>
    <thetext>[JSC] Remove JSStringBuilder</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1374733</commentid>
    <comment_count>1</comment_count>
      <attachid>327583</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-11-26 08:19:22 -0800</bug_when>
    <thetext>Created attachment 327583
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1374734</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2017-11-26 08:21:03 -0800</bug_when>
    <thetext>Attachment 327583 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/FunctionPrototype.cpp:33:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 7 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>1374735</commentid>
    <comment_count>3</comment_count>
      <attachid>327584</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-11-26 08:27:01 -0800</bug_when>
    <thetext>Created attachment 327584
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1374759</commentid>
    <comment_count>4</comment_count>
      <attachid>327584</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-11-26 15:37:13 -0800</bug_when>
    <thetext>Comment on attachment 327584
Patch

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

&gt; Source/JavaScriptCore/runtime/JSStringInlines.h:50
&gt; +    String result = tryMakeString(string, strings...);

Would it be better to use forwarding semantics here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1374780</commentid>
    <comment_count>5</comment_count>
      <attachid>327584</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-11-26 17:18:50 -0800</bug_when>
    <thetext>Comment on attachment 327584
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/JSStringInlines.h:50
&gt;&gt; +    String result = tryMakeString(string, strings...);
&gt; 
&gt; Would it be better to use forwarding semantics here?

Yeah, good call! Changed :D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1374783</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-11-26 17:22:49 -0800</bug_when>
    <thetext>Committed r225150: &lt;https://trac.webkit.org/changeset/225150&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1374784</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-26 17:23:26 -0800</bug_when>
    <thetext>&lt;rdar://problem/35690851&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327583</attachid>
            <date>2017-11-26 08:19:22 -0800</date>
            <delta_ts>2017-11-26 08:26:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180016-20171127011921.patch</filename>
            <type>text/plain</type>
            <size>20136</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1MTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
Y2VlNjIyNTIxOGM2ZTE3ZTZhNzViMDMxMWY1YTdiYTE5Yjc1ZWQ2Li5mODM1YzZiYWY4MmNlZTZj
ZDg2N2FmYzE0NDA4ZjQwNDFiNWMwN2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAxNy0xMS0yNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBSZW1vdmUgSlNTdHJpbmdCdWlsZGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODAwMTYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBKU1N0cmluZ0J1aWxkZXIgaXMg
cmVwbGFjZWQgd2l0aCBXVEY6OlN0cmluZ0J1aWxkZXIuCisgICAgICAgIFRoaXMgcGF0Y2ggcmVt
b3ZlcyByZW1hbmluZyB1c2VzIGFuZCBkcm9wIEpTU3RyaW5nQnVpbGRlci4KKworICAgICAgICAq
IEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcnVu
dGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9Bc3luY0Z1bmN0aW9u
UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVuY3Rpb25Q
cm90b3R5cGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwOgorICAg
ICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUv
R2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9i
YWxPYmplY3RGdW5jdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpkZWNvZGUpOgorICAgICAgICAo
SlNDOjpnbG9iYWxGdW5jRXNjYXBlKToKKyAgICAgICAgKiBydW50aW1lL0pTU3RyaW5nQnVpbGRl
ci5oOiBSZW1vdmVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNTdHJpbmdJbmxpbmVzLmg6CisgICAg
ICAgIChKU0M6OmpzTWFrZU5vbnRyaXZpYWxTdHJpbmcpOgorICAgICAgICAqIHJ1bnRpbWUvUmVn
RXhwUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHA6
CisKIDIwMTYtMDgtMDUgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAg
IEZpeCBzb21lIG1pbm9yIHByb2JsZW1zIGluIHRoZSBTdHJpbmdJbXBsIGhlYWRlcgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhOWM0YTk5YmFiMDUwODA3ZTY3MjZlMTZiYjI1OWFk
MDJiMjY0ZDcwLi5jODE0NjIyMDJiMjQxZmZjMDRmMTk1OGYxNDAyNjViM2RlNmMwZDE5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTE1MSw3ICsxMTUxLDYgQEAKIAkJODZFM0M2
MTkxNjdCQUJFRTAwNkQ3NjBBIC8qIEpTV3JhcHBlck1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZFM0M2MEMxNjdCQUI4NzAwNkQ3NjBBIC8qIEpT
V3JhcHBlck1hcC5oICovOyB9OwogCQk4NkUzQzYxQjE2N0JBQkVFMDA2RDc2MEEgLyogSlNWYWx1
ZUludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4NkUzQzYwRTE2N0JBQjg3MDA2RDc2MEEgLyogSlNWYWx1ZUludGVybmFsLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODZFM0M2MUQxNjdCQUJF
RTAwNkQ3NjBBIC8qIEpTVmlydHVhbE1hY2hpbmVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZFM0M2MTExNjdCQUI4NzAwNkQ3NjBBIC8q
IEpTVmlydHVhbE1hY2hpbmVJbnRlcm5hbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07Ci0JCTg2RTg1NTM5MTExQjk5NjgwMDFBRjUxRSAvKiBKU1N0cmlu
Z0J1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg2RTg1NTM4MTExQjk5NjgwMDFBRjUxRSAvKiBKU1N0cmluZ0J1aWxkZXIuaCAqLzsgfTsKIAkJ
ODZFQzlEQzUxMzI4REY4MjAwMkIyQUQ3IC8qIERGR0J5dGVDb2RlUGFyc2VyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURCNTEzMjhERjgyMDAy
QjJBRDcgLyogREZHQnl0ZUNvZGVQYXJzZXIuaCAqLzsgfTsKIAkJODZFQzlEQzYxMzI4REY4MjAw
MkIyQUQ3IC8qIERGR0dlbmVyYXRpb25JbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURCNjEzMjhERjgyMDAyQjJBRDcgLyogREZHR2VuZXJh
dGlvbkluZm8uaCAqLzsgfTsKIAkJODZFQzlEQzgxMzI4REY4MjAwMkIyQUQ3IC8qIERGR0dyYXBo
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURC
ODEzMjhERjgyMDAyQjJBRDcgLyogREZHR3JhcGguaCAqLzsgfTsKQEAgLTM2ODMsNyArMzY4Miw2
IEBACiAJCTg2RTNDNjBGMTY3QkFCODcwMDZENzYwQSAvKiBKU1ZpcnR1YWxNYWNoaW5lLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVmlydHVhbE1hY2hpbmUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODZFM0M2MTAxNjdCQUI4NzAwNkQ3NjBBIC8qIEpTVmly
dHVhbE1hY2hpbmUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBK
U1ZpcnR1YWxNYWNoaW5lLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NkUzQzYx
MTE2N0JBQjg3MDA2RDc2MEEgLyogSlNWaXJ0dWFsTWFjaGluZUludGVybmFsLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVmlydHVhbE1hY2hpbmVJbnRlcm5hbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NkU4NTUzODExMUI5OTY4MDAxQUY1MUUgLyogSlNT
dHJpbmdCdWlsZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3RyaW5n
QnVpbGRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NkVDOURCNDEzMjhERjgy
MDAyQjJBRDcgLyogREZHQnl0ZUNvZGVQYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gREZHQnl0ZUNvZGVQYXJzZXIuY3BwOyBwYXRoID0gZGZnL0RGR0J5dGVD
b2RlUGFyc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODZFQzlEQjUxMzI4
REY4MjAwMkIyQUQ3IC8qIERGR0J5dGVDb2RlUGFyc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IERGR0J5dGVDb2RlUGFyc2VyLmg7IHBhdGggPSBkZmcvREZHQnl0ZUNvZGVQ
YXJzZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODZFQzlEQjYxMzI4REY4MjAw
MkIyQUQ3IC8qIERGR0dlbmVyYXRpb25JbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IERGR0dlbmVyYXRpb25JbmZvLmg7IHBhdGggPSBkZmcvREZHR2VuZXJhdGlvbkluZm8u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU4NTIsMTQgKzU4NTAsMTQgQEAKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNTM2QjMxOTgxRjczNUU1QzAw
MzdGQzMzIC8qIFVuaWZpZWRTb3VyY2UxLW1tLm1tICovLAotCQkJCTUzNkIzMTk2MUY3MzVFNUIw
MDM3RkMzMyAvKiBVbmlmaWVkU291cmNlMi1tbS5tbSAqLywKLQkJCQk1MzBBNjZCMTFGQTNFNzdB
MDAyNkE1NDUgLyogVW5pZmllZFNvdXJjZTMtbW0ubW0gKi8sCi0JCQkJNTMwQTY2QjgxRkEzRTc3
RTAwMjZBNTQ1IC8qIFVuaWZpZWRTb3VyY2U0LW1tLm1tICovLAotCQkJCTUzMEE2NkI1MUZBM0U3
N0QwMDI2QTU0NSAvKiBVbmlmaWVkU291cmNlNS1tbS5tbSAqLywKIAkJCQk1MzZCMzBEQTFGNzFD
NTM4MDAzN0ZDMzMgLyogVW5pZmllZFNvdXJjZTEuY3BwICovLAorCQkJCTUzNkIzMTk2MUY3MzVF
NUIwMDM3RkMzMyAvKiBVbmlmaWVkU291cmNlMi1tbS5tbSAqLywKIAkJCQk1MzZCMzBEMjFGNzFD
NTM4MDAzN0ZDMzMgLyogVW5pZmllZFNvdXJjZTIuY3BwICovLAorCQkJCTUzMEE2NkIxMUZBM0U3
N0EwMDI2QTU0NSAvKiBVbmlmaWVkU291cmNlMy1tbS5tbSAqLywKIAkJCQk1MzZCMzBEMzFGNzFD
NTM4MDAzN0ZDMzMgLyogVW5pZmllZFNvdXJjZTMuY3BwICovLAorCQkJCTUzMEE2NkI4MUZBM0U3
N0UwMDI2QTU0NSAvKiBVbmlmaWVkU291cmNlNC1tbS5tbSAqLywKIAkJCQk1MzZCMzBFMTFGNzFD
NTM4MDAzN0ZDMzMgLyogVW5pZmllZFNvdXJjZTQuY3BwICovLAorCQkJCTUzMEE2NkI1MUZBM0U3
N0QwMDI2QTU0NSAvKiBVbmlmaWVkU291cmNlNS1tbS5tbSAqLywKIAkJCQk1MzZCMzBFMjFGNzFD
NTM4MDAzN0ZDMzMgLyogVW5pZmllZFNvdXJjZTUuY3BwICovLAogCQkJCTUzNkIzMEVBMUY3MUM1
MzgwMDM3RkMzMyAvKiBVbmlmaWVkU291cmNlNi5jcHAgKi8sCiAJCQkJNTM2QjMwRTkxRjcxQzUz
ODAwMzdGQzMzIC8qIFVuaWZpZWRTb3VyY2U3LmNwcCAqLywKQEAgLTY2MDMsNyArNjYwMSw2IEBA
CiAJCQkJMzAzMjE3NURGMUFENDdEODk5OEIzNEUxIC8qIEpTU291cmNlQ29kZS5oICovLAogCQkJ
CUJDMDJFOUI2MEUxODQyRkEwMDBGOTI5NyAvKiBKU1N0cmluZy5jcHAgKi8sCiAJCQkJRjY5MkE4
NjIwMjU1NTk3RDAxRkY2MEY3IC8qIEpTU3RyaW5nLmggKi8sCi0JCQkJODZFODU1MzgxMTFCOTk2
ODAwMUFGNTFFIC8qIEpTU3RyaW5nQnVpbGRlci5oICovLAogCQkJCUZFRkQ2RkM1MUQ1RTc5NzAw
MDhGMkYwQiAvKiBKU1N0cmluZ0lubGluZXMuaCAqLywKIAkJCQk3MEVDMEVCQzFBQTBEN0RBMDBC
NkFBRkEgLyogSlNTdHJpbmdJdGVyYXRvci5jcHAgKi8sCiAJCQkJNzBFQzBFQkQxQUEwRDdEQTAw
QjZBQUZBIC8qIEpTU3RyaW5nSXRlcmF0b3IuaCAqLywKQEAgLTg4NTUsNyArODg1Miw2IEBACiAJ
CQkJQTc5MERENzAxODJGNDk5NzAwNTg4ODA3IC8qIEpTU2V0SXRlcmF0b3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJERkNCMkJCRTkwRjQxMzQ5RTFCMEJFRCAvKiBKU1NvdXJjZUNvZGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDMThDNDI3MEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU1N0cmluZy5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJODZFODU1MzkxMTFCOTk2ODAwMUFGNTFFIC8qIEpTU3RyaW5nQnVp
bGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkVGRDZGQzYxRDVFNzk5MjAwOEYyRjBCIC8qIEpT
U3RyaW5nSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzBFQzBFQzMxQUEwRDdEQTAwQjZB
QUZBIC8qIEpTU3RyaW5nSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTI2MDBCNUE3MTUy
QkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5oIGluIEhlYWRlcnMgKi8sCkBAIC05ODk4
LDE0ICs5ODk0LDE0IEBACiAJCQkJMEZGNDI3NDYxNThFQkU5MTAwNENCOUZGIC8qIHVkaXM4Nl9z
eW4taW50ZWwuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGRjQyNzQ3MTU4RUJFOTEwMDRDQjlGRiAv
KiB1ZGlzODZfc3luLmMgaW4gU291cmNlcyAqLywKIAkJCQk1MzZCMzE5QTFGNzM1RTc4MDAzN0ZD
MzMgLyogVW5pZmllZFNvdXJjZTEtbW0ubW0gaW4gU291cmNlcyAqLywKLQkJCQk1MzZCMzE5QjFG
NzM1RTc4MDAzN0ZDMzMgLyogVW5pZmllZFNvdXJjZTItbW0ubW0gaW4gU291cmNlcyAqLywKLQkJ
CQk1MzBBNjZCOTFGQTNFNzhCMDAyNkE1NDUgLyogVW5pZmllZFNvdXJjZTMtbW0ubW0gaW4gU291
cmNlcyAqLywKLQkJCQk1MzBBNjZCQTFGQTNFNzhCMDAyNkE1NDUgLyogVW5pZmllZFNvdXJjZTQt
bW0ubW0gaW4gU291cmNlcyAqLywKLQkJCQk1MzBBNjZCQjFGQTNFNzhCMDAyNkE1NDUgLyogVW5p
ZmllZFNvdXJjZTUtbW0ubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MzZCMzE1RjFGNzFDNTk5MDAz
N0ZDMzMgLyogVW5pZmllZFNvdXJjZTEuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTM2QjMxOUIx
RjczNUU3ODAwMzdGQzMzIC8qIFVuaWZpZWRTb3VyY2UyLW1tLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTM2QjMxNTcxRjcxQzU5OTAwMzdGQzMzIC8qIFVuaWZpZWRTb3VyY2UyLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTUzMEE2NkI5MUZBM0U3OEIwMDI2QTU0NSAvKiBVbmlmaWVkU291cmNlMy1t
bS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUzNkIzMTU4MUY3MUM1OTkwMDM3RkMzMyAvKiBVbmlm
aWVkU291cmNlMy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MzBBNjZCQTFGQTNFNzhCMDAyNkE1
NDUgLyogVW5pZmllZFNvdXJjZTQtbW0ubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MzZCMzE2NjFG
NzFDNTk5MDAzN0ZDMzMgLyogVW5pZmllZFNvdXJjZTQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NTMwQTY2QkIxRkEzRTc4QjAwMjZBNTQ1IC8qIFVuaWZpZWRTb3VyY2U1LW1tLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTM2QjMxNjcxRjcxQzU5OTAwMzdGQzMzIC8qIFVuaWZpZWRTb3VyY2U1LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTUzNkIzMTZGMUY3MUM1OTkwMDM3RkMzMyAvKiBVbmlmaWVk
U291cmNlNi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MzZCMzE2RTFGNzFDNTk5MDAzN0ZDMzMg
LyogVW5pZmllZFNvdXJjZTcuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKaW5kZXggNWU2ZTgzNzg0MDM2YzQ4
YTZhZjY1ZGNhYTdkYzI1Y2MzMWM3NTYzYy4uOWMzMWQ3YWE1Mjc1MTJkZGZkZWE4OGE3YzBjZGRm
MmRmMzhmODUyNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJy
YXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5
UHJvdG90eXBlLmNwcApAQCAtMzYsNyArMzYsNiBAQAogI2luY2x1ZGUgIkpTQXJyYXlJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiSlNDQnVpbHRpbnMuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCi0j
aW5jbHVkZSAiSlNTdHJpbmdCdWlsZGVyLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmdKb2luZXIuaCIK
ICNpbmNsdWRlICJMb29rdXAuaCIKICNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNGdW5jdGlvblByb3Rv
dHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0Z1bmN0aW9uUHJv
dG90eXBlLmNwcAppbmRleCA0ODliY2NhMWViODA4NGI0NWMxMDVlMjcyNDE2N2E3M2VlMDE1ZDkz
Li45NGI0YzAyMWMxMjc5NDAxZGRmODdkMDIzZWNlY2I1N2VjNDMxMDBhIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0Z1bmN0aW9uUHJvdG90eXBlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0Z1bmN0aW9uUHJvdG90eXBl
LmNwcApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRl
ICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKLSNpbmNsdWRlICJKU1N0cmlu
Z0J1aWxkZXIuaCIKICNpbmNsdWRlICJMZXhlci5oIgogCiBuYW1lc3BhY2UgSlNDIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVuY3Rp
b25Qcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNHZW5l
cmF0b3JGdW5jdGlvblByb3RvdHlwZS5jcHAKaW5kZXggZDk0YzU1NzVlZTM2M2YzOTFjMmMwYjMw
Mzc4ZWM4N2FjNTk0OGRlYS4uYjkxMWY3N2U5ZmExNjc3NzQ3YTA1OWM0OWNkNDI2MTBmOWI1OWRk
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNHZW5lcmF0
b3JGdW5jdGlvblByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQXN5bmNHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZS5jcHAKQEAgLTMzLDcgKzMzLDYgQEAK
ICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1
ZGUgIkpTU3RyaW5nLmgiCi0jaW5jbHVkZSAiSlNTdHJpbmdCdWlsZGVyLmgiCiAjaW5jbHVkZSAi
TGV4ZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAKaW5kZXggN2Q0N2EzOWE2YzdkM2Y3ODE3ZjQxMjEw
MzhiZmRjZWVkYzEzZjU1Yy4uNTBhYmUzODg2NDc0MjkxYWU3N2E4ODIwZmQ3NTYwZjExNjkyZTIw
OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5
cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBl
LmNwcApAQCAtMjMsOCArMjMsNyBAQAogCiAjaW5jbHVkZSAiRXJyb3IuaCIKICNpbmNsdWRlICJK
U0Z1bmN0aW9uLmgiCi0jaW5jbHVkZSAiSlNTdHJpbmcuaCIKLSNpbmNsdWRlICJKU1N0cmluZ0J1
aWxkZXIuaCIKKyNpbmNsdWRlICJKU1N0cmluZ0lubGluZXMuaCIKICNpbmNsdWRlICJPYmplY3RQ
cm90b3R5cGUuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiU3RyaW5nUmVj
dXJzaW9uQ2hlY2tlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RnVuY3Rpb25Qcm90b3R5cGUuY3BwCmluZGV4IDQwODBlMzkwZmNkMDBlMDE4MzY3YWUxNDNhZDQ3
MDg2YzY0YWFlNjMuLmVmMmFjZDc0MGY1YTU1ZmNkYWMzZWZiM2Y5MTg3ZTBlMTE2Njg2OGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlw
ZS5jcHAKQEAgLTI3LDEzICsyNywxMiBAQAogI2luY2x1ZGUgIkdldHRlclNldHRlci5oIgogI2lu
Y2x1ZGUgIkpTQXJyYXkuaCIKICNpbmNsdWRlICJKU0FzeW5jRnVuY3Rpb24uaCIKKyNpbmNsdWRl
ICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTR2xv
YmFsT2JqZWN0RnVuY3Rpb25zLmgiCi0jaW5jbHVkZSAiSlNTdHJpbmcuaCIKLSNpbmNsdWRlICJK
U1N0cmluZ0J1aWxkZXIuaCIKKyNpbmNsdWRlICJKU1N0cmluZ0lubGluZXMuaCIKICNpbmNsdWRl
ICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkxleGVyLmgiCi0jaW5jbHVkZSAiSlNDSW5saW5l
cy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUuY3BwCmluZGV4IDc4
M2EzNjVkYWQ5YzI5OTQxODliMDgwMGIzZjgyNTA2MjVmMWQxNmMuLjA0MThjZWVmZTNjNDlmMzFj
NjQ2ZWM2OWZjOTEzZjFjM2ZiMmEyMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0dlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9HZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZS5jcHAKQEAgLTMz
LDcgKzMzLDYgQEAKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlv
bi5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCi0jaW5jbHVkZSAiSlNTdHJpbmdCdWlsZGVyLmgi
CiAjaW5jbHVkZSAiTGV4ZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAK
aW5kZXggY2Q2ODZlODVjOWFiYWM5NDNhNjIwYWIxNWMwNzBmMmNhZjQwNDVkZi4uMmQ0OTgyZDgz
ZmMwZGQzNzQ5NzdlZWI3Y2UzYWU4ZjMxNzVlZTAzYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcApAQCAt
MzksNyArMzksNiBAQAogI2luY2x1ZGUgIkpTUHJvbWlzZS5oIgogI2luY2x1ZGUgIkpTUHJvbWlz
ZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKLSNpbmNsdWRlICJKU1N0cmluZ0J1
aWxkZXIuaCIKICNpbmNsdWRlICJMZXhlci5oIgogI2luY2x1ZGUgIkxpdGVyYWxQYXJzZXIuaCIK
ICNpbmNsdWRlICJOb2Rlcy5oIgpAQCAtMTcyLDcgKzE3MSw3IEBAIHN0YXRpYyBKU1ZhbHVlIGRl
Y29kZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IENoYXJUeXBlKiBjaGFyYWN0ZXJzLCBpbnQgbGVu
Z3RoLCBjCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBKU1N0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgaW50IGsgPSAwOwogICAgIFVDaGFyIHUgPSAwOwog
ICAgIHdoaWxlIChrIDwgbGVuZ3RoKSB7CkBAIC0yMzIsNyArMjMxLDcgQEAgc3RhdGljIEpTVmFs
dWUgZGVjb2RlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQ2hhclR5cGUqIGNoYXJhY3RlcnMsIGlu
dCBsZW5ndGgsIGMKICAgICAgICAgYnVpbGRlci5hcHBlbmQoYyk7CiAgICAgfQogICAgIHNjb3Bl
LnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYnVpbGRlci5idWlsZChleGVjKTsKKyAgICByZXR1cm4g
anNTdHJpbmcoJnZtLCBidWlsZGVyLnRvU3RyaW5nKCkpOwogfQogCiBzdGF0aWMgSlNWYWx1ZSBk
ZWNvZGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBCaXRtYXA8MjU2PiYgZG9Ob3RVbmVzY2FwZSwg
Ym9vbCBzdHJpY3QpCkBAIC01OTMsNyArNTkyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBnbG9iYWxGdW5jRXNjYXBlKEV4ZWNTdGF0ZSogZXhlYykKICAgICApOwogCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZSh0b1N0cmluZ1ZpZXcoZXhlYywgZXhlYy0+YXJndW1lbnQoMCks
IFsmXSAoU3RyaW5nVmlldyB2aWV3KSB7Ci0gICAgICAgIEpTU3RyaW5nQnVpbGRlciBidWlsZGVy
OworICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CiAgICAgICAgIGlmICh2aWV3LmlzOEJp
dCgpKSB7CiAgICAgICAgICAgICBjb25zdCBMQ2hhciogYyA9IHZpZXcuY2hhcmFjdGVyczgoKTsK
ICAgICAgICAgICAgIGZvciAodW5zaWduZWQgayA9IDA7IGsgPCB2aWV3Lmxlbmd0aCgpOyBrKyss
IGMrKykgewpAQCAtNjA1LDggKzYwNCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Z2xvYmFsRnVuY0VzY2FwZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICAgICAgICAgIGFw
cGVuZEJ5dGVBc0hleChzdGF0aWNfY2FzdDxMQ2hhcj4odSksIGJ1aWxkZXIpOwogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYnVp
bGQoZXhlYyk7CisgICAgICAgICAgICByZXR1cm4ganNTdHJpbmcoZXhlYywgYnVpbGRlci50b1N0
cmluZygpKTsKICAgICAgICAgfQogCiAgICAgICAgIGNvbnN0IFVDaGFyKiBjID0gdmlldy5jaGFy
YWN0ZXJzMTYoKTsKQEAgLTYyNSw3ICs2MjMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGdsb2JhbEZ1bmNFc2NhcGUoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgfQogICAg
ICAgICB9CiAKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuYnVpbGQoZXhlYyk7CisgICAgICAgIHJl
dHVybiBqc1N0cmluZyhleGVjLCBidWlsZGVyLnRvU3RyaW5nKCkpOwogICAgIH0pKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmdCdWlsZGVy
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZ0J1aWxkZXIuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2I3N2E0NWU0ZDJlZWZmMTNmZWNiODE3YmJmYWI1
MGZlNmJhZTQ4Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZ0J1aWxkZXIuaAorKysgL2Rl
di9udWxsCkBAIC0xLDEzOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJFeGNlcHRpb25I
ZWxwZXJzLmgiCi0jaW5jbHVkZSAiSlNTdHJpbmcuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdWZWN0b3IuaD4KLQotbmFtZXNwYWNlIEpTQyB7Ci0KLS8vIEZJWE1FOiBTaG91bGQgbW92ZSB0
aGUgbGFzdCBmZXcgY2FsbGVycyBvdmVyIGZyb20gdGhpcyB0byBXVEY6OlN0cmluZ0J1aWxkZXIu
Ci1jbGFzcyBKU1N0cmluZ0J1aWxkZXIgewotcHVibGljOgotICAgIEpTU3RyaW5nQnVpbGRlcigp
Ci0gICAgICAgIDogbV9va2F5KHRydWUpCi0gICAgICAgICwgbV9pczhCaXQodHJ1ZSkKLSAgICB7
Ci0gICAgfQotCi0gICAgdm9pZCBhcHBlbmQoTENoYXIgY2hhcmFjdGVyKQotICAgIHsKLSAgICAg
ICAgaWYgKG1faXM4Qml0KSB7Ci0gICAgICAgICAgICBtX29rYXkgJj0gYnVmZmVyOC50cnlBcHBl
bmQoJmNoYXJhY3RlciwgMSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAg
ICAgVUNoYXIgdXBjb252ZXJ0ZWRDaGFyYWN0ZXIgPSBjaGFyYWN0ZXI7Ci0gICAgICAgIG1fb2th
eSAmPSBidWZmZXIxNi50cnlBcHBlbmQoJnVwY29udmVydGVkQ2hhcmFjdGVyLCAxKTsKLSAgICB9
Ci0KLSAgICB2b2lkIGFwcGVuZChVQ2hhciBjaGFyYWN0ZXIpCi0gICAgewotICAgICAgICBpZiAo
bV9pczhCaXQpIHsKLSAgICAgICAgICAgIGlmIChjaGFyYWN0ZXIgPCAweDEwMCkgewotICAgICAg
ICAgICAgICAgIExDaGFyIG5hcnJvd2VkQ2hhcmFjdGVyID0gY2hhcmFjdGVyOwotICAgICAgICAg
ICAgICAgIG1fb2theSAmPSBidWZmZXI4LnRyeUFwcGVuZCgmbmFycm93ZWRDaGFyYWN0ZXIsIDEp
OwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHVw
Q29udmVydCgpOwotICAgICAgICB9Ci0gICAgICAgIG1fb2theSAmPSBidWZmZXIxNi50cnlBcHBl
bmQoJmNoYXJhY3RlciwgMSk7Ci0gICAgfQotCi0gICAgdm9pZCBhcHBlbmQoY29uc3QgY2hhciog
c3RyKQotICAgIHsKLSAgICAgICAgYXBwZW5kKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIq
PihzdHIpLCBzdHJsZW4oc3RyKSk7Ci0gICAgfQotCi0gICAgSlNWYWx1ZSBidWlsZChFeGVjU3Rh
dGUqIGV4ZWMpCi0gICAgewotICAgICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgICAgIGlmICghbV9va2F5
KQotICAgICAgICAgICAgcmV0dXJuIHRocm93T3V0T2ZNZW1vcnlFcnJvcihleGVjLCBzY29wZSk7
Ci0gICAgICAgIGlmIChtX2lzOEJpdCkgewotICAgICAgICAgICAgYnVmZmVyOC5zaHJpbmtUb0Zp
dCgpOwotICAgICAgICAgICAgaWYgKCFidWZmZXI4LmRhdGEoKSkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gdGhyb3dPdXRPZk1lbW9yeUVycm9yKGV4ZWMsIHNjb3BlKTsKLSAgICAgICAgICAgIHJl
dHVybiBqc1N0cmluZyhleGVjLCBTdHJpbmc6OmFkb3B0KFdURk1vdmUoYnVmZmVyOCkpKTsKLSAg
ICAgICAgfQotICAgICAgICBidWZmZXIxNi5zaHJpbmtUb0ZpdCgpOwotICAgICAgICBpZiAoIWJ1
ZmZlcjE2LmRhdGEoKSkKLSAgICAgICAgICAgIHJldHVybiB0aHJvd091dE9mTWVtb3J5RXJyb3Io
ZXhlYywgc2NvcGUpOwotICAgICAgICByZXR1cm4ganNTdHJpbmcoZXhlYywgU3RyaW5nOjphZG9w
dChXVEZNb3ZlKGJ1ZmZlcjE2KSkpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICB2b2lkIGFwcGVu
ZChjb25zdCBMQ2hhciogY2hhcmFjdGVycywgc2l6ZV90IGxlbmd0aCkKLSAgICB7Ci0gICAgICAg
IGlmIChtX2lzOEJpdCkgewotICAgICAgICAgICAgbV9va2F5ICY9IGJ1ZmZlcjgudHJ5QXBwZW5k
KGNoYXJhY3RlcnMsIGxlbmd0aCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAg
ICAgICAgLy8gRklYTUU6IFRoZXJlIG11c3QgYmUgYSBtb3JlIGVmZmljaWVudCB3YXkgb2YgZG9p
bmcgdGhpcy4KLSAgICAgICAgbV9va2F5ICY9IGJ1ZmZlcjE2LnRyeVJlc2VydmVDYXBhY2l0eShi
dWZmZXIxNi5zaXplKCkgKyBsZW5ndGgpOwotICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICBVQ2hhciB1cGNvbnZlcnRlZENoYXJhY3RlciA9
IGNoYXJhY3RlcnNbaV07Ci0gICAgICAgICAgICBtX29rYXkgJj0gYnVmZmVyMTYudHJ5QXBwZW5k
KCZ1cGNvbnZlcnRlZENoYXJhY3RlciwgMSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICB2b2lk
IHVwQ29udmVydCgpCi0gICAgewotICAgICAgICBBU1NFUlQobV9pczhCaXQpOwotICAgICAgICBz
aXplX3QgbGVuID0gYnVmZmVyOC5zaXplKCk7Ci0KLSAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBsZW47IGkrKykKLSAgICAgICAgICAgIGJ1ZmZlcjE2LmFwcGVuZChidWZmZXI4W2ldKTsK
LQotICAgICAgICBidWZmZXI4LmNsZWFyKCk7Ci0gICAgICAgIG1faXM4Qml0ID0gZmFsc2U7Ci0g
ICAgfQotCi0gICAgU3RyaW5nVmVjdG9yPExDaGFyLCA2NCwgVW5zYWZlVmVjdG9yT3ZlcmZsb3c+
IGJ1ZmZlcjg7Ci0gICAgU3RyaW5nVmVjdG9yPFVDaGFyLCA2NCwgVW5zYWZlVmVjdG9yT3ZlcmZs
b3c+IGJ1ZmZlcjE2OwotICAgIGJvb2wgbV9va2F5OwotICAgIGJvb2wgbV9pczhCaXQ7Ci19Owot
Ci10ZW1wbGF0ZTx0eXBlbmFtZSBTdHJpbmdUeXBlPgotaW5saW5lIEpTVmFsdWUganNNYWtlTm9u
dHJpdmlhbFN0cmluZyhFeGVjU3RhdGUqIGV4ZWMsIFN0cmluZ1R5cGUmJiBzdHJpbmcpCi17Ci0g
ICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBzdGQ6OmZvcndhcmQ8U3RyaW5nVHlw
ZT4oc3RyaW5nKSk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFN0cmluZ1R5cGUsIHR5cGVuYW1l
Li4uIFN0cmluZ1R5cGVzPgotaW5saW5lIEpTVmFsdWUganNNYWtlTm9udHJpdmlhbFN0cmluZyhF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZ1R5cGUmIHN0cmluZywgY29uc3QgU3RyaW5nVHlw
ZXMmLi4uIHN0cmluZ3MpCi17Ci0gICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLSAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgU3RyaW5nIHJlc3VsdCA9IHRyeU1h
a2VTdHJpbmcoc3RyaW5nLCBzdHJpbmdzLi4uKTsKLSAgICBpZiAoVU5MSUtFTFkoIXJlc3VsdCkp
Ci0gICAgICAgIHJldHVybiB0aHJvd091dE9mTWVtb3J5RXJyb3IoZXhlYywgc2NvcGUpOwotICAg
IHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgV1RGTW92ZShyZXN1bHQpKTsKLX0KLQot
fSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1N0cmluZ0lubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
U3RyaW5nSW5saW5lcy5oCmluZGV4IGJmMjFjNGRiYTg1YjhkMzM3ZmU4MWViNzcxM2Y2ODQ3NDA5
YjQzYmIuLmUzZjQ4ZDkyNWFlMzZkMTY5ZTg1NGY4ZDhlNDg4YTU5YjY5Y2NhMWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nSW5saW5lcy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nSW5saW5lcy5oCkBAIC0zNiw0
ICszNiwyMSBAQCBib29sIEpTU3RyaW5nOjplcXVhbChFeGVjU3RhdGUqIGV4ZWMsIEpTU3RyaW5n
KiBvdGhlcikgY29uc3QKICAgICByZXR1cm4gV1RGOjplcXVhbCgqbV92YWx1ZS5pbXBsKCksICpv
dGhlci0+bV92YWx1ZS5pbXBsKCkpOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBTdHJpbmdUeXBl
PgoraW5saW5lIEpTVmFsdWUganNNYWtlTm9udHJpdmlhbFN0cmluZyhFeGVjU3RhdGUqIGV4ZWMs
IFN0cmluZ1R5cGUmJiBzdHJpbmcpCit7CisgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmluZyhl
eGVjLCBzdGQ6OmZvcndhcmQ8U3RyaW5nVHlwZT4oc3RyaW5nKSk7Cit9CisKK3RlbXBsYXRlPHR5
cGVuYW1lIFN0cmluZ1R5cGUsIHR5cGVuYW1lLi4uIFN0cmluZ1R5cGVzPgoraW5saW5lIEpTVmFs
dWUganNNYWtlTm9udHJpdmlhbFN0cmluZyhFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZ1R5
cGUmIHN0cmluZywgY29uc3QgU3RyaW5nVHlwZXMmLi4uIHN0cmluZ3MpCit7CisgICAgVk0mIHZt
ID0gZXhlYy0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CisgICAgU3RyaW5nIHJlc3VsdCA9IHRyeU1ha2VTdHJpbmcoc3RyaW5nLCBzdHJpbmdzLi4uKTsK
KyAgICBpZiAoVU5MSUtFTFkoIXJlc3VsdCkpCisgICAgICAgIHJldHVybiB0aHJvd091dE9mTWVt
b3J5RXJyb3IoZXhlYywgc2NvcGUpOworICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhl
YywgV1RGTW92ZShyZXN1bHQpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAppbmRleCAzNjNj
NzZkNGYxNDAzY2NiZWUyNWJhNzgxOGViMTFmYzQxMzMxYzljLi43MDgwNzM4NTY1MGYwYmM5OGU3
MDY5Y2M3Yzk3ZWIzMzg4M2RiMGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKQEAgLTMwLDggKzMwLDcgQEAKICNpbmNsdWRlICJK
U0NKU1ZhbHVlLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTT2JqZWN0
LmgiCi0jaW5jbHVkZSAiSlNTdHJpbmcuaCIKLSNpbmNsdWRlICJKU1N0cmluZ0J1aWxkZXIuaCIK
KyNpbmNsdWRlICJKU1N0cmluZ0lubGluZXMuaCIKICNpbmNsdWRlICJMZXhlci5oIgogI2luY2x1
ZGUgIk9iamVjdFByb3RvdHlwZS5oIgogI2luY2x1ZGUgIlJlZ0V4cC5oIgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKaW5kZXggMDUxZTkw
NTg1YmU5OTgxNTFkZWU4NmNjMjkzODcwYWJjZmFkZjE4Mi4uMjkxYmM2OWEyMjVjMGE4OTY2OGFl
YTU0Y2Y5YmQ2ZmU4OGNlZTlkOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSAiSlND
SW5saW5lcy5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdEZ1bmN0aW9ucy5oIgotI2luY2x1ZGUgIkpTU3RyaW5nQnVpbGRlci5oIgogI2luY2x1ZGUg
IkpTU3RyaW5nSXRlcmF0b3IuaCIKICNpbmNsdWRlICJMb29rdXAuaCIKICNpbmNsdWRlICJPYmpl
Y3RQcm90b3R5cGUuaCIK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327584</attachid>
            <date>2017-11-26 08:27:01 -0800</date>
            <delta_ts>2017-11-26 15:37:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180016-20171127012700.patch</filename>
            <type>text/plain</type>
            <size>20183</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1MTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
Y2VlNjIyNTIxOGM2ZTE3ZTZhNzViMDMxMWY1YTdiYTE5Yjc1ZWQ2Li5mODM1YzZiYWY4MmNlZTZj
ZDg2N2FmYzE0NDA4ZjQwNDFiNWMwN2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAxNy0xMS0yNiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBSZW1vdmUgSlNTdHJpbmdCdWlsZGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODAwMTYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBKU1N0cmluZ0J1aWxkZXIgaXMg
cmVwbGFjZWQgd2l0aCBXVEY6OlN0cmluZ0J1aWxkZXIuCisgICAgICAgIFRoaXMgcGF0Y2ggcmVt
b3ZlcyByZW1hbmluZyB1c2VzIGFuZCBkcm9wIEpTU3RyaW5nQnVpbGRlci4KKworICAgICAgICAq
IEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcnVu
dGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9Bc3luY0Z1bmN0aW9u
UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVuY3Rpb25Q
cm90b3R5cGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwOgorICAg
ICAgICAqIHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUv
R2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9i
YWxPYmplY3RGdW5jdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpkZWNvZGUpOgorICAgICAgICAo
SlNDOjpnbG9iYWxGdW5jRXNjYXBlKToKKyAgICAgICAgKiBydW50aW1lL0pTU3RyaW5nQnVpbGRl
ci5oOiBSZW1vdmVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNTdHJpbmdJbmxpbmVzLmg6CisgICAg
ICAgIChKU0M6OmpzTWFrZU5vbnRyaXZpYWxTdHJpbmcpOgorICAgICAgICAqIHJ1bnRpbWUvUmVn
RXhwUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHA6
CisKIDIwMTYtMDgtMDUgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAg
IEZpeCBzb21lIG1pbm9yIHByb2JsZW1zIGluIHRoZSBTdHJpbmdJbXBsIGhlYWRlcgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhOWM0YTk5YmFiMDUwODA3ZTY3MjZlMTZiYjI1OWFk
MDJiMjY0ZDcwLi5jODE0NjIyMDJiMjQxZmZjMDRmMTk1OGYxNDAyNjViM2RlNmMwZDE5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTE1MSw3ICsxMTUxLDYgQEAKIAkJODZFM0M2
MTkxNjdCQUJFRTAwNkQ3NjBBIC8qIEpTV3JhcHBlck1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZFM0M2MEMxNjdCQUI4NzAwNkQ3NjBBIC8qIEpT
V3JhcHBlck1hcC5oICovOyB9OwogCQk4NkUzQzYxQjE2N0JBQkVFMDA2RDc2MEEgLyogSlNWYWx1
ZUludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4NkUzQzYwRTE2N0JBQjg3MDA2RDc2MEEgLyogSlNWYWx1ZUludGVybmFsLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODZFM0M2MUQxNjdCQUJF
RTAwNkQ3NjBBIC8qIEpTVmlydHVhbE1hY2hpbmVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZFM0M2MTExNjdCQUI4NzAwNkQ3NjBBIC8q
IEpTVmlydHVhbE1hY2hpbmVJbnRlcm5hbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07Ci0JCTg2RTg1NTM5MTExQjk5NjgwMDFBRjUxRSAvKiBKU1N0cmlu
Z0J1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg2RTg1NTM4MTExQjk5NjgwMDFBRjUxRSAvKiBKU1N0cmluZ0J1aWxkZXIuaCAqLzsgfTsKIAkJ
ODZFQzlEQzUxMzI4REY4MjAwMkIyQUQ3IC8qIERGR0J5dGVDb2RlUGFyc2VyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURCNTEzMjhERjgyMDAy
QjJBRDcgLyogREZHQnl0ZUNvZGVQYXJzZXIuaCAqLzsgfTsKIAkJODZFQzlEQzYxMzI4REY4MjAw
MkIyQUQ3IC8qIERGR0dlbmVyYXRpb25JbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURCNjEzMjhERjgyMDAyQjJBRDcgLyogREZHR2VuZXJh
dGlvbkluZm8uaCAqLzsgfTsKIAkJODZFQzlEQzgxMzI4REY4MjAwMkIyQUQ3IC8qIERGR0dyYXBo
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURC
ODEzMjhERjgyMDAyQjJBRDcgLyogREZHR3JhcGguaCAqLzsgfTsKQEAgLTM2ODMsNyArMzY4Miw2
IEBACiAJCTg2RTNDNjBGMTY3QkFCODcwMDZENzYwQSAvKiBKU1ZpcnR1YWxNYWNoaW5lLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVmlydHVhbE1hY2hpbmUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODZFM0M2MTAxNjdCQUI4NzAwNkQ3NjBBIC8qIEpTVmly
dHVhbE1hY2hpbmUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBK
U1ZpcnR1YWxNYWNoaW5lLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NkUzQzYx
MTE2N0JBQjg3MDA2RDc2MEEgLyogSlNWaXJ0dWFsTWFjaGluZUludGVybmFsLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVmlydHVhbE1hY2hpbmVJbnRlcm5hbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NkU4NTUzODExMUI5OTY4MDAxQUY1MUUgLyogSlNT
dHJpbmdCdWlsZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3RyaW5n
QnVpbGRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NkVDOURCNDEzMjhERjgy
MDAyQjJBRDcgLyogREZHQnl0ZUNvZGVQYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gREZHQnl0ZUNvZGVQYXJzZXIuY3BwOyBwYXRoID0gZGZnL0RGR0J5dGVD
b2RlUGFyc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODZFQzlEQjUxMzI4
REY4MjAwMkIyQUQ3IC8qIERGR0J5dGVDb2RlUGFyc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IERGR0J5dGVDb2RlUGFyc2VyLmg7IHBhdGggPSBkZmcvREZHQnl0ZUNvZGVQ
YXJzZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODZFQzlEQjYxMzI4REY4MjAw
MkIyQUQ3IC8qIERGR0dlbmVyYXRpb25JbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IERGR0dlbmVyYXRpb25JbmZvLmg7IHBhdGggPSBkZmcvREZHR2VuZXJhdGlvbkluZm8u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU4NTIsMTQgKzU4NTAsMTQgQEAKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNTM2QjMxOTgxRjczNUU1QzAw
MzdGQzMzIC8qIFVuaWZpZWRTb3VyY2UxLW1tLm1tICovLAotCQkJCTUzNkIzMTk2MUY3MzVFNUIw
MDM3RkMzMyAvKiBVbmlmaWVkU291cmNlMi1tbS5tbSAqLywKLQkJCQk1MzBBNjZCMTFGQTNFNzdB
MDAyNkE1NDUgLyogVW5pZmllZFNvdXJjZTMtbW0ubW0gKi8sCi0JCQkJNTMwQTY2QjgxRkEzRTc3
RTAwMjZBNTQ1IC8qIFVuaWZpZWRTb3VyY2U0LW1tLm1tICovLAotCQkJCTUzMEE2NkI1MUZBM0U3
N0QwMDI2QTU0NSAvKiBVbmlmaWVkU291cmNlNS1tbS5tbSAqLywKIAkJCQk1MzZCMzBEQTFGNzFD
NTM4MDAzN0ZDMzMgLyogVW5pZmllZFNvdXJjZTEuY3BwICovLAorCQkJCTUzNkIzMTk2MUY3MzVF
NUIwMDM3RkMzMyAvKiBVbmlmaWVkU291cmNlMi1tbS5tbSAqLywKIAkJCQk1MzZCMzBEMjFGNzFD
NTM4MDAzN0ZDMzMgLyogVW5pZmllZFNvdXJjZTIuY3BwICovLAorCQkJCTUzMEE2NkIxMUZBM0U3
N0EwMDI2QTU0NSAvKiBVbmlmaWVkU291cmNlMy1tbS5tbSAqLywKIAkJCQk1MzZCMzBEMzFGNzFD
NTM4MDAzN0ZDMzMgLyogVW5pZmllZFNvdXJjZTMuY3BwICovLAorCQkJCTUzMEE2NkI4MUZBM0U3
N0UwMDI2QTU0NSAvKiBVbmlmaWVkU291cmNlNC1tbS5tbSAqLywKIAkJCQk1MzZCMzBFMTFGNzFD
NTM4MDAzN0ZDMzMgLyogVW5pZmllZFNvdXJjZTQuY3BwICovLAorCQkJCTUzMEE2NkI1MUZBM0U3
N0QwMDI2QTU0NSAvKiBVbmlmaWVkU291cmNlNS1tbS5tbSAqLywKIAkJCQk1MzZCMzBFMjFGNzFD
NTM4MDAzN0ZDMzMgLyogVW5pZmllZFNvdXJjZTUuY3BwICovLAogCQkJCTUzNkIzMEVBMUY3MUM1
MzgwMDM3RkMzMyAvKiBVbmlmaWVkU291cmNlNi5jcHAgKi8sCiAJCQkJNTM2QjMwRTkxRjcxQzUz
ODAwMzdGQzMzIC8qIFVuaWZpZWRTb3VyY2U3LmNwcCAqLywKQEAgLTY2MDMsNyArNjYwMSw2IEBA
CiAJCQkJMzAzMjE3NURGMUFENDdEODk5OEIzNEUxIC8qIEpTU291cmNlQ29kZS5oICovLAogCQkJ
CUJDMDJFOUI2MEUxODQyRkEwMDBGOTI5NyAvKiBKU1N0cmluZy5jcHAgKi8sCiAJCQkJRjY5MkE4
NjIwMjU1NTk3RDAxRkY2MEY3IC8qIEpTU3RyaW5nLmggKi8sCi0JCQkJODZFODU1MzgxMTFCOTk2
ODAwMUFGNTFFIC8qIEpTU3RyaW5nQnVpbGRlci5oICovLAogCQkJCUZFRkQ2RkM1MUQ1RTc5NzAw
MDhGMkYwQiAvKiBKU1N0cmluZ0lubGluZXMuaCAqLywKIAkJCQk3MEVDMEVCQzFBQTBEN0RBMDBC
NkFBRkEgLyogSlNTdHJpbmdJdGVyYXRvci5jcHAgKi8sCiAJCQkJNzBFQzBFQkQxQUEwRDdEQTAw
QjZBQUZBIC8qIEpTU3RyaW5nSXRlcmF0b3IuaCAqLywKQEAgLTg4NTUsNyArODg1Miw2IEBACiAJ
CQkJQTc5MERENzAxODJGNDk5NzAwNTg4ODA3IC8qIEpTU2V0SXRlcmF0b3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJERkNCMkJCRTkwRjQxMzQ5RTFCMEJFRCAvKiBKU1NvdXJjZUNvZGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDMThDNDI3MEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU1N0cmluZy5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJODZFODU1MzkxMTFCOTk2ODAwMUFGNTFFIC8qIEpTU3RyaW5nQnVp
bGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkVGRDZGQzYxRDVFNzk5MjAwOEYyRjBCIC8qIEpT
U3RyaW5nSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzBFQzBFQzMxQUEwRDdEQTAwQjZB
QUZBIC8qIEpTU3RyaW5nSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTI2MDBCNUE3MTUy
QkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5oIGluIEhlYWRlcnMgKi8sCkBAIC05ODk4
LDE0ICs5ODk0LDE0IEBACiAJCQkJMEZGNDI3NDYxNThFQkU5MTAwNENCOUZGIC8qIHVkaXM4Nl9z
eW4taW50ZWwuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGRjQyNzQ3MTU4RUJFOTEwMDRDQjlGRiAv
KiB1ZGlzODZfc3luLmMgaW4gU291cmNlcyAqLywKIAkJCQk1MzZCMzE5QTFGNzM1RTc4MDAzN0ZD
MzMgLyogVW5pZmllZFNvdXJjZTEtbW0ubW0gaW4gU291cmNlcyAqLywKLQkJCQk1MzZCMzE5QjFG
NzM1RTc4MDAzN0ZDMzMgLyogVW5pZmllZFNvdXJjZTItbW0ubW0gaW4gU291cmNlcyAqLywKLQkJ
CQk1MzBBNjZCOTFGQTNFNzhCMDAyNkE1NDUgLyogVW5pZmllZFNvdXJjZTMtbW0ubW0gaW4gU291
cmNlcyAqLywKLQkJCQk1MzBBNjZCQTFGQTNFNzhCMDAyNkE1NDUgLyogVW5pZmllZFNvdXJjZTQt
bW0ubW0gaW4gU291cmNlcyAqLywKLQkJCQk1MzBBNjZCQjFGQTNFNzhCMDAyNkE1NDUgLyogVW5p
ZmllZFNvdXJjZTUtbW0ubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MzZCMzE1RjFGNzFDNTk5MDAz
N0ZDMzMgLyogVW5pZmllZFNvdXJjZTEuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTM2QjMxOUIx
RjczNUU3ODAwMzdGQzMzIC8qIFVuaWZpZWRTb3VyY2UyLW1tLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTM2QjMxNTcxRjcxQzU5OTAwMzdGQzMzIC8qIFVuaWZpZWRTb3VyY2UyLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTUzMEE2NkI5MUZBM0U3OEIwMDI2QTU0NSAvKiBVbmlmaWVkU291cmNlMy1t
bS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUzNkIzMTU4MUY3MUM1OTkwMDM3RkMzMyAvKiBVbmlm
aWVkU291cmNlMy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MzBBNjZCQTFGQTNFNzhCMDAyNkE1
NDUgLyogVW5pZmllZFNvdXJjZTQtbW0ubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MzZCMzE2NjFG
NzFDNTk5MDAzN0ZDMzMgLyogVW5pZmllZFNvdXJjZTQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NTMwQTY2QkIxRkEzRTc4QjAwMjZBNTQ1IC8qIFVuaWZpZWRTb3VyY2U1LW1tLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTM2QjMxNjcxRjcxQzU5OTAwMzdGQzMzIC8qIFVuaWZpZWRTb3VyY2U1LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTUzNkIzMTZGMUY3MUM1OTkwMDM3RkMzMyAvKiBVbmlmaWVk
U291cmNlNi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MzZCMzE2RTFGNzFDNTk5MDAzN0ZDMzMg
LyogVW5pZmllZFNvdXJjZTcuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKaW5kZXggNWU2ZTgzNzg0MDM2YzQ4
YTZhZjY1ZGNhYTdkYzI1Y2MzMWM3NTYzYy4uOWMzMWQ3YWE1Mjc1MTJkZGZkZWE4OGE3YzBjZGRm
MmRmMzhmODUyNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJy
YXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5
UHJvdG90eXBlLmNwcApAQCAtMzYsNyArMzYsNiBAQAogI2luY2x1ZGUgIkpTQXJyYXlJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiSlNDQnVpbHRpbnMuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCi0j
aW5jbHVkZSAiSlNTdHJpbmdCdWlsZGVyLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmdKb2luZXIuaCIK
ICNpbmNsdWRlICJMb29rdXAuaCIKICNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNGdW5jdGlvblByb3Rv
dHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0Z1bmN0aW9uUHJv
dG90eXBlLmNwcAppbmRleCA0ODliY2NhMWViODA4NGI0NWMxMDVlMjcyNDE2N2E3M2VlMDE1ZDkz
Li45NGI0YzAyMWMxMjc5NDAxZGRmODdkMDIzZWNlY2I1N2VjNDMxMDBhIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0Z1bmN0aW9uUHJvdG90eXBlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0Z1bmN0aW9uUHJvdG90eXBl
LmNwcApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRl
ICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKLSNpbmNsdWRlICJKU1N0cmlu
Z0J1aWxkZXIuaCIKICNpbmNsdWRlICJMZXhlci5oIgogCiBuYW1lc3BhY2UgSlNDIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVuY3Rp
b25Qcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNHZW5l
cmF0b3JGdW5jdGlvblByb3RvdHlwZS5jcHAKaW5kZXggZDk0YzU1NzVlZTM2M2YzOTFjMmMwYjMw
Mzc4ZWM4N2FjNTk0OGRlYS4uYjkxMWY3N2U5ZmExNjc3NzQ3YTA1OWM0OWNkNDI2MTBmOWI1OWRk
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNHZW5lcmF0
b3JGdW5jdGlvblByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQXN5bmNHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZS5jcHAKQEAgLTMzLDcgKzMzLDYgQEAK
ICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1
ZGUgIkpTU3RyaW5nLmgiCi0jaW5jbHVkZSAiSlNTdHJpbmdCdWlsZGVyLmgiCiAjaW5jbHVkZSAi
TGV4ZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAKaW5kZXggN2Q0N2EzOWE2YzdkM2Y3ODE3ZjQxMjEw
MzhiZmRjZWVkYzEzZjU1Yy4uNTBhYmUzODg2NDc0MjkxYWU3N2E4ODIwZmQ3NTYwZjExNjkyZTIw
OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5
cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBl
LmNwcApAQCAtMjMsOCArMjMsNyBAQAogCiAjaW5jbHVkZSAiRXJyb3IuaCIKICNpbmNsdWRlICJK
U0Z1bmN0aW9uLmgiCi0jaW5jbHVkZSAiSlNTdHJpbmcuaCIKLSNpbmNsdWRlICJKU1N0cmluZ0J1
aWxkZXIuaCIKKyNpbmNsdWRlICJKU1N0cmluZ0lubGluZXMuaCIKICNpbmNsdWRlICJPYmplY3RQ
cm90b3R5cGUuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiU3RyaW5nUmVj
dXJzaW9uQ2hlY2tlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RnVuY3Rpb25Qcm90b3R5cGUuY3BwCmluZGV4IDQwODBlMzkwZmNkMDBlMDE4MzY3YWUxNDNhZDQ3
MDg2YzY0YWFlNjMuLmUwNDMxM2YxNDUxZTQ2MjBkMzVlNWZmNGVjMzM1OTg0NGQxZTI2OTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlw
ZS5jcHAKQEAgLTI1LDE1ICsyNSwxMSBAQAogI2luY2x1ZGUgIkJ1aWx0aW5OYW1lcy5oIgogI2lu
Y2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiR2V0dGVyU2V0dGVyLmgiCi0jaW5jbHVkZSAiSlNB
cnJheS5oIgogI2luY2x1ZGUgIkpTQXN5bmNGdW5jdGlvbi5oIgorI2luY2x1ZGUgIkpTQ0lubGlu
ZXMuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCi0jaW5jbHVkZSAiSlNHbG9iYWxPYmplY3RG
dW5jdGlvbnMuaCIKLSNpbmNsdWRlICJKU1N0cmluZy5oIgotI2luY2x1ZGUgIkpTU3RyaW5nQnVp
bGRlci5oIgotI2luY2x1ZGUgIkludGVycHJldGVyLmgiCisjaW5jbHVkZSAiSlNTdHJpbmdJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiTGV4ZXIuaCIKLSNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAKIG5h
bWVzcGFjZSBKU0MgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9HZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9HZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZS5jcHAKaW5kZXggNzgzYTM2NWRhZDlj
Mjk5NDE4OWIwODAwYjNmODI1MDYyNWYxZDE2Yy4uMDQxOGNlZWZlM2M0OWYzMWM2NDZlYzY5ZmM5
MTNmMWMzZmIyYTIyYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
R2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0dlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLmNwcApAQCAtMzMsNyArMzMsNiBA
QAogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5j
bHVkZSAiSlNTdHJpbmcuaCIKLSNpbmNsdWRlICJKU1N0cmluZ0J1aWxkZXIuaCIKICNpbmNsdWRl
ICJMZXhlci5oIgogCiBuYW1lc3BhY2UgSlNDIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcAppbmRleCBjZDY4
NmU4NWM5YWJhYzk0M2E2MjBhYjE1YzA3MGYyY2FmNDA0NWRmLi4yZDQ5ODJkODNmYzBkZDM3NDk3
N2VlYjdjZTNhZThmMzE3NWVlMDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCkBAIC0zOSw3ICszOSw2
IEBACiAjaW5jbHVkZSAiSlNQcm9taXNlLmgiCiAjaW5jbHVkZSAiSlNQcm9taXNlRGVmZXJyZWQu
aCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgotI2luY2x1ZGUgIkpTU3RyaW5nQnVpbGRlci5oIgog
I2luY2x1ZGUgIkxleGVyLmgiCiAjaW5jbHVkZSAiTGl0ZXJhbFBhcnNlci5oIgogI2luY2x1ZGUg
Ik5vZGVzLmgiCkBAIC0xNzIsNyArMTcxLDcgQEAgc3RhdGljIEpTVmFsdWUgZGVjb2RlKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgQ2hhclR5cGUqIGNoYXJhY3RlcnMsIGludCBsZW5ndGgsIGMKICAg
ICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKIAotICAgIEpTU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKICAgICBpbnQgayA9IDA7CiAgICAgVUNoYXIgdSA9IDA7CiAgICAgd2hpbGUg
KGsgPCBsZW5ndGgpIHsKQEAgLTIzMiw3ICsyMzEsNyBAQCBzdGF0aWMgSlNWYWx1ZSBkZWNvZGUo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBDaGFyVHlwZSogY2hhcmFjdGVycywgaW50IGxlbmd0aCwg
YwogICAgICAgICBidWlsZGVyLmFwcGVuZChjKTsKICAgICB9CiAgICAgc2NvcGUucmVsZWFzZSgp
OwotICAgIHJldHVybiBidWlsZGVyLmJ1aWxkKGV4ZWMpOworICAgIHJldHVybiBqc1N0cmluZygm
dm0sIGJ1aWxkZXIudG9TdHJpbmcoKSk7CiB9CiAKIHN0YXRpYyBKU1ZhbHVlIGRlY29kZShFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IEJpdG1hcDwyNTY+JiBkb05vdFVuZXNjYXBlLCBib29sIHN0cmlj
dCkKQEAgLTU5Myw3ICs1OTIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2Jh
bEZ1bmNFc2NhcGUoRXhlY1N0YXRlKiBleGVjKQogICAgICk7CiAKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKHRvU3RyaW5nVmlldyhleGVjLCBleGVjLT5hcmd1bWVudCgwKSwgWyZdIChTdHJp
bmdWaWV3IHZpZXcpIHsKLSAgICAgICAgSlNTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICAgICAgaWYgKHZpZXcuaXM4Qml0KCkpIHsKICAg
ICAgICAgICAgIGNvbnN0IExDaGFyKiBjID0gdmlldy5jaGFyYWN0ZXJzOCgpOwogICAgICAgICAg
ICAgZm9yICh1bnNpZ25lZCBrID0gMDsgayA8IHZpZXcubGVuZ3RoKCk7IGsrKywgYysrKSB7CkBA
IC02MDUsOCArNjA0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5j
RXNjYXBlKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgICAgICAgICAgYXBwZW5kQnl0ZUFz
SGV4KHN0YXRpY19jYXN0PExDaGFyPih1KSwgYnVpbGRlcik7CiAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICByZXR1cm4gYnVpbGRlci5idWlsZChleGVjKTsK
KyAgICAgICAgICAgIHJldHVybiBqc1N0cmluZyhleGVjLCBidWlsZGVyLnRvU3RyaW5nKCkpOwog
ICAgICAgICB9CiAKICAgICAgICAgY29uc3QgVUNoYXIqIGMgPSB2aWV3LmNoYXJhY3RlcnMxNigp
OwpAQCAtNjI1LDcgKzYyMyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFs
RnVuY0VzY2FwZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAot
ICAgICAgICByZXR1cm4gYnVpbGRlci5idWlsZChleGVjKTsKKyAgICAgICAgcmV0dXJuIGpzU3Ry
aW5nKGV4ZWMsIGJ1aWxkZXIudG9TdHJpbmcoKSk7CiAgICAgfSkpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZ0J1aWxkZXIuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nQnVpbGRlci5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAzYjc3YTQ1ZTRkMmVlZmYxM2ZlY2I4MTdiYmZhYjUwZmU2YmFlNDhm
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nQnVpbGRlci5oCisrKyAvZGV2L251bGwKQEAg
LTEsMTM5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIK
LSNpbmNsdWRlICJKU1N0cmluZy5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZlY3Rvci5o
PgotCi1uYW1lc3BhY2UgSlNDIHsKLQotLy8gRklYTUU6IFNob3VsZCBtb3ZlIHRoZSBsYXN0IGZl
dyBjYWxsZXJzIG92ZXIgZnJvbSB0aGlzIHRvIFdURjo6U3RyaW5nQnVpbGRlci4KLWNsYXNzIEpT
U3RyaW5nQnVpbGRlciB7Ci1wdWJsaWM6Ci0gICAgSlNTdHJpbmdCdWlsZGVyKCkKLSAgICAgICAg
OiBtX29rYXkodHJ1ZSkKLSAgICAgICAgLCBtX2lzOEJpdCh0cnVlKQotICAgIHsKLSAgICB9Ci0K
LSAgICB2b2lkIGFwcGVuZChMQ2hhciBjaGFyYWN0ZXIpCi0gICAgewotICAgICAgICBpZiAobV9p
czhCaXQpIHsKLSAgICAgICAgICAgIG1fb2theSAmPSBidWZmZXI4LnRyeUFwcGVuZCgmY2hhcmFj
dGVyLCAxKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBVQ2hhciB1
cGNvbnZlcnRlZENoYXJhY3RlciA9IGNoYXJhY3RlcjsKLSAgICAgICAgbV9va2F5ICY9IGJ1ZmZl
cjE2LnRyeUFwcGVuZCgmdXBjb252ZXJ0ZWRDaGFyYWN0ZXIsIDEpOwotICAgIH0KLQotICAgIHZv
aWQgYXBwZW5kKFVDaGFyIGNoYXJhY3RlcikKLSAgICB7Ci0gICAgICAgIGlmIChtX2lzOEJpdCkg
ewotICAgICAgICAgICAgaWYgKGNoYXJhY3RlciA8IDB4MTAwKSB7Ci0gICAgICAgICAgICAgICAg
TENoYXIgbmFycm93ZWRDaGFyYWN0ZXIgPSBjaGFyYWN0ZXI7Ci0gICAgICAgICAgICAgICAgbV9v
a2F5ICY9IGJ1ZmZlcjgudHJ5QXBwZW5kKCZuYXJyb3dlZENoYXJhY3RlciwgMSk7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdXBDb252ZXJ0KCk7
Ci0gICAgICAgIH0KLSAgICAgICAgbV9va2F5ICY9IGJ1ZmZlcjE2LnRyeUFwcGVuZCgmY2hhcmFj
dGVyLCAxKTsKLSAgICB9Ci0KLSAgICB2b2lkIGFwcGVuZChjb25zdCBjaGFyKiBzdHIpCi0gICAg
ewotICAgICAgICBhcHBlbmQocmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KHN0ciksIHN0
cmxlbihzdHIpKTsKLSAgICB9Ci0KLSAgICBKU1ZhbHVlIGJ1aWxkKEV4ZWNTdGF0ZSogZXhlYykK
LSAgICB7Ci0gICAgICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7Ci0gICAgICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICAgICAgaWYgKCFtX29rYXkpCi0gICAgICAg
ICAgICByZXR1cm4gdGhyb3dPdXRPZk1lbW9yeUVycm9yKGV4ZWMsIHNjb3BlKTsKLSAgICAgICAg
aWYgKG1faXM4Qml0KSB7Ci0gICAgICAgICAgICBidWZmZXI4LnNocmlua1RvRml0KCk7Ci0gICAg
ICAgICAgICBpZiAoIWJ1ZmZlcjguZGF0YSgpKQotICAgICAgICAgICAgICAgIHJldHVybiB0aHJv
d091dE9mTWVtb3J5RXJyb3IoZXhlYywgc2NvcGUpOwotICAgICAgICAgICAgcmV0dXJuIGpzU3Ry
aW5nKGV4ZWMsIFN0cmluZzo6YWRvcHQoV1RGTW92ZShidWZmZXI4KSkpOwotICAgICAgICB9Ci0g
ICAgICAgIGJ1ZmZlcjE2LnNocmlua1RvRml0KCk7Ci0gICAgICAgIGlmICghYnVmZmVyMTYuZGF0
YSgpKQotICAgICAgICAgICAgcmV0dXJuIHRocm93T3V0T2ZNZW1vcnlFcnJvcihleGVjLCBzY29w
ZSk7Ci0gICAgICAgIHJldHVybiBqc1N0cmluZyhleGVjLCBTdHJpbmc6OmFkb3B0KFdURk1vdmUo
YnVmZmVyMTYpKSk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIHZvaWQgYXBwZW5kKGNvbnN0IExD
aGFyKiBjaGFyYWN0ZXJzLCBzaXplX3QgbGVuZ3RoKQotICAgIHsKLSAgICAgICAgaWYgKG1faXM4
Qml0KSB7Ci0gICAgICAgICAgICBtX29rYXkgJj0gYnVmZmVyOC50cnlBcHBlbmQoY2hhcmFjdGVy
cywgbGVuZ3RoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICAvLyBG
SVhNRTogVGhlcmUgbXVzdCBiZSBhIG1vcmUgZWZmaWNpZW50IHdheSBvZiBkb2luZyB0aGlzLgot
ICAgICAgICBtX29rYXkgJj0gYnVmZmVyMTYudHJ5UmVzZXJ2ZUNhcGFjaXR5KGJ1ZmZlcjE2LnNp
emUoKSArIGxlbmd0aCk7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3RoOyBp
KyspIHsKLSAgICAgICAgICAgIFVDaGFyIHVwY29udmVydGVkQ2hhcmFjdGVyID0gY2hhcmFjdGVy
c1tpXTsKLSAgICAgICAgICAgIG1fb2theSAmPSBidWZmZXIxNi50cnlBcHBlbmQoJnVwY29udmVy
dGVkQ2hhcmFjdGVyLCAxKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHZvaWQgdXBDb252ZXJ0
KCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX2lzOEJpdCk7Ci0gICAgICAgIHNpemVfdCBsZW4g
PSBidWZmZXI4LnNpemUoKTsKLQotICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxlbjsg
aSsrKQotICAgICAgICAgICAgYnVmZmVyMTYuYXBwZW5kKGJ1ZmZlcjhbaV0pOwotCi0gICAgICAg
IGJ1ZmZlcjguY2xlYXIoKTsKLSAgICAgICAgbV9pczhCaXQgPSBmYWxzZTsKLSAgICB9Ci0KLSAg
ICBTdHJpbmdWZWN0b3I8TENoYXIsIDY0LCBVbnNhZmVWZWN0b3JPdmVyZmxvdz4gYnVmZmVyODsK
LSAgICBTdHJpbmdWZWN0b3I8VUNoYXIsIDY0LCBVbnNhZmVWZWN0b3JPdmVyZmxvdz4gYnVmZmVy
MTY7Ci0gICAgYm9vbCBtX29rYXk7Ci0gICAgYm9vbCBtX2lzOEJpdDsKLX07Ci0KLXRlbXBsYXRl
PHR5cGVuYW1lIFN0cmluZ1R5cGU+Ci1pbmxpbmUgSlNWYWx1ZSBqc01ha2VOb250cml2aWFsU3Ry
aW5nKEV4ZWNTdGF0ZSogZXhlYywgU3RyaW5nVHlwZSYmIHN0cmluZykKLXsKLSAgICByZXR1cm4g
anNOb250cml2aWFsU3RyaW5nKGV4ZWMsIHN0ZDo6Zm9yd2FyZDxTdHJpbmdUeXBlPihzdHJpbmcp
KTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgU3RyaW5nVHlwZSwgdHlwZW5hbWUuLi4gU3RyaW5n
VHlwZXM+Ci1pbmxpbmUgSlNWYWx1ZSBqc01ha2VOb250cml2aWFsU3RyaW5nKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgU3RyaW5nVHlwZSYgc3RyaW5nLCBjb25zdCBTdHJpbmdUeXBlcyYuLi4gc3Ry
aW5ncykKLXsKLSAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBTdHJpbmcgcmVzdWx0ID0gdHJ5TWFrZVN0cmluZyhz
dHJpbmcsIHN0cmluZ3MuLi4pOwotICAgIGlmIChVTkxJS0VMWSghcmVzdWx0KSkKLSAgICAgICAg
cmV0dXJuIHRocm93T3V0T2ZNZW1vcnlFcnJvcihleGVjLCBzY29wZSk7Ci0gICAgcmV0dXJuIGpz
Tm9udHJpdmlhbFN0cmluZyhleGVjLCBXVEZNb3ZlKHJlc3VsdCkpOwotfQotCi19IC8vIG5hbWVz
cGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3Ry
aW5nSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmdJbmxp
bmVzLmgKaW5kZXggYmYyMWM0ZGJhODViOGQzMzdmZTgxZWI3NzEzZjY4NDc0MDliNDNiYi4uZTNm
NDhkOTI1YWUzNmQxNjllODU0ZjhkOGU0ODhhNTliNjljY2ExZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmdJbmxpbmVzLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmdJbmxpbmVzLmgKQEAgLTM2LDQgKzM2LDIxIEBA
IGJvb2wgSlNTdHJpbmc6OmVxdWFsKEV4ZWNTdGF0ZSogZXhlYywgSlNTdHJpbmcqIG90aGVyKSBj
b25zdAogICAgIHJldHVybiBXVEY6OmVxdWFsKCptX3ZhbHVlLmltcGwoKSwgKm90aGVyLT5tX3Zh
bHVlLmltcGwoKSk7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFN0cmluZ1R5cGU+CitpbmxpbmUg
SlNWYWx1ZSBqc01ha2VOb250cml2aWFsU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYywgU3RyaW5nVHlw
ZSYmIHN0cmluZykKK3sKKyAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIHN0ZDo6
Zm9yd2FyZDxTdHJpbmdUeXBlPihzdHJpbmcpKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgU3Ry
aW5nVHlwZSwgdHlwZW5hbWUuLi4gU3RyaW5nVHlwZXM+CitpbmxpbmUgSlNWYWx1ZSBqc01ha2VO
b250cml2aWFsU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nVHlwZSYgc3RyaW5n
LCBjb25zdCBTdHJpbmdUeXBlcyYuLi4gc3RyaW5ncykKK3sKKyAgICBWTSYgdm0gPSBleGVjLT52
bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBTdHJp
bmcgcmVzdWx0ID0gdHJ5TWFrZVN0cmluZyhzdHJpbmcsIHN0cmluZ3MuLi4pOworICAgIGlmIChV
TkxJS0VMWSghcmVzdWx0KSkKKyAgICAgICAgcmV0dXJuIHRocm93T3V0T2ZNZW1vcnlFcnJvcihl
eGVjLCBzY29wZSk7CisgICAgcmV0dXJuIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBXVEZNb3Zl
KHJlc3VsdCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCmluZGV4IDM2M2M3NmQ0ZjE0MDNj
Y2JlZTI1YmE3ODE4ZWIxMWZjNDEzMzFjOWMuLjcwODA3Mzg1NjUwZjBiYzk4ZTcwNjljYzdjOTdl
YjMzODgzZGIwYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwUHJvdG90eXBlLmNwcApAQCAtMzAsOCArMzAsNyBAQAogI2luY2x1ZGUgIkpTQ0pTVmFsdWUu
aCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKLSNpbmNs
dWRlICJKU1N0cmluZy5oIgotI2luY2x1ZGUgIkpTU3RyaW5nQnVpbGRlci5oIgorI2luY2x1ZGUg
IkpTU3RyaW5nSW5saW5lcy5oIgogI2luY2x1ZGUgIkxleGVyLmgiCiAjaW5jbHVkZSAiT2JqZWN0
UHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiUmVnRXhwLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAppbmRleCAwNTFlOTA1ODViZTk5ODE1
MWRlZTg2Y2MyOTM4NzBhYmNmYWRmMTgyLi4yOTFiYzY5YTIyNWMwYTg5NjY4YWVhNTRjZjliZDZm
ZTg4Y2VlOWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmlu
Z1Byb3RvdHlwZS5jcHAKQEAgLTM0LDcgKzM0LDYgQEAKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0RnVuY3Rp
b25zLmgiCi0jaW5jbHVkZSAiSlNTdHJpbmdCdWlsZGVyLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmdJ
dGVyYXRvci5oIgogI2luY2x1ZGUgIkxvb2t1cC5oIgogI2luY2x1ZGUgIk9iamVjdFByb3RvdHlw
ZS5oIgo=
</data>
<flag name="review"
          id="346785"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>