<?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>172091</bug_id>
          
          <creation_ts>2017-05-13 22:55:26 -0700</creation_ts>
          <short_desc>Drop PassRefPtr class from WTF</short_desc>
          <delta_ts>2017-05-14 11:02:35 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1308429</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-13 22:55:26 -0700</bug_when>
    <thetext>Drop PassRefPtr class from WTF as it is no longer used or needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308430</commentid>
    <comment_count>1</comment_count>
      <attachid>310067</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-13 22:58:57 -0700</bug_when>
    <thetext>Created attachment 310067
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308433</commentid>
    <comment_count>2</comment_count>
      <attachid>310068</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-13 23:13:32 -0700</bug_when>
    <thetext>Created attachment 310068
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308436</commentid>
    <comment_count>3</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-05-13 23:15:23 -0700</bug_when>
    <thetext>Attachment 310068 did not pass style-queue:


ERROR: Source/WTF/wtf/CrossThreadCopier.cpp:46:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/CrossThreadCopier.cpp:51:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Total errors found: 2 in 5 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>1308437</commentid>
    <comment_count>4</comment_count>
      <attachid>310070</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-13 23:19:56 -0700</bug_when>
    <thetext>Created attachment 310070
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308438</commentid>
    <comment_count>5</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-05-13 23:22:03 -0700</bug_when>
    <thetext>Attachment 310070 did not pass style-queue:


ERROR: Source/WTF/wtf/CrossThreadCopier.cpp:46:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/CrossThreadCopier.cpp:51:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Total errors found: 2 in 5 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>1308441</commentid>
    <comment_count>6</comment_count>
      <attachid>310070</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-05-14 00:03:38 -0700</bug_when>
    <thetext>Comment on attachment 310070
Patch

Hooray!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308449</commentid>
    <comment_count>7</comment_count>
      <attachid>310070</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-14 00:31:53 -0700</bug_when>
    <thetext>Comment on attachment 310070
Patch

Clearing flags on attachment: 310070

Committed r216839: &lt;http://trac.webkit.org/changeset/216839&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308450</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-14 00:31:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308485</commentid>
    <comment_count>9</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-05-14 06:34:01 -0700</bug_when>
    <thetext>Woohoo!!!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308492</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-14 08:32:28 -0700</bug_when>
    <thetext>(In reply to WebKit Commit Bot from comment #7)
&gt; Comment on attachment 310070 [details]
&gt; Patch
&gt; 
&gt; Clearing flags on attachment: 310070
&gt; 
&gt; Committed r216839: &lt;http://trac.webkit.org/changeset/216839&gt;

\o/ R.I.P. PassRefPtr. \o/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308495</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-05-14 08:57:35 -0700</bug_when>
    <thetext>That’s great! Great job Chris.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308507</commentid>
    <comment_count>12</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-05-14 11:02:35 -0700</bug_when>
    <thetext>🎉</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310067</attachid>
            <date>2017-05-13 22:58:57 -0700</date>
            <delta_ts>2017-05-13 23:13:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172091-20170513225856.patch</filename>
            <type>text/plain</type>
            <size>20503</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2ODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGZmNTZlMTFkYzE5OTUwZjFkODY5MDc3
ODNhNjQwZmVjZWMzNzJhYjUuLjBjNTkyZjZjM2I2N2YyZjVjZDhjOGU0ODU2MzY5ZTA0MWYzNTcz
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMjkgQEAKIDIwMTctMDUtMTMgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAorICAgICAgICBEcm9wIFBhc3NSZWZQdHIgY2xhc3MgZnJvbSBXVEYKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MjA5MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgUGFzc1Jl
ZlB0ciBjbGFzcyBmcm9tIFdURiBhcyBpdCBpcyBubyBsb25nZXIgdXNlZCBvciBuZWVkZWQuCisg
ICAgICAgIEFsc28gZHJvcCBSZWZQdHI6OnJlbGVhc2UoKSBmb3IgdGhlIHNhbWUgcmVhc29ucy4K
KworICAgICAgICAqIFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHd0
Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiB3dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwOgor
ICAgICAgICAqIHd0Zi9Dcm9zc1RocmVhZENvcGllci5oOgorICAgICAgICAqIHd0Zi9Gb3J3YXJk
Lmg6CisgICAgICAgICogd3RmL1Bhc3NSZWZQdHIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiB3dGYv
UmVmUHRyLmg6CisgICAgICAgIChXVEY6OnJlZklmTm90TnVsbCk6CisgICAgICAgIChXVEY6OmRl
cmVmSWZOb3ROdWxsKToKKyAgICAgICAgKFdURjo6UmVmUHRyOjpSZWZQdHIpOgorICAgICAgICAo
V1RGOjpSZWZQdHI6OnJlbGVhc2UpOiBEZWxldGVkLgorICAgICAgICAqIHd0Zi9TaXplTGltaXRz
LmNwcDoKKyAgICAgICAgKiB3dGYvVmVjdG9yLmg6CisKKzIwMTctMDUtMTMgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBTdG9wIHVzaW5nIFJlZlB0cjo6cmVsZWFz
ZSgpCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIw
NzQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjU2ZTE1
Y2JkZTlmNGM2YWZkOTdhOTk0NTRmZWExNTIyN2RiOGUwNC4uMDcwYTFhYTAzZTgwMThlMDVjNDg0
MTFjNDE0NjMwOTAxYWIzZWUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC00NDQsNyArNDQ0LDYgQEAKIAkJQThBNDcyRTUxNTFBODI1QjAwNDEyM0ZGIC8q
IFBhZ2VSZXNlcnZhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdl
UmVzZXJ2YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDcyRTYxNTFB
ODI1QjAwNDEyM0ZGIC8qIFBhcmFsbGVsSm9icy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQYXJhbGxlbEpvYnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThB
NDcyRTkxNTFBODI1QjAwNDEyM0ZGIC8qIFBhcmFsbGVsSm9ic0xpYmRpc3BhdGNoLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhcmFsbGVsSm9ic0xpYmRpc3BhdGNoLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QTQ3MkVEMTUxQTgyNUIwMDQxMjNGRiAvKiBQ
YXNzUmVmUHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3NSZWZQdHIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDcyRkIxNTFBODI1QjAwNDEyM0ZG
IC8qIFJhbmRvbU51bWJlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSYW5kb21OdW1iZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEE0NzJG
QzE1MUE4MjVCMDA0MTIzRkYgLyogUmFuZG9tTnVtYmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJhbmRvbU51bWJlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBOEE0NzJGRDE1MUE4MjVCMDA0MTIzRkYgLyogUmFuZG9tTnVtYmVyU2VlZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSYW5kb21OdW1iZXJTZWVkLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC04NzcsNyArODc2LDYgQEAKIAkJCQkwRkVCM0REMDFCQjczNjZC
MDA5RDdBQUQgLyogUGFyYWxsZWxWZWN0b3JJdGVyYXRvci5oICovLAogCQkJCTBGODI0QTY0MUI3
NDQzQTAwMDJFMzQ1RCAvKiBQYXJraW5nTG90LmNwcCAqLywKIAkJCQkwRjgyNEE2NTFCNzQ0M0Ew
MDAyRTM0NUQgLyogUGFya2luZ0xvdC5oICovLAotCQkJCUE4QTQ3MkVEMTUxQTgyNUIwMDQxMjNG
RiAvKiBQYXNzUmVmUHRyLmggKi8sCiAJCQkJQTg3NkRCRDcxNTE4MTZFNTAwREFEQjk1IC8qIFBs
YXRmb3JtLmggKi8sCiAJCQkJRTMyMDBBQjQxRTlBNTM2RDAwM0I1OUQyIC8qIFBsYXRmb3JtUmVn
aXN0ZXJzLmggKi8sCiAJCQkJRENFRTIxRkUxQ0VBNzU1MTAwMEMyMzk2IC8qIFBsYXRmb3JtVXNl
clByZWZlcnJlZExhbmd1YWdlcy5oICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCAyYjc2MTRm
NjRmZGQyODY2YTUwNzZmNzUzMzg3NGNiYzczZjI2MWNlLi45ZDAyZGIzM2NhZTNkZDAwMzZiYmI0
MGJlY2NjZDZkOThhMjM0OTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtOTUsNyArOTUsNiBA
QCBzZXQoV1RGX0hFQURFUlMKICAgICBQYXJhbGxlbEpvYnNPcGVuTVAuaAogICAgIFBhcmFsbGVs
VmVjdG9ySXRlcmF0b3IuaAogICAgIFBhcmtpbmdMb3QuaAotICAgIFBhc3NSZWZQdHIuaAogICAg
IFBsYXRmb3JtLmgKICAgICBQbGF0Zm9ybVJlZ2lzdGVycy5oCiAgICAgUHJpbnRTdHJlYW0uaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGIvU291cmNl
L1dURi93dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCmluZGV4IGU1OTI0OWY5ODkyNzJjZWRmYWMz
ZTM2OWE3ZWE2MmM2YTgxMWYyNDkuLmJiYTRiZjk3MmZiNjUwNjVkZTg5ZGMxMzk4NzM1OWUwNmEx
YzRjN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkQ29waWVyLmNwcAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1RocmVhZENvcGllci5jcHAKQEAgLTM2LDM3ICszNiwx
MyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotLy8gVGVzdCBDcm9zc1RocmVhZENvcGllciB1c2lu
ZyBDT01QSUxFX0FTU0VSVC4KLQotLy8gVmVyaWZ5IHRoYXQgVGhyZWFkU2FmZVJlZkNvdW50ZWQg
b2JqZWN0cyBnZXQgaGFuZGxlZCBjb3JyZWN0bHkuCi1jbGFzcyBDb3BpZXJUaHJlYWRTYWZlUmVm
Q291bnRlZFRlc3QgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Q29waWVyVGhyZWFkU2Fm
ZVJlZkNvdW50ZWRUZXN0PiB7Ci19OwotCi1DT01QSUxFX0FTU0VSVCgoc3RkOjppc19zYW1lPAot
ICAgICAgICAgICAgICAgICAgICBQYXNzUmVmUHRyPENvcGllclRocmVhZFNhZmVSZWZDb3VudGVk
VGVzdD4sCi0gICAgICAgICAgICAgICAgICAgIENyb3NzVGhyZWFkQ29waWVyPFBhc3NSZWZQdHI8
Q29waWVyVGhyZWFkU2FmZVJlZkNvdW50ZWRUZXN0Pj46OlR5cGUKLSAgICAgICAgICAgICAgICA+
Ojp2YWx1ZSksCi0gICAgICAgICAgICAgICAgUGFzc1JlZlB0clRlc3QpOwotQ09NUElMRV9BU1NF
UlQoKHN0ZDo6aXNfc2FtZTwKLSAgICAgICAgICAgICAgICAgICAgUGFzc1JlZlB0cjxDb3BpZXJU
aHJlYWRTYWZlUmVmQ291bnRlZFRlc3Q+LAotICAgICAgICAgICAgICAgICAgICBDcm9zc1RocmVh
ZENvcGllcjxSZWZQdHI8Q29waWVyVGhyZWFkU2FmZVJlZkNvdW50ZWRUZXN0Pj46OlR5cGUKLSAg
ICAgICAgICAgICAgICA+Ojp2YWx1ZSksCi0gICAgICAgICAgICAgICAgUmVmUHRyVGVzdCk7Ci1D
T01QSUxFX0FTU0VSVCgoc3RkOjppc19zYW1lPAotICAgICAgICAgICAgICAgICAgICBQYXNzUmVm
UHRyPENvcGllclRocmVhZFNhZmVSZWZDb3VudGVkVGVzdD4sCi0gICAgICAgICAgICAgICAgICAg
IENyb3NzVGhyZWFkQ29waWVyPENvcGllclRocmVhZFNhZmVSZWZDb3VudGVkVGVzdCo+OjpUeXBl
Ci0gICAgICAgICAgICAgICAgPjo6dmFsdWUpLAotICAgICAgICAgICAgICAgIFJhd1BvaW50ZXJU
ZXN0KTsKKy8vIFRlc3QgQ3Jvc3NUaHJlYWRDb3BpZXIgdXNpbmcgc3RhdGljX2Fzc2VydC4KIAog
Ly8gQWRkIHNwZWNpYWxpemF0aW9ucyBmb3IgUmVmQ291bnRlZCB0eXBlcyB3aGljaCB3aWxsIGxl
dCB1cyB2ZXJpZnkgdGhhdCBubyBvdGhlciB0ZW1wbGF0ZSBtYXRjaGVzLgogdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFJlZlB0
cjxUPj4gewogICAgIHR5cGVkZWYgaW50IFR5cGU7CiB9OwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgUGFzc1JlZlB0cjxU
Pj4gewotICAgIHR5cGVkZWYgaW50IFR5cGU7Ci19OwotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBz
dHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgVCo+IHsKICAgICB0eXBl
ZGVmIGludCBUeXBlOwogfTsKQEAgLTc1LDcgKzUxLDYgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4g
c3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFQqPiB7CiBjbGFzcyBD
b3BpZXJSZWZDb3VudGVkVGVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPENvcGllclJlZkNvdW50ZWRU
ZXN0PiB7CiB9OwogCi1zdGF0aWNfYXNzZXJ0KChzdGQ6OmlzX3NhbWU8aW50LCBDcm9zc1RocmVh
ZENvcGllcjxQYXNzUmVmUHRyPENvcGllclJlZkNvdW50ZWRUZXN0Pj46OlR5cGU+Ojp2YWx1ZSks
ICJDcm9zc1RocmVhZENvcGllciBzcGVjaWFsaXphdGlvbiBpbXByb3Blcmx5IGFwcGxpZWQgdG8g
UGFzc1JlZlB0cjw+IG9mIGEgUmVmQ291bnRlZCAoYnV0IG5vdCBUaHJlYWRTYWZlUmVmQ291bnRl
ZCkgdHlwZSIpOwogc3RhdGljX2Fzc2VydCgoc3RkOjppc19zYW1lPGludCwgQ3Jvc3NUaHJlYWRD
b3BpZXI8UmVmUHRyPENvcGllclJlZkNvdW50ZWRUZXN0Pj46OlR5cGU+Ojp2YWx1ZSksICJDcm9z
c1RocmVhZENvcGllciBzcGVjaWFsaXphdGlvbiBpbXByb3Blcmx5IGFwcGxpZWQgdG8gUmVmUHRy
PD4gb2YgYSBSZWZDb3VudGVkIChidXQgbm90IFRocmVhZFNhZmVSZWZDb3VudGVkKSB0eXBlIik7
CiBzdGF0aWNfYXNzZXJ0KChzdGQ6OmlzX3NhbWU8aW50LCBDcm9zc1RocmVhZENvcGllcjxDb3Bp
ZXJSZWZDb3VudGVkVGVzdCo+OjpUeXBlPjo6dmFsdWUpLCAiQ3Jvc3NUaHJlYWRDb3BpZXIgc3Bl
Y2lhbGl6YXRpb24gaW1wcm9wZXJseSBhcHBsaWVkIHRvIHJhdyBwb2ludGVyIG9mIGEgUmVmQ291
bnRlZCAoYnV0IG5vdCBUaHJlYWRTYWZlUmVmQ291bnRlZCkgdHlwZSIpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1RocmVhZENvcGllci5oIGIvU291cmNlL1dURi93dGYvQ3Jv
c3NUaHJlYWRDb3BpZXIuaAppbmRleCBmMGM4NmU1NTA1YTAwNTRkNWM3NTZlZTg5NDJlNzQ3NmMy
NTExMjFmLi4zZWFiOTIwYWE1NWIzMmNiYjg1MDgyOTA3MjJiM2UxNmM1MTIzYzVmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1RocmVhZENvcGllci5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL0Nyb3NzVGhyZWFkQ29waWVyLmgKQEAgLTMzLDcgKzMzLDYgQEAKIAogI2luY2x1ZGUgPHd0
Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVGhy
ZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC01MiwxMCArNTEs
NiBAQCBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlSGVscGVyIHsKICAgICAgICAgdHlwZWRl
ZiBUIFR5cGU7CiAgICAgfTsKIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBSZW1v
dmVQb2ludGVyPFBhc3NSZWZQdHI8VD4+IHsKLSAgICAgICAgdHlwZWRlZiBUIFR5cGU7Ci0gICAg
fTsKLQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBJc0VudW1PckNvbnZlcnRpYmxl
VG9JbnRlZ2VyIHsKICAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSBzdGQ6OmlzX2lu
dGVncmFsPFQ+Ojp2YWx1ZSB8fCBzdGQ6OmlzX2VudW08VD46OnZhbHVlIHx8IHN0ZDo6aXNfY29u
dmVydGlibGU8VCwgbG9uZyBkb3VibGU+Ojp2YWx1ZTsKICAgICB9OwpAQCAtOTIsNyArODcsNyBA
QCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNl
LCB0cnVlLCBUPiB7CiAgICAgdHlwZWRlZiB0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllckJhc2VI
ZWxwZXI6OlJlbW92ZVBvaW50ZXI8VD46OlR5cGUgUmVmQ291bnRlZFR5cGU7CiAgICAgc3RhdGlj
X2Fzc2VydChzdGQ6OmlzX2NvbnZlcnRpYmxlPFJlZkNvdW50ZWRUeXBlKiwgVGhyZWFkU2FmZVJl
ZkNvdW50ZWQ8UmVmQ291bnRlZFR5cGU+Kj46OnZhbHVlLCAiVCBpcyBub3QgY29udmVydGlibGUg
dG8gVGhyZWFkU2FmZVJlZkNvdW50ZWQhIik7CiAKLSAgICB0eXBlZGVmIFBhc3NSZWZQdHI8UmVm
Q291bnRlZFR5cGU+IFR5cGU7CisgICAgdHlwZWRlZiBSZWZQdHI8UmVmQ291bnRlZFR5cGU+JiYg
VHlwZTsKICAgICBzdGF0aWMgVHlwZSBjb3B5KGNvbnN0IFQmIHJlZlB0cikKICAgICB7CiAgICAg
ICAgIHJldHVybiByZWZQdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgKaW5kZXggZDY4YTk0N2Q0OTg1Y2Y3NzQ4NTA4NDBm
MGIxMzdhOGNkNTQ3YWU3Ni4uNmZiY2JlZWM3MTIwM2JkZDE2YzE4YTIwYzY4YWM4ZWEyMDU2NjI1
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRm9yd2FyZC5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL0ZvcndhcmQuaApAQCAtMzIsNyArMzIsNiBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFz
cyBGdW5jdGlvbjsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIExhenlOZXZlckRlc3Ryb3ll
ZDsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIE5ldmVyRGVzdHJveWVkOwogdGVtcGxhdGU8
dHlwZW5hbWUgVD4gY2xhc3MgT3B0aW9uU2V0OwotdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3Mg
UGFzc1JlZlB0cjsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFJlZjsKIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IGNsYXNzIFJlZlB0cjsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFN0cmlu
Z0J1ZmZlcjsKQEAgLTY1LDcgKzY0LDYgQEAgdXNpbmcgV1RGOjpMYXp5TmV2ZXJEZXN0cm95ZWQ7
CiB1c2luZyBXVEY6Ok5ldmVyRGVzdHJveWVkOwogdXNpbmcgV1RGOjpPcHRpb25TZXQ7CiB1c2lu
ZyBXVEY6Ok9yZGluYWxOdW1iZXI7Ci11c2luZyBXVEY6OlBhc3NSZWZQdHI7CiB1c2luZyBXVEY6
OlByaW50U3RyZWFtOwogdXNpbmcgV1RGOjpSZWY7CiB1c2luZyBXVEY6OlJlZlB0cjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL1Bhc3NSZWZQdHIuaCBiL1NvdXJjZS9XVEYvd3RmL1Bhc3NS
ZWZQdHIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDg5MTkyYjBiYzI3NGQ4ZmMw
YTQ4MWNiZmE4OWI3NmUxMWY5ZTc3My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QYXNzUmVmUHRyLmgKKysrIC9kZXYvbnVsbApA
QCAtMSwxNjIgKzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDcs
IDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICog
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCi0gKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAq
Ci0gKi8KLQotI2lmbmRlZiBXVEZfUGFzc1JlZlB0cl9oCi0jZGVmaW5lIFdURl9QYXNzUmVmUHRy
X2gKLQotI2luY2x1ZGUgPHd0Zi9SZWYuaD4KLQotbmFtZXNwYWNlIFdURiB7Ci0KLSAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBSZWZQdHI7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4g
Y2xhc3MgUGFzc1JlZlB0cjsKLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IEFMV0FZU19JTkxJ
TkUgdm9pZCByZWZJZk5vdE51bGwoVCogcHRyKQotICAgIHsKLSAgICAgICAgaWYgKExJS0VMWShw
dHIgIT0gbnVsbHB0cikpCi0gICAgICAgICAgICBwdHItPnJlZigpOwotICAgIH0KLQotICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IEFMV0FZU19JTkxJTkUgdm9pZCBkZXJlZklmTm90TnVsbChUKiBw
dHIpCi0gICAgewotICAgICAgICBpZiAoTElLRUxZKHB0ciAhPSBudWxscHRyKSkKLSAgICAgICAg
ICAgIHB0ci0+ZGVyZWYoKTsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFz
cyBQYXNzUmVmUHRyIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHR5cGVkZWYgVCBWYWx1ZVR5cGU7
Ci0gICAgICAgIHR5cGVkZWYgVmFsdWVUeXBlKiBQdHJUeXBlOwotCi0gICAgICAgIFBhc3NSZWZQ
dHIoKSA6IG1fcHRyKG51bGxwdHIpIHsgfQotICAgICAgICBQYXNzUmVmUHRyKFQqIHB0cikgOiBt
X3B0cihwdHIpIHsgcmVmSWZOb3ROdWxsKHB0cik7IH0KLSAgICAgICAgLy8gSXQgc29tZXdoYXQg
YnJlYWtzIHRoZSB0eXBlIHN5c3RlbSB0byBhbGxvdyB0cmFuc2ZlciBvZiBvd25lcnNoaXAgb3V0
IG9mCi0gICAgICAgIC8vIGEgY29uc3QgUGFzc1JlZlB0ci4gSG93ZXZlciwgaXQgbWFrZXMgaXQg
bXVjaCBlYXNpZXIgdG8gd29yayB3aXRoIFBhc3NSZWZQdHIKLSAgICAgICAgLy8gdGVtcG9yYXJp
ZXMsIGFuZCB3ZSBkb24ndCBoYXZlIGEgbmVlZCB0byB1c2UgcmVhbCBjb25zdCBQYXNzUmVmUHRy
cyBhbnl3YXkuCi0gICAgICAgIFBhc3NSZWZQdHIoY29uc3QgUGFzc1JlZlB0ciYgbykgOiBtX3B0
cihvLmxlYWtSZWYoKSkgeyB9Ci0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IFBhc3NSZWZQ
dHIoY29uc3QgUGFzc1JlZlB0cjxVPiYgbykgOiBtX3B0cihvLmxlYWtSZWYoKSkgeyB9Ci0KLSAg
ICAgICAgQUxXQVlTX0lOTElORSB+UGFzc1JlZlB0cigpIHsgZGVyZWZJZk5vdE51bGwoc3RkOjpl
eGNoYW5nZShtX3B0ciwgbnVsbHB0cikpOyB9Ci0KLSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
VT4gUGFzc1JlZlB0cihjb25zdCBSZWZQdHI8VT4mKTsKLSAgICAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVT4gUGFzc1JlZlB0cihSZWY8VT4mJiByZWZlcmVuY2UpIDogbV9wdHIoJnJlZmVyZW5jZS5s
ZWFrUmVmKCkpIHsgfQotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBQYXNzUmVmUHRyKFJl
ZlB0cjxVPiYmIHJlZmVyZW5jZSkgOiBtX3B0cihyZWZlcmVuY2UubGVha1JlZigpKSB7IH0KLQot
ICAgICAgICBUKiBnZXQoKSBjb25zdCB7IHJldHVybiBtX3B0cjsgfQotCi0gICAgICAgIFQqIGxl
YWtSZWYoKSBjb25zdCBXQVJOX1VOVVNFRF9SRVRVUk47Ci0KLSAgICAgICAgVCYgb3BlcmF0b3Iq
KCkgY29uc3QgeyByZXR1cm4gKm1fcHRyOyB9Ci0gICAgICAgIFQqIG9wZXJhdG9yLT4oKSBjb25z
dCB7IHJldHVybiBtX3B0cjsgfQotCi0gICAgICAgIGJvb2wgb3BlcmF0b3IhKCkgY29uc3QgeyBy
ZXR1cm4gIW1fcHRyOyB9Ci0KLSAgICAgICAgLy8gVGhpcyBjb252ZXJzaW9uIG9wZXJhdG9yIGFs
bG93cyBpbXBsaWNpdCBjb252ZXJzaW9uIHRvIGJvb2wgYnV0IG5vdCB0byBvdGhlciBpbnRlZ2Vy
IHR5cGVzLgotICAgICAgICB0eXBlZGVmIFQqIChQYXNzUmVmUHRyOjoqVW5zcGVjaWZpZWRCb29s
VHlwZSk7Ci0gICAgICAgIG9wZXJhdG9yIFVuc3BlY2lmaWVkQm9vbFR5cGUoKSBjb25zdCB7IHJl
dHVybiBtX3B0ciA/ICZQYXNzUmVmUHRyOjptX3B0ciA6IG51bGxwdHI7IH0KLQotICAgICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBWLCB0eXBlbmFtZSBVPiBmcmllbmQgUGFzc1JlZlB0cjxWPiBzdGF0
aWNfcG9pbnRlcl9jYXN0KGNvbnN0IFBhc3NSZWZQdHI8VT4mKTsKLQotICAgIHByaXZhdGU6Ci0g
ICAgICAgIFBhc3NSZWZQdHImIG9wZXJhdG9yPShjb25zdCBQYXNzUmVmUHRyJikgPSBkZWxldGU7
Ci0KLSAgICAgICAgZW51bSBBZG9wdFRhZyB7IEFkb3B0IH07Ci0gICAgICAgIFBhc3NSZWZQdHIo
VCogcHRyLCBBZG9wdFRhZykgOiBtX3B0cihwdHIpIHsgfQotCi0gICAgICAgIG11dGFibGUgVCog
bV9wdHI7Ci0gICAgfTsKLSAgICAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB0ZW1wbGF0ZTx0
eXBlbmFtZSBVPiBpbmxpbmUgUGFzc1JlZlB0cjxUPjo6UGFzc1JlZlB0cihjb25zdCBSZWZQdHI8
VT4mIG8pCi0gICAgICAgIDogbV9wdHIoby5nZXQoKSkKLSAgICB7Ci0gICAgICAgIFQqIHB0ciA9
IG1fcHRyOwotICAgICAgICByZWZJZk5vdE51bGwocHRyKTsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBpbmxpbmUgVCogUGFzc1JlZlB0cjxUPjo6bGVha1JlZigpIGNvbnN0Ci0g
ICAgewotICAgICAgICByZXR1cm4gc3RkOjpleGNoYW5nZShtX3B0ciwgbnVsbHB0cik7Ci0gICAg
fQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wgb3Bl
cmF0b3I9PShjb25zdCBQYXNzUmVmUHRyPFQ+JiBhLCBjb25zdCBQYXNzUmVmUHRyPFU+JiBiKSAK
LSAgICB7IAotICAgICAgICByZXR1cm4gYS5nZXQoKSA9PSBiLmdldCgpOyAKLSAgICB9Ci0KLSAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09
KGNvbnN0IFBhc3NSZWZQdHI8VD4mIGEsIGNvbnN0IFJlZlB0cjxVPiYgYikgCi0gICAgeyAKLSAg
ICAgICAgcmV0dXJuIGEuZ2V0KCkgPT0gYi5nZXQoKTsgCi0gICAgfQotCi0gICAgdGVtcGxhdGU8
dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBSZWZQ
dHI8VD4mIGEsIGNvbnN0IFBhc3NSZWZQdHI8VT4mIGIpIAotICAgIHsgCi0gICAgICAgIHJldHVy
biBhLmdldCgpID09IGIuZ2V0KCk7IAotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQs
IHR5cGVuYW1lIFU+IGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgUGFzc1JlZlB0cjxUPiYg
YSwgVSogYikgCi0gICAgeyAKLSAgICAgICAgcmV0dXJuIGEuZ2V0KCkgPT0gYjsgCi0gICAgfQot
ICAgIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29sIG9w
ZXJhdG9yPT0oVCogYSwgY29uc3QgUGFzc1JlZlB0cjxVPiYgYikgCi0gICAgewotICAgICAgICBy
ZXR1cm4gYSA9PSBiLmdldCgpOyAKLSAgICB9Ci0gICAgCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUg
VCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBQYXNzUmVmUHRyPFQ+
JiBhLCBjb25zdCBQYXNzUmVmUHRyPFU+JiBiKSAKLSAgICB7IAotICAgICAgICByZXR1cm4gYS5n
ZXQoKSAhPSBiLmdldCgpOyAKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBl
bmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFBhc3NSZWZQdHI8VD4mIGEsIGNv
bnN0IFJlZlB0cjxVPiYgYikgCi0gICAgeyAKLSAgICAgICAgcmV0dXJuIGEuZ2V0KCkgIT0gYi5n
ZXQoKTsgCi0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5s
aW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBSZWZQdHI8VD4mIGEsIGNvbnN0IFBhc3NSZWZQdHI8
VT4mIGIpIAotICAgIHsgCi0gICAgICAgIHJldHVybiBhLmdldCgpICE9IGIuZ2V0KCk7IAotICAg
IH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29sIG9w
ZXJhdG9yIT0oY29uc3QgUGFzc1JlZlB0cjxUPiYgYSwgVSogYikKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBhLmdldCgpICE9IGI7IAotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5
cGVuYW1lIFU+IGlubGluZSBib29sIG9wZXJhdG9yIT0oVCogYSwgY29uc3QgUGFzc1JlZlB0cjxV
PiYgYikgCi0gICAgeyAKLSAgICAgICAgcmV0dXJuIGEgIT0gYi5nZXQoKTsgCi0gICAgfQotCi0g
ICAgdGVtcGxhdGU8dHlwZW5hbWUgViwgdHlwZW5hbWUgVT4gaW5saW5lIFBhc3NSZWZQdHI8Vj4g
c3RhdGljX3BvaW50ZXJfY2FzdChjb25zdCBQYXNzUmVmUHRyPFU+JiBwKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIFBhc3NSZWZQdHI8Vj4oc3RhdGljX2Nhc3Q8Vio+KHAubGVha1JlZigpKSwgUGFz
c1JlZlB0cjxWPjo6QWRvcHQpOwotICAgIH0KLQotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBz
dHJ1Y3QgSXNTbWFydFB0cjxQYXNzUmVmUHRyPFQ+PiB7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBi
b29sIHZhbHVlID0gdHJ1ZTsKLSAgICB9OwotCi19IC8vIG5hbWVzcGFjZSBXVEYKLQotdXNpbmcg
V1RGOjpQYXNzUmVmUHRyOwotdXNpbmcgV1RGOjpzdGF0aWNfcG9pbnRlcl9jYXN0OwotCi0jZW5k
aWYgLy8gV1RGX1Bhc3NSZWZQdHJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUmVmUHRy
LmggYi9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaAppbmRleCAyNzdlNjc1ZGIzYzU1NWQ1ZTRjNmNl
MDQ5NDY4ODc0ZDM2NzY5NTljLi42OWIzMTBmYTUzMGFlYTU3MTE3ZTk2NDM5YTIzZTZiMzk3MDkx
Mjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9SZWZQdHIuaApAQCAtMTgsNyArMTgsNyBAQAogICoKICAqLwogCi0vLyBSZWZQdHIgYW5k
IFBhc3NSZWZQdHIgYXJlIGRvY3VtZW50ZWQgYXQgaHR0cDovL3dlYmtpdC5vcmcvY29kaW5nL1Jl
ZlB0ci5odG1sCisvLyBSZWZQdHIgaXMgZG9jdW1lbnRlZCBhdCBodHRwOi8vd2Via2l0Lm9yZy9j
b2RpbmcvUmVmUHRyLmh0bWwKIAogI2lmbmRlZiBXVEZfUmVmUHRyX2gKICNkZWZpbmUgV1RGX1Jl
ZlB0cl9oCkBAIC0yNywxMyArMjcsMjUgQEAKICNpbmNsdWRlIDx1dGlsaXR5PgogI2luY2x1ZGUg
PHd0Zi9GYXN0TWFsbG9jLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgotI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgogCiBuYW1lc3BhY2UgV1RGIHsK
IAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgUmVmUHRyOwogdGVtcGxhdGU8dHlwZW5hbWUg
VD4gUmVmUHRyPFQ+IGFkb3B0UmVmKFQqKTsKIAordGVtcGxhdGU8dHlwZW5hbWUgVD4gQUxXQVlT
X0lOTElORSB2b2lkIHJlZklmTm90TnVsbChUKiBwdHIpCit7CisgICAgaWYgKExJS0VMWShwdHIg
IT0gbnVsbHB0cikpCisgICAgICAgIHB0ci0+cmVmKCk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1l
IFQ+IEFMV0FZU19JTkxJTkUgdm9pZCBkZXJlZklmTm90TnVsbChUKiBwdHIpCit7CisgICAgaWYg
KExJS0VMWShwdHIgIT0gbnVsbHB0cikpCisgICAgICAgIHB0ci0+ZGVyZWYoKTsKK30KKwogdGVt
cGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgUmVmUHRyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKQEAgLTQ5LDEwICs2MSw2IEBAIHB1YmxpYzoKIAogICAgIEFMV0FZU19J
TkxJTkUgUmVmUHRyKFJlZlB0ciYmIG8pIDogbV9wdHIoby5sZWFrUmVmKCkpIHsgfQogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFU+IFJlZlB0cihSZWZQdHI8VT4mJiBvKSA6IG1fcHRyKG8ubGVha1Jl
ZigpKSB7IH0KLQotICAgIC8vIFNlZSBjb21tZW50cyBpbiBQYXNzUmVmUHRyLmggZm9yIGFuIGV4
cGxhbmF0aW9uIG9mIHdoeSB0aGlzIHRha2VzIGEgY29uc3QgcmVmZXJlbmNlLgotICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFU+IFJlZlB0cihjb25zdCBQYXNzUmVmUHRyPFU+Jik7Ci0KICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBVPiBSZWZQdHIoUmVmPFU+JiYpOwogCiAgICAgLy8gSGFzaCB0YWJsZSBk
ZWxldGVkIHZhbHVlcywgd2hpY2ggYXJlIG9ubHkgY29uc3RydWN0ZWQgYW5kIG5ldmVyIGNvcGll
ZCBvciBkZXN0cm95ZWQuCkBAIC02Myw4ICs3MSw2IEBAIHB1YmxpYzoKIAogICAgIFQqIGdldCgp
IGNvbnN0IHsgcmV0dXJuIG1fcHRyOyB9CiAKLSAgICAvLyBGSVhNRTogUmVtb3ZlIHJlbGVhc2Uo
KSBhbmQgY2hhbmdlIGFsbCBjYWxsIHNpdGVzIHRvIGNhbGwgV1RGTW92ZSgpLgotICAgIFJlZlB0
cjxUPiByZWxlYXNlKCkgeyBSZWZQdHI8VD4gdG1wID0gYWRvcHRSZWYobV9wdHIpOyBtX3B0ciA9
IG51bGxwdHI7IHJldHVybiB0bXA7IH0KICAgICBSZWY8VD4gcmVsZWFzZU5vbk51bGwoKSB7IEFT
U0VSVChtX3B0cik7IFJlZjxUPiB0bXAoYWRvcHRSZWYoKm1fcHRyKSk7IG1fcHRyID0gbnVsbHB0
cjsgcmV0dXJuIHRtcDsgfQogICAgIFJlZjxjb25zdCBUPiByZWxlYXNlQ29uc3ROb25OdWxsKCkg
eyBBU1NFUlQobV9wdHIpOyBSZWY8Y29uc3QgVD4gdG1wKGFkb3B0UmVmKCptX3B0cikpOyBtX3B0
ciA9IG51bGxwdHI7IHJldHVybiB0bXA7IH0KIApAQCAtODIsOSArODgsNyBAQCBwdWJsaWM6CiAg
ICAgUmVmUHRyJiBvcGVyYXRvcj0oY29uc3QgUmVmUHRyJik7CiAgICAgUmVmUHRyJiBvcGVyYXRv
cj0oVCopOwogICAgIFJlZlB0ciYgb3BlcmF0b3I9KHN0ZDo6bnVsbHB0cl90KTsKLSAgICBSZWZQ
dHImIG9wZXJhdG9yPShjb25zdCBQYXNzUmVmUHRyPFQ+Jik7CiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVT4gUmVmUHRyJiBvcGVyYXRvcj0oY29uc3QgUmVmUHRyPFU+Jik7Ci0gICAgdGVtcGxhdGU8
dHlwZW5hbWUgVT4gUmVmUHRyJiBvcGVyYXRvcj0oY29uc3QgUGFzc1JlZlB0cjxVPiYpOwogICAg
IFJlZlB0ciYgb3BlcmF0b3I9KFJlZlB0ciYmKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBS
ZWZQdHImIG9wZXJhdG9yPShSZWZQdHI8VT4mJik7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4g
UmVmUHRyJiBvcGVyYXRvcj0oUmVmPFU+JiYpOwpAQCAtMTA5LDExICsxMTMsNiBAQCBwcml2YXRl
OgogICAgIFQqIG1fcHRyOwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4gdGVtcGxhdGU8dHlw
ZW5hbWUgVT4gaW5saW5lIFJlZlB0cjxUPjo6UmVmUHRyKGNvbnN0IFBhc3NSZWZQdHI8VT4mIG8p
Ci0gICAgOiBtX3B0cihvLmxlYWtSZWYoKSkKLXsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgVD4g
dGVtcGxhdGU8dHlwZW5hbWUgVT4gaW5saW5lIFJlZlB0cjxUPjo6UmVmUHRyKFJlZjxVPiYmIHJl
ZmVyZW5jZSkKICAgICA6IG1fcHRyKCZyZWZlcmVuY2UubGVha1JlZigpKQogewpAQCAtMTUyLDIw
ICsxNTEsNiBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgUmVmUHRyPFQ+JiBSZWZQdHI8
VD46Om9wZXJhdG9yPShzdGQ6Om51bGxwdHJfdCkKICAgICByZXR1cm4gKnRoaXM7CiB9CiAKLXRl
bXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBSZWZQdHI8VD4mIFJlZlB0cjxUPjo6b3BlcmF0b3I9
KGNvbnN0IFBhc3NSZWZQdHI8VD4mIG8pCi17Ci0gICAgUmVmUHRyIHB0ciA9IG87Ci0gICAgc3dh
cChwdHIpOwotICAgIHJldHVybiAqdGhpczsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVD4gdGVt
cGxhdGU8dHlwZW5hbWUgVT4gaW5saW5lIFJlZlB0cjxUPiYgUmVmUHRyPFQ+OjpvcGVyYXRvcj0o
Y29uc3QgUGFzc1JlZlB0cjxVPiYgbykKLXsKLSAgICBSZWZQdHIgcHRyID0gbzsKLSAgICBzd2Fw
KHB0cik7Ci0gICAgcmV0dXJuICp0aGlzOwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxp
bmUgUmVmUHRyPFQ+JiBSZWZQdHI8VD46Om9wZXJhdG9yPShSZWZQdHImJiBvKQogewogICAgIFJl
ZlB0ciBwdHIgPSBXVEZNb3ZlKG8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvU2l6ZUxp
bWl0cy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9TaXplTGltaXRzLmNwcAppbmRleCBhODJkMGM0OGJj
OTE0YWVlNzJlN2FmYWY1NDk1ZTYxNWQwNzJiM2U1Li4zY2M2ZmQ3YzZhN2I4YTNlNTA2NWYwYmM3
OGExM2ZmMjM0MGQyNDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9TaXplTGltaXRzLmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9TaXplTGltaXRzLmNwcApAQCAtMzMsNyArMzMsNiBAQAog
I2luY2x1ZGUgPHR5cGVfdHJhaXRzPgogI2luY2x1ZGUgPHV0aWxpdHk+CiAjaW5jbHVkZSA8d3Rm
L0Fzc2VydGlvbnMuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KQEAgLTU0LDcgKzUzLDYgQEAgc3RydWN0IFNhbWVTaXplQXNSZWZDb3VudGVkIHsK
IH07CiAjZW5kaWYKIAotc3RhdGljX2Fzc2VydChzaXplb2YoUGFzc1JlZlB0cjxSZWZDb3VudGVk
PGludD4+KSA9PSBzaXplb2YoaW50KiksICJQYXNzUmVmUHRyIHNob3VsZCBzdGF5IHNtYWxsISIp
Owogc3RhdGljX2Fzc2VydChzaXplb2YoUmVmQ291bnRlZDxpbnQ+KSA9PSBzaXplb2YoU2FtZVNp
emVBc1JlZkNvdW50ZWQpLCAiUmVmQ291bnRlZCBzaG91bGQgc3RheSBzbWFsbCEiKTsKIHN0YXRp
Y19hc3NlcnQoc2l6ZW9mKFJlZlB0cjxSZWZDb3VudGVkPGludD4+KSA9PSBzaXplb2YoaW50Kiks
ICJSZWZQdHIgc2hvdWxkIHN0YXkgc21hbGwhIik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL1ZlY3Rvci5oIGIvU291cmNlL1dURi93dGYvVmVjdG9yLmgKaW5kZXggZjEwNWQ0MTgwNDNh
NzEyYmE4OTIzZWQxMWFjYzU0ZTE4ZjE3ZTc3OC4uZjhkNDdmOTk1OGY2ODlmYTMwM2U4YzRlMTMz
MjU3MDRiOTc1YTIyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVmVjdG9yLmgKKysrIGIv
U291cmNlL1dURi93dGYvVmVjdG9yLmgKQEAgLTExODgsOSArMTE4OCw2IEBAIHZvaWQgVmVjdG9y
PFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5Pjo6c2hyaW5r
Q2FwYWNpdHkoc2l6CiAgICAgYXNhblNldEluaXRpYWxCdWZmZXJTaXplVG8oc2l6ZSgpKTsKIH0K
IAotLy8gVGVtcGxhdGl6aW5nIHRoZXNlIGlzIGJldHRlciB0aGFuIGp1c3QgbGV0dGluZyB0aGUg
Y29udmVyc2lvbiBoYXBwZW4gaW1wbGljaXRseSwKLS8vIGJlY2F1c2UgZm9yIGluc3RhbmNlIGl0
IGFsbG93cyBhIFBhc3NSZWZQdHIgdG8gYmUgYXBwZW5kZWQgdG8gYSBSZWZQdHIgdmVjdG9yCi0v
LyB3aXRob3V0IHJlZmNvdW50IHRocmFzaC4KIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBp
bmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5kbGVyLCBzaXplX3QgbWluQ2FwYWNp
dHk+IHRlbXBsYXRlPHR5cGVuYW1lIFU+CiB2b2lkIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwg
T3ZlcmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT46OmFwcGVuZChjb25zdCBVKiBkYXRhLCBzaXpl
X3QgZGF0YVNpemUpCiB7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggZWUwYTBlODVkYWVlZTZmMWFiOTcxZDlkYTNkOTU2YTJmNzlhZjhjYS4uNDdl
ODljMDRmY2NmNjQ2YmUxMTBkNmMwNTQxY2ExYjJlMTE2YTczMiAxMDA2NDQKLS0tIGEvVG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTA1
LTEzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBQYXNz
UmVmUHRyIGNsYXNzIGZyb20gV1RGCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzIwOTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBEcm9wIEFQSSB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvUmVmLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6cGFzc1dpdGhQYXNzUmVmUHRyKTogRGVsZXRlZC4K
KwogMjAxNy0wNS0xMyAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbTWVkaWFTdHJlYW1dIGRldmljZUlkIGNvbnN0cmFpbnQgZG9lc24ndCB3b3JrIHdp
dGggZ2V0VXNlck1lZGlhCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9SZWYuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmLmNwcAppbmRleCBj
MzU2MDZlMjM3NzY1OWZhMjEwZDA4ZTYwZTU3NDBkNmQyZGE4OTFiLi44N2U1Y2NhMDBiNzA5NTUy
MTAzYWZiNTE4Nzc1N2NjYTQ3ODQyOWZhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9SZWYuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1Jl
Zi5jcHAKQEAgLTEwMiwxMSArMTAyLDYgQEAgc3RhdGljIFJlZjxSZWZMb2dnZXI+IHBhc3NXaXRo
UmVmKFJlZjxSZWZMb2dnZXI+JiYgcmVmZXJlbmNlKQogICAgIHJldHVybiBXVEZNb3ZlKHJlZmVy
ZW5jZSk7CiB9CiAKLXN0YXRpYyBSZWZQdHI8UmVmTG9nZ2VyPiBwYXNzV2l0aFBhc3NSZWZQdHIo
UGFzc1JlZlB0cjxSZWZMb2dnZXI+IHJlZmVyZW5jZSkKLXsKLSAgICByZXR1cm4gcmVmZXJlbmNl
OwotfQotCiBURVNUKFdURl9SZWYsIFJldHVyblZhbHVlKQogewogICAgIERlcml2ZWRSZWZMb2dn
ZXIgYSgiYSIpOwpAQCAtMTM2LDEyICsxMzEsNiBAQCBURVNUKFdURl9SZWYsIFJldHVyblZhbHVl
KQogICAgIEFTU0VSVF9TVFJFUSgicmVmKGEpIGRlcmVmKGEpICIsIHRha2VMb2dTdHIoKS5jX3N0
cigpKTsKIAogICAgIHsKLSAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcHRyKHBhc3NXaXRoUGFz
c1JlZlB0cihwYXNzV2l0aFJlZihhKSkpOwotICAgICAgICBBU1NFUlRfRVEoJmEsIHB0ci5nZXQo
KSk7Ci0gICAgfQotICAgIEFTU0VSVF9TVFJFUSgicmVmKGEpIGRlcmVmKGEpICIsIHRha2VMb2dT
dHIoKS5jX3N0cigpKTsKLQotICAgIHsKICAgICAgICAgUmVmUHRyPERlcml2ZWRSZWZMb2dnZXI+
IHB0cigmYSk7CiAgICAgICAgIFJlZlB0cjxSZWZMb2dnZXI+IHB0cjIoV1RGTW92ZShwdHIpKTsK
ICAgICAgICAgQVNTRVJUX0VRKG51bGxwdHIsIHB0ci5nZXQoKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310068</attachid>
            <date>2017-05-13 23:13:32 -0700</date>
            <delta_ts>2017-05-13 23:19:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172091-20170513231331.patch</filename>
            <type>text/plain</type>
            <size>20334</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2ODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGZmNTZlMTFkYzE5OTUwZjFkODY5MDc3
ODNhNjQwZmVjZWMzNzJhYjUuLjBjNTkyZjZjM2I2N2YyZjVjZDhjOGU0ODU2MzY5ZTA0MWYzNTcz
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMjkgQEAKIDIwMTctMDUtMTMgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAorICAgICAgICBEcm9wIFBhc3NSZWZQdHIgY2xhc3MgZnJvbSBXVEYKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MjA5MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgUGFzc1Jl
ZlB0ciBjbGFzcyBmcm9tIFdURiBhcyBpdCBpcyBubyBsb25nZXIgdXNlZCBvciBuZWVkZWQuCisg
ICAgICAgIEFsc28gZHJvcCBSZWZQdHI6OnJlbGVhc2UoKSBmb3IgdGhlIHNhbWUgcmVhc29ucy4K
KworICAgICAgICAqIFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHd0
Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiB3dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwOgor
ICAgICAgICAqIHd0Zi9Dcm9zc1RocmVhZENvcGllci5oOgorICAgICAgICAqIHd0Zi9Gb3J3YXJk
Lmg6CisgICAgICAgICogd3RmL1Bhc3NSZWZQdHIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiB3dGYv
UmVmUHRyLmg6CisgICAgICAgIChXVEY6OnJlZklmTm90TnVsbCk6CisgICAgICAgIChXVEY6OmRl
cmVmSWZOb3ROdWxsKToKKyAgICAgICAgKFdURjo6UmVmUHRyOjpSZWZQdHIpOgorICAgICAgICAo
V1RGOjpSZWZQdHI6OnJlbGVhc2UpOiBEZWxldGVkLgorICAgICAgICAqIHd0Zi9TaXplTGltaXRz
LmNwcDoKKyAgICAgICAgKiB3dGYvVmVjdG9yLmg6CisKKzIwMTctMDUtMTMgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBTdG9wIHVzaW5nIFJlZlB0cjo6cmVsZWFz
ZSgpCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIw
NzQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjU2ZTE1
Y2JkZTlmNGM2YWZkOTdhOTk0NTRmZWExNTIyN2RiOGUwNC4uMDcwYTFhYTAzZTgwMThlMDVjNDg0
MTFjNDE0NjMwOTAxYWIzZWUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC00NDQsNyArNDQ0LDYgQEAKIAkJQThBNDcyRTUxNTFBODI1QjAwNDEyM0ZGIC8q
IFBhZ2VSZXNlcnZhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdl
UmVzZXJ2YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDcyRTYxNTFB
ODI1QjAwNDEyM0ZGIC8qIFBhcmFsbGVsSm9icy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQYXJhbGxlbEpvYnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThB
NDcyRTkxNTFBODI1QjAwNDEyM0ZGIC8qIFBhcmFsbGVsSm9ic0xpYmRpc3BhdGNoLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhcmFsbGVsSm9ic0xpYmRpc3BhdGNoLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QTQ3MkVEMTUxQTgyNUIwMDQxMjNGRiAvKiBQ
YXNzUmVmUHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3NSZWZQdHIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDcyRkIxNTFBODI1QjAwNDEyM0ZG
IC8qIFJhbmRvbU51bWJlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSYW5kb21OdW1iZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEE0NzJG
QzE1MUE4MjVCMDA0MTIzRkYgLyogUmFuZG9tTnVtYmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJhbmRvbU51bWJlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBOEE0NzJGRDE1MUE4MjVCMDA0MTIzRkYgLyogUmFuZG9tTnVtYmVyU2VlZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSYW5kb21OdW1iZXJTZWVkLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC04NzcsNyArODc2LDYgQEAKIAkJCQkwRkVCM0REMDFCQjczNjZC
MDA5RDdBQUQgLyogUGFyYWxsZWxWZWN0b3JJdGVyYXRvci5oICovLAogCQkJCTBGODI0QTY0MUI3
NDQzQTAwMDJFMzQ1RCAvKiBQYXJraW5nTG90LmNwcCAqLywKIAkJCQkwRjgyNEE2NTFCNzQ0M0Ew
MDAyRTM0NUQgLyogUGFya2luZ0xvdC5oICovLAotCQkJCUE4QTQ3MkVEMTUxQTgyNUIwMDQxMjNG
RiAvKiBQYXNzUmVmUHRyLmggKi8sCiAJCQkJQTg3NkRCRDcxNTE4MTZFNTAwREFEQjk1IC8qIFBs
YXRmb3JtLmggKi8sCiAJCQkJRTMyMDBBQjQxRTlBNTM2RDAwM0I1OUQyIC8qIFBsYXRmb3JtUmVn
aXN0ZXJzLmggKi8sCiAJCQkJRENFRTIxRkUxQ0VBNzU1MTAwMEMyMzk2IC8qIFBsYXRmb3JtVXNl
clByZWZlcnJlZExhbmd1YWdlcy5oICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCAyYjc2MTRm
NjRmZGQyODY2YTUwNzZmNzUzMzg3NGNiYzczZjI2MWNlLi45ZDAyZGIzM2NhZTNkZDAwMzZiYmI0
MGJlY2NjZDZkOThhMjM0OTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtOTUsNyArOTUsNiBA
QCBzZXQoV1RGX0hFQURFUlMKICAgICBQYXJhbGxlbEpvYnNPcGVuTVAuaAogICAgIFBhcmFsbGVs
VmVjdG9ySXRlcmF0b3IuaAogICAgIFBhcmtpbmdMb3QuaAotICAgIFBhc3NSZWZQdHIuaAogICAg
IFBsYXRmb3JtLmgKICAgICBQbGF0Zm9ybVJlZ2lzdGVycy5oCiAgICAgUHJpbnRTdHJlYW0uaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGIvU291cmNl
L1dURi93dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCmluZGV4IGU1OTI0OWY5ODkyNzJjZWRmYWMz
ZTM2OWE3ZWE2MmM2YTgxMWYyNDkuLjU0ZDE5M2U2MjBjZDY3NTBiMDViMmVmMzAzMmFlMTQ0Yzcz
ODhlMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkQ29waWVyLmNwcAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1RocmVhZENvcGllci5jcHAKQEAgLTQzLDE3ICs0Mywx
MiBAQCBjbGFzcyBDb3BpZXJUaHJlYWRTYWZlUmVmQ291bnRlZFRlc3QgOiBwdWJsaWMgVGhyZWFk
U2FmZVJlZkNvdW50ZWQ8Q29waWVyVGhyZWFkUwogfTsKIAogQ09NUElMRV9BU1NFUlQoKHN0ZDo6
aXNfc2FtZTwKLSAgICAgICAgICAgICAgICAgICAgUGFzc1JlZlB0cjxDb3BpZXJUaHJlYWRTYWZl
UmVmQ291bnRlZFRlc3Q+LAotICAgICAgICAgICAgICAgICAgICBDcm9zc1RocmVhZENvcGllcjxQ
YXNzUmVmUHRyPENvcGllclRocmVhZFNhZmVSZWZDb3VudGVkVGVzdD4+OjpUeXBlCi0gICAgICAg
ICAgICAgICAgPjo6dmFsdWUpLAotICAgICAgICAgICAgICAgIFBhc3NSZWZQdHJUZXN0KTsKLUNP
TVBJTEVfQVNTRVJUKChzdGQ6OmlzX3NhbWU8Ci0gICAgICAgICAgICAgICAgICAgIFBhc3NSZWZQ
dHI8Q29waWVyVGhyZWFkU2FmZVJlZkNvdW50ZWRUZXN0PiwKKyAgICAgICAgICAgICAgICAgICAg
UmVmUHRyPENvcGllclRocmVhZFNhZmVSZWZDb3VudGVkVGVzdD4mJiwKICAgICAgICAgICAgICAg
ICAgICAgQ3Jvc3NUaHJlYWRDb3BpZXI8UmVmUHRyPENvcGllclRocmVhZFNhZmVSZWZDb3VudGVk
VGVzdD4+OjpUeXBlCiAgICAgICAgICAgICAgICAgPjo6dmFsdWUpLAogICAgICAgICAgICAgICAg
IFJlZlB0clRlc3QpOwogQ09NUElMRV9BU1NFUlQoKHN0ZDo6aXNfc2FtZTwKLSAgICAgICAgICAg
ICAgICAgICAgUGFzc1JlZlB0cjxDb3BpZXJUaHJlYWRTYWZlUmVmQ291bnRlZFRlc3Q+LAorICAg
ICAgICAgICAgICAgICAgICBSZWZQdHI8Q29waWVyVGhyZWFkU2FmZVJlZkNvdW50ZWRUZXN0PiYm
LAogICAgICAgICAgICAgICAgICAgICBDcm9zc1RocmVhZENvcGllcjxDb3BpZXJUaHJlYWRTYWZl
UmVmQ291bnRlZFRlc3QqPjo6VHlwZQogICAgICAgICAgICAgICAgID46OnZhbHVlKSwKICAgICAg
ICAgICAgICAgICBSYXdQb2ludGVyVGVzdCk7CkBAIC02MywxMCArNTgsNiBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgUmVm
UHRyPFQ+PiB7CiAgICAgdHlwZWRlZiBpbnQgVHlwZTsKIH07CiAKLXRlbXBsYXRlPHR5cGVuYW1l
IFQ+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBQYXNzUmVmUHRy
PFQ+PiB7Ci0gICAgdHlwZWRlZiBpbnQgVHlwZTsKLX07Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBUKj4gewogICAgIHR5
cGVkZWYgaW50IFR5cGU7CiB9OwpAQCAtNzUsNyArNjYsNiBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgVCo+IHsKIGNsYXNz
IENvcGllclJlZkNvdW50ZWRUZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8Q29waWVyUmVmQ291bnRl
ZFRlc3Q+IHsKIH07CiAKLXN0YXRpY19hc3NlcnQoKHN0ZDo6aXNfc2FtZTxpbnQsIENyb3NzVGhy
ZWFkQ29waWVyPFBhc3NSZWZQdHI8Q29waWVyUmVmQ291bnRlZFRlc3Q+Pjo6VHlwZT46OnZhbHVl
KSwgIkNyb3NzVGhyZWFkQ29waWVyIHNwZWNpYWxpemF0aW9uIGltcHJvcGVybHkgYXBwbGllZCB0
byBQYXNzUmVmUHRyPD4gb2YgYSBSZWZDb3VudGVkIChidXQgbm90IFRocmVhZFNhZmVSZWZDb3Vu
dGVkKSB0eXBlIik7CiBzdGF0aWNfYXNzZXJ0KChzdGQ6OmlzX3NhbWU8aW50LCBDcm9zc1RocmVh
ZENvcGllcjxSZWZQdHI8Q29waWVyUmVmQ291bnRlZFRlc3Q+Pjo6VHlwZT46OnZhbHVlKSwgIkNy
b3NzVGhyZWFkQ29waWVyIHNwZWNpYWxpemF0aW9uIGltcHJvcGVybHkgYXBwbGllZCB0byBSZWZQ
dHI8PiBvZiBhIFJlZkNvdW50ZWQgKGJ1dCBub3QgVGhyZWFkU2FmZVJlZkNvdW50ZWQpIHR5cGUi
KTsKIHN0YXRpY19hc3NlcnQoKHN0ZDo6aXNfc2FtZTxpbnQsIENyb3NzVGhyZWFkQ29waWVyPENv
cGllclJlZkNvdW50ZWRUZXN0Kj46OlR5cGU+Ojp2YWx1ZSksICJDcm9zc1RocmVhZENvcGllciBz
cGVjaWFsaXphdGlvbiBpbXByb3Blcmx5IGFwcGxpZWQgdG8gcmF3IHBvaW50ZXIgb2YgYSBSZWZD
b3VudGVkIChidXQgbm90IFRocmVhZFNhZmVSZWZDb3VudGVkKSB0eXBlIik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkQ29waWVyLmggYi9Tb3VyY2UvV1RGL3d0Zi9D
cm9zc1RocmVhZENvcGllci5oCmluZGV4IGYwYzg2ZTU1MDVhMDA1NGQ1Yzc1NmVlODk0MmU3NDc2
YzI1MTEyMWYuLjNlYWI5MjBhYTU1YjMyY2JiODUwODI5MDcyMmIzZTE2YzUxMjNjNWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkQ29waWVyLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuaApAQCAtMzMsNyArMzMsNiBAQAogCiAjaW5jbHVkZSA8
d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9U
aHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTUyLDEwICs1
MSw2IEBAIHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2VIZWxwZXIgewogICAgICAgICB0eXBl
ZGVmIFQgVHlwZTsKICAgICB9OwogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IFJl
bW92ZVBvaW50ZXI8UGFzc1JlZlB0cjxUPj4gewotICAgICAgICB0eXBlZGVmIFQgVHlwZTsKLSAg
ICB9OwotCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IElzRW51bU9yQ29udmVydGli
bGVUb0ludGVnZXIgewogICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IHN0ZDo6aXNf
aW50ZWdyYWw8VD46OnZhbHVlIHx8IHN0ZDo6aXNfZW51bTxUPjo6dmFsdWUgfHwgc3RkOjppc19j
b252ZXJ0aWJsZTxULCBsb25nIGRvdWJsZT46OnZhbHVlOwogICAgIH07CkBAIC05Miw3ICs4Nyw3
IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFs
c2UsIHRydWUsIFQ+IHsKICAgICB0eXBlZGVmIHR5cGVuYW1lIENyb3NzVGhyZWFkQ29waWVyQmFz
ZUhlbHBlcjo6UmVtb3ZlUG9pbnRlcjxUPjo6VHlwZSBSZWZDb3VudGVkVHlwZTsKICAgICBzdGF0
aWNfYXNzZXJ0KHN0ZDo6aXNfY29udmVydGlibGU8UmVmQ291bnRlZFR5cGUqLCBUaHJlYWRTYWZl
UmVmQ291bnRlZDxSZWZDb3VudGVkVHlwZT4qPjo6dmFsdWUsICJUIGlzIG5vdCBjb252ZXJ0aWJs
ZSB0byBUaHJlYWRTYWZlUmVmQ291bnRlZCEiKTsKIAotICAgIHR5cGVkZWYgUGFzc1JlZlB0cjxS
ZWZDb3VudGVkVHlwZT4gVHlwZTsKKyAgICB0eXBlZGVmIFJlZlB0cjxSZWZDb3VudGVkVHlwZT4m
JiBUeXBlOwogICAgIHN0YXRpYyBUeXBlIGNvcHkoY29uc3QgVCYgcmVmUHRyKQogICAgIHsKICAg
ICAgICAgcmV0dXJuIHJlZlB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQu
aCBiL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaAppbmRleCBkNjhhOTQ3ZDQ5ODVjZjc3NDg1MDg0
MGYwYjEzN2E4Y2Q1NDdhZTc2Li42ZmJjYmVlYzcxMjAzYmRkMTZjMThhMjBjNjhhYzhlYTIwNTY2
MjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvRm9yd2FyZC5oCkBAIC0zMiw3ICszMiw2IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNs
YXNzIEZ1bmN0aW9uOwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgTGF6eU5ldmVyRGVzdHJv
eWVkOwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgTmV2ZXJEZXN0cm95ZWQ7CiB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBjbGFzcyBPcHRpb25TZXQ7Ci10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFz
cyBQYXNzUmVmUHRyOwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgUmVmOwogdGVtcGxhdGU8
dHlwZW5hbWUgVD4gY2xhc3MgUmVmUHRyOwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgU3Ry
aW5nQnVmZmVyOwpAQCAtNjUsNyArNjQsNiBAQCB1c2luZyBXVEY6OkxhenlOZXZlckRlc3Ryb3ll
ZDsKIHVzaW5nIFdURjo6TmV2ZXJEZXN0cm95ZWQ7CiB1c2luZyBXVEY6Ok9wdGlvblNldDsKIHVz
aW5nIFdURjo6T3JkaW5hbE51bWJlcjsKLXVzaW5nIFdURjo6UGFzc1JlZlB0cjsKIHVzaW5nIFdU
Rjo6UHJpbnRTdHJlYW07CiB1c2luZyBXVEY6OlJlZjsKIHVzaW5nIFdURjo6UmVmUHRyOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGFzc1JlZlB0ci5oIGIvU291cmNlL1dURi93dGYvUGFz
c1JlZlB0ci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwODkxOTJiMGJjMjc0ZDhm
YzBhNDgxY2JmYTg5Yjc2ZTExZjllNzczLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XVEYvd3RmL1Bhc3NSZWZQdHIuaAorKysgL2Rldi9udWxs
CkBAIC0xLDE2MiArMCwwIEBACi0vKgotICogIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAw
NywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0g
KiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiAgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KLSAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgot
ICoKLSAqLwotCi0jaWZuZGVmIFdURl9QYXNzUmVmUHRyX2gKLSNkZWZpbmUgV1RGX1Bhc3NSZWZQ
dHJfaAotCi0jaW5jbHVkZSA8d3RmL1JlZi5oPgotCi1uYW1lc3BhY2UgV1RGIHsKLQotICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFJlZlB0cjsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBjbGFzcyBQYXNzUmVmUHRyOwotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gQUxXQVlTX0lO
TElORSB2b2lkIHJlZklmTm90TnVsbChUKiBwdHIpCi0gICAgewotICAgICAgICBpZiAoTElLRUxZ
KHB0ciAhPSBudWxscHRyKSkKLSAgICAgICAgICAgIHB0ci0+cmVmKCk7Ci0gICAgfQotCi0gICAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4gQUxXQVlTX0lOTElORSB2b2lkIGRlcmVmSWZOb3ROdWxsKFQq
IHB0cikKLSAgICB7Ci0gICAgICAgIGlmIChMSUtFTFkocHRyICE9IG51bGxwdHIpKQotICAgICAg
ICAgICAgcHRyLT5kZXJlZigpOwotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNs
YXNzIFBhc3NSZWZQdHIgewotICAgIHB1YmxpYzoKLSAgICAgICAgdHlwZWRlZiBUIFZhbHVlVHlw
ZTsKLSAgICAgICAgdHlwZWRlZiBWYWx1ZVR5cGUqIFB0clR5cGU7Ci0KLSAgICAgICAgUGFzc1Jl
ZlB0cigpIDogbV9wdHIobnVsbHB0cikgeyB9Ci0gICAgICAgIFBhc3NSZWZQdHIoVCogcHRyKSA6
IG1fcHRyKHB0cikgeyByZWZJZk5vdE51bGwocHRyKTsgfQotICAgICAgICAvLyBJdCBzb21ld2hh
dCBicmVha3MgdGhlIHR5cGUgc3lzdGVtIHRvIGFsbG93IHRyYW5zZmVyIG9mIG93bmVyc2hpcCBv
dXQgb2YKLSAgICAgICAgLy8gYSBjb25zdCBQYXNzUmVmUHRyLiBIb3dldmVyLCBpdCBtYWtlcyBp
dCBtdWNoIGVhc2llciB0byB3b3JrIHdpdGggUGFzc1JlZlB0cgotICAgICAgICAvLyB0ZW1wb3Jh
cmllcywgYW5kIHdlIGRvbid0IGhhdmUgYSBuZWVkIHRvIHVzZSByZWFsIGNvbnN0IFBhc3NSZWZQ
dHJzIGFueXdheS4KLSAgICAgICAgUGFzc1JlZlB0cihjb25zdCBQYXNzUmVmUHRyJiBvKSA6IG1f
cHRyKG8ubGVha1JlZigpKSB7IH0KLSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gUGFzc1Jl
ZlB0cihjb25zdCBQYXNzUmVmUHRyPFU+JiBvKSA6IG1fcHRyKG8ubGVha1JlZigpKSB7IH0KLQot
ICAgICAgICBBTFdBWVNfSU5MSU5FIH5QYXNzUmVmUHRyKCkgeyBkZXJlZklmTm90TnVsbChzdGQ6
OmV4Y2hhbmdlKG1fcHRyLCBudWxscHRyKSk7IH0KLQotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBVPiBQYXNzUmVmUHRyKGNvbnN0IFJlZlB0cjxVPiYpOwotICAgICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBVPiBQYXNzUmVmUHRyKFJlZjxVPiYmIHJlZmVyZW5jZSkgOiBtX3B0cigmcmVmZXJlbmNl
LmxlYWtSZWYoKSkgeyB9Ci0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IFBhc3NSZWZQdHIo
UmVmUHRyPFU+JiYgcmVmZXJlbmNlKSA6IG1fcHRyKHJlZmVyZW5jZS5sZWFrUmVmKCkpIHsgfQot
Ci0gICAgICAgIFQqIGdldCgpIGNvbnN0IHsgcmV0dXJuIG1fcHRyOyB9Ci0KLSAgICAgICAgVCog
bGVha1JlZigpIGNvbnN0IFdBUk5fVU5VU0VEX1JFVFVSTjsKLQotICAgICAgICBUJiBvcGVyYXRv
ciooKSBjb25zdCB7IHJldHVybiAqbV9wdHI7IH0KLSAgICAgICAgVCogb3BlcmF0b3ItPigpIGNv
bnN0IHsgcmV0dXJuIG1fcHRyOyB9Ci0KLSAgICAgICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7
IHJldHVybiAhbV9wdHI7IH0KLQotICAgICAgICAvLyBUaGlzIGNvbnZlcnNpb24gb3BlcmF0b3Ig
YWxsb3dzIGltcGxpY2l0IGNvbnZlcnNpb24gdG8gYm9vbCBidXQgbm90IHRvIG90aGVyIGludGVn
ZXIgdHlwZXMuCi0gICAgICAgIHR5cGVkZWYgVCogKFBhc3NSZWZQdHI6OipVbnNwZWNpZmllZEJv
b2xUeXBlKTsKLSAgICAgICAgb3BlcmF0b3IgVW5zcGVjaWZpZWRCb29sVHlwZSgpIGNvbnN0IHsg
cmV0dXJuIG1fcHRyID8gJlBhc3NSZWZQdHI6Om1fcHRyIDogbnVsbHB0cjsgfQotCi0gICAgICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFYsIHR5cGVuYW1lIFU+IGZyaWVuZCBQYXNzUmVmUHRyPFY+IHN0
YXRpY19wb2ludGVyX2Nhc3QoY29uc3QgUGFzc1JlZlB0cjxVPiYpOwotCi0gICAgcHJpdmF0ZToK
LSAgICAgICAgUGFzc1JlZlB0ciYgb3BlcmF0b3I9KGNvbnN0IFBhc3NSZWZQdHImKSA9IGRlbGV0
ZTsKLQotICAgICAgICBlbnVtIEFkb3B0VGFnIHsgQWRvcHQgfTsKLSAgICAgICAgUGFzc1JlZlB0
cihUKiBwdHIsIEFkb3B0VGFnKSA6IG1fcHRyKHB0cikgeyB9Ci0KLSAgICAgICAgbXV0YWJsZSBU
KiBtX3B0cjsKLSAgICB9OwotICAgIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHRlbXBsYXRl
PHR5cGVuYW1lIFU+IGlubGluZSBQYXNzUmVmUHRyPFQ+OjpQYXNzUmVmUHRyKGNvbnN0IFJlZlB0
cjxVPiYgbykKLSAgICAgICAgOiBtX3B0cihvLmdldCgpKQotICAgIHsKLSAgICAgICAgVCogcHRy
ID0gbV9wdHI7Ci0gICAgICAgIHJlZklmTm90TnVsbChwdHIpOwotICAgIH0KLQotICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IGlubGluZSBUKiBQYXNzUmVmUHRyPFQ+OjpsZWFrUmVmKCkgY29uc3QK
LSAgICB7Ci0gICAgICAgIHJldHVybiBzdGQ6OmV4Y2hhbmdlKG1fcHRyLCBudWxscHRyKTsKLSAg
ICB9Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBv
cGVyYXRvcj09KGNvbnN0IFBhc3NSZWZQdHI8VD4mIGEsIGNvbnN0IFBhc3NSZWZQdHI8VT4mIGIp
IAotICAgIHsgCi0gICAgICAgIHJldHVybiBhLmdldCgpID09IGIuZ2V0KCk7IAotICAgIH0KLQot
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29sIG9wZXJhdG9y
PT0oY29uc3QgUGFzc1JlZlB0cjxUPiYgYSwgY29uc3QgUmVmUHRyPFU+JiBiKSAKLSAgICB7IAot
ICAgICAgICByZXR1cm4gYS5nZXQoKSA9PSBiLmdldCgpOyAKLSAgICB9Ci0KLSAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFJl
ZlB0cjxUPiYgYSwgY29uc3QgUGFzc1JlZlB0cjxVPiYgYikgCi0gICAgeyAKLSAgICAgICAgcmV0
dXJuIGEuZ2V0KCkgPT0gYi5nZXQoKTsgCi0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUg
VCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBQYXNzUmVmUHRyPFQ+
JiBhLCBVKiBiKSAKLSAgICB7IAotICAgICAgICByZXR1cm4gYS5nZXQoKSA9PSBiOyAKLSAgICB9
Ci0gICAgCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wg
b3BlcmF0b3I9PShUKiBhLCBjb25zdCBQYXNzUmVmUHRyPFU+JiBiKSAKLSAgICB7Ci0gICAgICAg
IHJldHVybiBhID09IGIuZ2V0KCk7IAotICAgIH0KLSAgICAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFBhc3NSZWZQdHI8
VD4mIGEsIGNvbnN0IFBhc3NSZWZQdHI8VT4mIGIpIAotICAgIHsgCi0gICAgICAgIHJldHVybiBh
LmdldCgpICE9IGIuZ2V0KCk7IAotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5
cGVuYW1lIFU+IGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgUGFzc1JlZlB0cjxUPiYgYSwg
Y29uc3QgUmVmUHRyPFU+JiBiKSAKLSAgICB7IAotICAgICAgICByZXR1cm4gYS5nZXQoKSAhPSBi
LmdldCgpOyAKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBp
bmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFJlZlB0cjxUPiYgYSwgY29uc3QgUGFzc1JlZlB0
cjxVPiYgYikgCi0gICAgeyAKLSAgICAgICAgcmV0dXJuIGEuZ2V0KCkgIT0gYi5nZXQoKTsgCi0g
ICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wg
b3BlcmF0b3IhPShjb25zdCBQYXNzUmVmUHRyPFQ+JiBhLCBVKiBiKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIGEuZ2V0KCkgIT0gYjsgCi0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwg
dHlwZW5hbWUgVT4gaW5saW5lIGJvb2wgb3BlcmF0b3IhPShUKiBhLCBjb25zdCBQYXNzUmVmUHRy
PFU+JiBiKSAKLSAgICB7IAotICAgICAgICByZXR1cm4gYSAhPSBiLmdldCgpOyAKLSAgICB9Ci0K
LSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWLCB0eXBlbmFtZSBVPiBpbmxpbmUgUGFzc1JlZlB0cjxW
PiBzdGF0aWNfcG9pbnRlcl9jYXN0KGNvbnN0IFBhc3NSZWZQdHI8VT4mIHApCi0gICAgewotICAg
ICAgICByZXR1cm4gUGFzc1JlZlB0cjxWPihzdGF0aWNfY2FzdDxWKj4ocC5sZWFrUmVmKCkpLCBQ
YXNzUmVmUHRyPFY+OjpBZG9wdCk7Ci0gICAgfQotCi0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
IHN0cnVjdCBJc1NtYXJ0UHRyPFBhc3NSZWZQdHI8VD4+IHsKLSAgICAgICAgc3RhdGljIGNvbnN0
IGJvb2wgdmFsdWUgPSB0cnVlOwotICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgotCi11c2lu
ZyBXVEY6OlBhc3NSZWZQdHI7Ci11c2luZyBXVEY6OnN0YXRpY19wb2ludGVyX2Nhc3Q7Ci0KLSNl
bmRpZiAvLyBXVEZfUGFzc1JlZlB0cl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SZWZQ
dHIuaCBiL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5oCmluZGV4IDI3N2U2NzVkYjNjNTU1ZDVlNGM2
Y2UwNDk0Njg4NzRkMzY3Njk1OWMuLjY5YjMxMGZhNTMwYWVhNTcxMTdlOTY0MzlhMjNlNmIzOTcw
OTEyODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1JlZlB0ci5oCkBAIC0xOCw3ICsxOCw3IEBACiAgKgogICovCiAKLS8vIFJlZlB0ciBh
bmQgUGFzc1JlZlB0ciBhcmUgZG9jdW1lbnRlZCBhdCBodHRwOi8vd2Via2l0Lm9yZy9jb2Rpbmcv
UmVmUHRyLmh0bWwKKy8vIFJlZlB0ciBpcyBkb2N1bWVudGVkIGF0IGh0dHA6Ly93ZWJraXQub3Jn
L2NvZGluZy9SZWZQdHIuaHRtbAogCiAjaWZuZGVmIFdURl9SZWZQdHJfaAogI2RlZmluZSBXVEZf
UmVmUHRyX2gKQEAgLTI3LDEzICsyNywyNSBAQAogI2luY2x1ZGUgPHV0aWxpdHk+CiAjaW5jbHVk
ZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+Ci0jaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKIG5hbWVzcGFjZSBXVEYg
ewogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBSZWZQdHI7CiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBSZWZQdHI8VD4gYWRvcHRSZWYoVCopOwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBBTFdB
WVNfSU5MSU5FIHZvaWQgcmVmSWZOb3ROdWxsKFQqIHB0cikKK3sKKyAgICBpZiAoTElLRUxZKHB0
ciAhPSBudWxscHRyKSkKKyAgICAgICAgcHRyLT5yZWYoKTsKK30KKwordGVtcGxhdGU8dHlwZW5h
bWUgVD4gQUxXQVlTX0lOTElORSB2b2lkIGRlcmVmSWZOb3ROdWxsKFQqIHB0cikKK3sKKyAgICBp
ZiAoTElLRUxZKHB0ciAhPSBudWxscHRyKSkKKyAgICAgICAgcHRyLT5kZXJlZigpOworfQorCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBSZWZQdHIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgpAQCAtNDksMTAgKzYxLDYgQEAgcHVibGljOgogCiAgICAgQUxXQVlT
X0lOTElORSBSZWZQdHIoUmVmUHRyJiYgbykgOiBtX3B0cihvLmxlYWtSZWYoKSkgeyB9CiAgICAg
dGVtcGxhdGU8dHlwZW5hbWUgVT4gUmVmUHRyKFJlZlB0cjxVPiYmIG8pIDogbV9wdHIoby5sZWFr
UmVmKCkpIHsgfQotCi0gICAgLy8gU2VlIGNvbW1lbnRzIGluIFBhc3NSZWZQdHIuaCBmb3IgYW4g
ZXhwbGFuYXRpb24gb2Ygd2h5IHRoaXMgdGFrZXMgYSBjb25zdCByZWZlcmVuY2UuCi0gICAgdGVt
cGxhdGU8dHlwZW5hbWUgVT4gUmVmUHRyKGNvbnN0IFBhc3NSZWZQdHI8VT4mKTsKLQogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFU+IFJlZlB0cihSZWY8VT4mJik7CiAKICAgICAvLyBIYXNoIHRhYmxl
IGRlbGV0ZWQgdmFsdWVzLCB3aGljaCBhcmUgb25seSBjb25zdHJ1Y3RlZCBhbmQgbmV2ZXIgY29w
aWVkIG9yIGRlc3Ryb3llZC4KQEAgLTYzLDggKzcxLDYgQEAgcHVibGljOgogCiAgICAgVCogZ2V0
KCkgY29uc3QgeyByZXR1cm4gbV9wdHI7IH0KIAotICAgIC8vIEZJWE1FOiBSZW1vdmUgcmVsZWFz
ZSgpIGFuZCBjaGFuZ2UgYWxsIGNhbGwgc2l0ZXMgdG8gY2FsbCBXVEZNb3ZlKCkuCi0gICAgUmVm
UHRyPFQ+IHJlbGVhc2UoKSB7IFJlZlB0cjxUPiB0bXAgPSBhZG9wdFJlZihtX3B0cik7IG1fcHRy
ID0gbnVsbHB0cjsgcmV0dXJuIHRtcDsgfQogICAgIFJlZjxUPiByZWxlYXNlTm9uTnVsbCgpIHsg
QVNTRVJUKG1fcHRyKTsgUmVmPFQ+IHRtcChhZG9wdFJlZigqbV9wdHIpKTsgbV9wdHIgPSBudWxs
cHRyOyByZXR1cm4gdG1wOyB9CiAgICAgUmVmPGNvbnN0IFQ+IHJlbGVhc2VDb25zdE5vbk51bGwo
KSB7IEFTU0VSVChtX3B0cik7IFJlZjxjb25zdCBUPiB0bXAoYWRvcHRSZWYoKm1fcHRyKSk7IG1f
cHRyID0gbnVsbHB0cjsgcmV0dXJuIHRtcDsgfQogCkBAIC04Miw5ICs4OCw3IEBAIHB1YmxpYzoK
ICAgICBSZWZQdHImIG9wZXJhdG9yPShjb25zdCBSZWZQdHImKTsKICAgICBSZWZQdHImIG9wZXJh
dG9yPShUKik7CiAgICAgUmVmUHRyJiBvcGVyYXRvcj0oc3RkOjpudWxscHRyX3QpOwotICAgIFJl
ZlB0ciYgb3BlcmF0b3I9KGNvbnN0IFBhc3NSZWZQdHI8VD4mKTsKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBVPiBSZWZQdHImIG9wZXJhdG9yPShjb25zdCBSZWZQdHI8VT4mKTsKLSAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBVPiBSZWZQdHImIG9wZXJhdG9yPShjb25zdCBQYXNzUmVmUHRyPFU+Jik7CiAg
ICAgUmVmUHRyJiBvcGVyYXRvcj0oUmVmUHRyJiYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+
IFJlZlB0ciYgb3BlcmF0b3I9KFJlZlB0cjxVPiYmKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBV
PiBSZWZQdHImIG9wZXJhdG9yPShSZWY8VT4mJik7CkBAIC0xMDksMTEgKzExMyw2IEBAIHByaXZh
dGU6CiAgICAgVCogbV9wdHI7CiB9OwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiB0ZW1wbGF0ZTx0
eXBlbmFtZSBVPiBpbmxpbmUgUmVmUHRyPFQ+OjpSZWZQdHIoY29uc3QgUGFzc1JlZlB0cjxVPiYg
bykKLSAgICA6IG1fcHRyKG8ubGVha1JlZigpKQotewotfQotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBpbmxpbmUgUmVmUHRyPFQ+OjpSZWZQdHIoUmVmPFU+JiYg
cmVmZXJlbmNlKQogICAgIDogbV9wdHIoJnJlZmVyZW5jZS5sZWFrUmVmKCkpCiB7CkBAIC0xNTIs
MjAgKzE1MSw2IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBSZWZQdHI8VD4mIFJlZlB0
cjxUPjo6b3BlcmF0b3I9KHN0ZDo6bnVsbHB0cl90KQogICAgIHJldHVybiAqdGhpczsKIH0KIAot
dGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIFJlZlB0cjxUPiYgUmVmUHRyPFQ+OjpvcGVyYXRv
cj0oY29uc3QgUGFzc1JlZlB0cjxUPiYgbykKLXsKLSAgICBSZWZQdHIgcHRyID0gbzsKLSAgICBz
d2FwKHB0cik7Ci0gICAgcmV0dXJuICp0aGlzOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiB0
ZW1wbGF0ZTx0eXBlbmFtZSBVPiBpbmxpbmUgUmVmUHRyPFQ+JiBSZWZQdHI8VD46Om9wZXJhdG9y
PShjb25zdCBQYXNzUmVmUHRyPFU+JiBvKQotewotICAgIFJlZlB0ciBwdHIgPSBvOwotICAgIHN3
YXAocHRyKTsKLSAgICByZXR1cm4gKnRoaXM7Ci19Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlu
bGluZSBSZWZQdHI8VD4mIFJlZlB0cjxUPjo6b3BlcmF0b3I9KFJlZlB0ciYmIG8pCiB7CiAgICAg
UmVmUHRyIHB0ciA9IFdURk1vdmUobyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9TaXpl
TGltaXRzLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1NpemVMaW1pdHMuY3BwCmluZGV4IGE4MmQwYzQ4
YmM5MTRhZWU3MmU3YWZhZjU0OTVlNjE1ZDA3MmIzZTUuLjNjYzZmZDdjNmE3YjhhM2U1MDY1ZjBi
Yzc4YTEzZmYyMzQwZDI0NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1NpemVMaW1pdHMu
Y3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1NpemVMaW1pdHMuY3BwCkBAIC0zMyw3ICszMyw2IEBA
CiAjaW5jbHVkZSA8dHlwZV90cmFpdHM+CiAjaW5jbHVkZSA8dXRpbGl0eT4KICNpbmNsdWRlIDx3
dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgpAQCAtNTQsNyArNTMsNiBAQCBzdHJ1Y3QgU2FtZVNpemVBc1JlZkNvdW50ZWQg
ewogfTsKICNlbmRpZgogCi1zdGF0aWNfYXNzZXJ0KHNpemVvZihQYXNzUmVmUHRyPFJlZkNvdW50
ZWQ8aW50Pj4pID09IHNpemVvZihpbnQqKSwgIlBhc3NSZWZQdHIgc2hvdWxkIHN0YXkgc21hbGwh
Iik7CiBzdGF0aWNfYXNzZXJ0KHNpemVvZihSZWZDb3VudGVkPGludD4pID09IHNpemVvZihTYW1l
U2l6ZUFzUmVmQ291bnRlZCksICJSZWZDb3VudGVkIHNob3VsZCBzdGF5IHNtYWxsISIpOwogc3Rh
dGljX2Fzc2VydChzaXplb2YoUmVmUHRyPFJlZkNvdW50ZWQ8aW50Pj4pID09IHNpemVvZihpbnQq
KSwgIlJlZlB0ciBzaG91bGQgc3RheSBzbWFsbCEiKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvVmVjdG9yLmggYi9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaAppbmRleCBmMTA1ZDQxODA0
M2E3MTJiYTg5MjNlZDExYWNjNTRlMThmMTdlNzc4Li5mOGQ0N2Y5OTU4ZjY4OWZhMzAzZThjNGUx
MzMyNTcwNGI5NzVhMjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaApAQCAtMTE4OCw5ICsxMTg4LDYgQEAgdm9pZCBWZWN0
b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+OjpzaHJp
bmtDYXBhY2l0eShzaXoKICAgICBhc2FuU2V0SW5pdGlhbEJ1ZmZlclNpemVUbyhzaXplKCkpOwog
fQogCi0vLyBUZW1wbGF0aXppbmcgdGhlc2UgaXMgYmV0dGVyIHRoYW4ganVzdCBsZXR0aW5nIHRo
ZSBjb252ZXJzaW9uIGhhcHBlbiBpbXBsaWNpdGx5LAotLy8gYmVjYXVzZSBmb3IgaW5zdGFuY2Ug
aXQgYWxsb3dzIGEgUGFzc1JlZlB0ciB0byBiZSBhcHBlbmRlZCB0byBhIFJlZlB0ciB2ZWN0b3IK
LS8vIHdpdGhvdXQgcmVmY291bnQgdGhyYXNoLgogdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90
IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW5DYXBh
Y2l0eT4gdGVtcGxhdGU8dHlwZW5hbWUgVT4KIHZvaWQgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5
LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5Pjo6YXBwZW5kKGNvbnN0IFUqIGRhdGEsIHNp
emVfdCBkYXRhU2l6ZSkKIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCBlZTBhMGU4NWRhZWVlNmYxYWI5NzFkOWRhM2Q5NTZhMmY3OWFmOGNhLi40
N2U4OWMwNGZjY2Y2NDZiZTExMGQ2YzA1NDFjYTFiMmUxMTZhNzMyIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTct
MDUtMTMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIFBh
c3NSZWZQdHIgY2xhc3MgZnJvbSBXVEYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3MjA5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIERyb3AgQVBJIHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWYuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpwYXNzV2l0aFBhc3NSZWZQdHIpOiBEZWxldGVk
LgorCiAyMDE3LTA1LTEzICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgog
CiAgICAgICAgIFtNZWRpYVN0cmVhbV0gZGV2aWNlSWQgY29uc3RyYWludCBkb2Vzbid0IHdvcmsg
d2l0aCBnZXRVc2VyTWVkaWEKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1JlZi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWYuY3BwCmluZGV4
IGMzNTYwNmUyMzc3NjU5ZmEyMTBkMDhlNjBlNTc0MGQ2ZDJkYTg5MWIuLjg3ZTVjY2EwMGI3MDk1
NTIxMDNhZmI1MTg3NzU3Y2NhNDc4NDI5ZmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1JlZi5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
UmVmLmNwcApAQCAtMTAyLDExICsxMDIsNiBAQCBzdGF0aWMgUmVmPFJlZkxvZ2dlcj4gcGFzc1dp
dGhSZWYoUmVmPFJlZkxvZ2dlcj4mJiByZWZlcmVuY2UpCiAgICAgcmV0dXJuIFdURk1vdmUocmVm
ZXJlbmNlKTsKIH0KIAotc3RhdGljIFJlZlB0cjxSZWZMb2dnZXI+IHBhc3NXaXRoUGFzc1JlZlB0
cihQYXNzUmVmUHRyPFJlZkxvZ2dlcj4gcmVmZXJlbmNlKQotewotICAgIHJldHVybiByZWZlcmVu
Y2U7Ci19Ci0KIFRFU1QoV1RGX1JlZiwgUmV0dXJuVmFsdWUpCiB7CiAgICAgRGVyaXZlZFJlZkxv
Z2dlciBhKCJhIik7CkBAIC0xMzYsMTIgKzEzMSw2IEBAIFRFU1QoV1RGX1JlZiwgUmV0dXJuVmFs
dWUpCiAgICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNf
c3RyKCkpOwogCiAgICAgewotICAgICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwdHIocGFzc1dpdGhQ
YXNzUmVmUHRyKHBhc3NXaXRoUmVmKGEpKSk7Ci0gICAgICAgIEFTU0VSVF9FUSgmYSwgcHRyLmdl
dCgpKTsKLSAgICB9Ci0gICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxv
Z1N0cigpLmNfc3RyKCkpOwotCi0gICAgewogICAgICAgICBSZWZQdHI8RGVyaXZlZFJlZkxvZ2dl
cj4gcHRyKCZhKTsKICAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcHRyMihXVEZNb3ZlKHB0cikp
OwogICAgICAgICBBU1NFUlRfRVEobnVsbHB0ciwgcHRyLmdldCgpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310070</attachid>
            <date>2017-05-13 23:19:56 -0700</date>
            <delta_ts>2017-05-14 00:31:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172091-20170513231955.patch</filename>
            <type>text/plain</type>
            <size>20328</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2ODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGZmNTZlMTFkYzE5OTUwZjFkODY5MDc3
ODNhNjQwZmVjZWMzNzJhYjUuLjBjNTkyZjZjM2I2N2YyZjVjZDhjOGU0ODU2MzY5ZTA0MWYzNTcz
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMjkgQEAKIDIwMTctMDUtMTMgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAorICAgICAgICBEcm9wIFBhc3NSZWZQdHIgY2xhc3MgZnJvbSBXVEYKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MjA5MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgUGFzc1Jl
ZlB0ciBjbGFzcyBmcm9tIFdURiBhcyBpdCBpcyBubyBsb25nZXIgdXNlZCBvciBuZWVkZWQuCisg
ICAgICAgIEFsc28gZHJvcCBSZWZQdHI6OnJlbGVhc2UoKSBmb3IgdGhlIHNhbWUgcmVhc29ucy4K
KworICAgICAgICAqIFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHd0
Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiB3dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwOgor
ICAgICAgICAqIHd0Zi9Dcm9zc1RocmVhZENvcGllci5oOgorICAgICAgICAqIHd0Zi9Gb3J3YXJk
Lmg6CisgICAgICAgICogd3RmL1Bhc3NSZWZQdHIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiB3dGYv
UmVmUHRyLmg6CisgICAgICAgIChXVEY6OnJlZklmTm90TnVsbCk6CisgICAgICAgIChXVEY6OmRl
cmVmSWZOb3ROdWxsKToKKyAgICAgICAgKFdURjo6UmVmUHRyOjpSZWZQdHIpOgorICAgICAgICAo
V1RGOjpSZWZQdHI6OnJlbGVhc2UpOiBEZWxldGVkLgorICAgICAgICAqIHd0Zi9TaXplTGltaXRz
LmNwcDoKKyAgICAgICAgKiB3dGYvVmVjdG9yLmg6CisKKzIwMTctMDUtMTMgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBTdG9wIHVzaW5nIFJlZlB0cjo6cmVsZWFz
ZSgpCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIw
NzQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjU2ZTE1
Y2JkZTlmNGM2YWZkOTdhOTk0NTRmZWExNTIyN2RiOGUwNC4uMDcwYTFhYTAzZTgwMThlMDVjNDg0
MTFjNDE0NjMwOTAxYWIzZWUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC00NDQsNyArNDQ0LDYgQEAKIAkJQThBNDcyRTUxNTFBODI1QjAwNDEyM0ZGIC8q
IFBhZ2VSZXNlcnZhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdl
UmVzZXJ2YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDcyRTYxNTFB
ODI1QjAwNDEyM0ZGIC8qIFBhcmFsbGVsSm9icy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQYXJhbGxlbEpvYnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThB
NDcyRTkxNTFBODI1QjAwNDEyM0ZGIC8qIFBhcmFsbGVsSm9ic0xpYmRpc3BhdGNoLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhcmFsbGVsSm9ic0xpYmRpc3BhdGNoLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4QTQ3MkVEMTUxQTgyNUIwMDQxMjNGRiAvKiBQ
YXNzUmVmUHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3NSZWZQdHIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDcyRkIxNTFBODI1QjAwNDEyM0ZG
IC8qIFJhbmRvbU51bWJlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSYW5kb21OdW1iZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEE0NzJG
QzE1MUE4MjVCMDA0MTIzRkYgLyogUmFuZG9tTnVtYmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJhbmRvbU51bWJlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBOEE0NzJGRDE1MUE4MjVCMDA0MTIzRkYgLyogUmFuZG9tTnVtYmVyU2VlZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSYW5kb21OdW1iZXJTZWVkLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC04NzcsNyArODc2LDYgQEAKIAkJCQkwRkVCM0REMDFCQjczNjZC
MDA5RDdBQUQgLyogUGFyYWxsZWxWZWN0b3JJdGVyYXRvci5oICovLAogCQkJCTBGODI0QTY0MUI3
NDQzQTAwMDJFMzQ1RCAvKiBQYXJraW5nTG90LmNwcCAqLywKIAkJCQkwRjgyNEE2NTFCNzQ0M0Ew
MDAyRTM0NUQgLyogUGFya2luZ0xvdC5oICovLAotCQkJCUE4QTQ3MkVEMTUxQTgyNUIwMDQxMjNG
RiAvKiBQYXNzUmVmUHRyLmggKi8sCiAJCQkJQTg3NkRCRDcxNTE4MTZFNTAwREFEQjk1IC8qIFBs
YXRmb3JtLmggKi8sCiAJCQkJRTMyMDBBQjQxRTlBNTM2RDAwM0I1OUQyIC8qIFBsYXRmb3JtUmVn
aXN0ZXJzLmggKi8sCiAJCQkJRENFRTIxRkUxQ0VBNzU1MTAwMEMyMzk2IC8qIFBsYXRmb3JtVXNl
clByZWZlcnJlZExhbmd1YWdlcy5oICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCAyYjc2MTRm
NjRmZGQyODY2YTUwNzZmNzUzMzg3NGNiYzczZjI2MWNlLi45ZDAyZGIzM2NhZTNkZDAwMzZiYmI0
MGJlY2NjZDZkOThhMjM0OTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtOTUsNyArOTUsNiBA
QCBzZXQoV1RGX0hFQURFUlMKICAgICBQYXJhbGxlbEpvYnNPcGVuTVAuaAogICAgIFBhcmFsbGVs
VmVjdG9ySXRlcmF0b3IuaAogICAgIFBhcmtpbmdMb3QuaAotICAgIFBhc3NSZWZQdHIuaAogICAg
IFBsYXRmb3JtLmgKICAgICBQbGF0Zm9ybVJlZ2lzdGVycy5oCiAgICAgUHJpbnRTdHJlYW0uaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGIvU291cmNl
L1dURi93dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCmluZGV4IGU1OTI0OWY5ODkyNzJjZWRmYWMz
ZTM2OWE3ZWE2MmM2YTgxMWYyNDkuLmZkMjcyYmNhNDQ1YjRjYzgwMTA4ZWQxNzExMjMxYmRlYmRi
ZDA1NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkQ29waWVyLmNwcAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1RocmVhZENvcGllci5jcHAKQEAgLTQzLDE3ICs0Mywx
MiBAQCBjbGFzcyBDb3BpZXJUaHJlYWRTYWZlUmVmQ291bnRlZFRlc3QgOiBwdWJsaWMgVGhyZWFk
U2FmZVJlZkNvdW50ZWQ8Q29waWVyVGhyZWFkUwogfTsKIAogQ09NUElMRV9BU1NFUlQoKHN0ZDo6
aXNfc2FtZTwKLSAgICAgICAgICAgICAgICAgICAgUGFzc1JlZlB0cjxDb3BpZXJUaHJlYWRTYWZl
UmVmQ291bnRlZFRlc3Q+LAotICAgICAgICAgICAgICAgICAgICBDcm9zc1RocmVhZENvcGllcjxQ
YXNzUmVmUHRyPENvcGllclRocmVhZFNhZmVSZWZDb3VudGVkVGVzdD4+OjpUeXBlCi0gICAgICAg
ICAgICAgICAgPjo6dmFsdWUpLAotICAgICAgICAgICAgICAgIFBhc3NSZWZQdHJUZXN0KTsKLUNP
TVBJTEVfQVNTRVJUKChzdGQ6OmlzX3NhbWU8Ci0gICAgICAgICAgICAgICAgICAgIFBhc3NSZWZQ
dHI8Q29waWVyVGhyZWFkU2FmZVJlZkNvdW50ZWRUZXN0PiwKKyAgICAgICAgICAgICAgICAgICAg
UmVmUHRyPENvcGllclRocmVhZFNhZmVSZWZDb3VudGVkVGVzdD4sCiAgICAgICAgICAgICAgICAg
ICAgIENyb3NzVGhyZWFkQ29waWVyPFJlZlB0cjxDb3BpZXJUaHJlYWRTYWZlUmVmQ291bnRlZFRl
c3Q+Pjo6VHlwZQogICAgICAgICAgICAgICAgID46OnZhbHVlKSwKICAgICAgICAgICAgICAgICBS
ZWZQdHJUZXN0KTsKIENPTVBJTEVfQVNTRVJUKChzdGQ6OmlzX3NhbWU8Ci0gICAgICAgICAgICAg
ICAgICAgIFBhc3NSZWZQdHI8Q29waWVyVGhyZWFkU2FmZVJlZkNvdW50ZWRUZXN0PiwKKyAgICAg
ICAgICAgICAgICAgICAgUmVmUHRyPENvcGllclRocmVhZFNhZmVSZWZDb3VudGVkVGVzdD4sCiAg
ICAgICAgICAgICAgICAgICAgIENyb3NzVGhyZWFkQ29waWVyPENvcGllclRocmVhZFNhZmVSZWZD
b3VudGVkVGVzdCo+OjpUeXBlCiAgICAgICAgICAgICAgICAgPjo6dmFsdWUpLAogICAgICAgICAg
ICAgICAgIFJhd1BvaW50ZXJUZXN0KTsKQEAgLTYzLDEwICs1OCw2IEBAIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBSZWZQdHI8
VD4+IHsKICAgICB0eXBlZGVmIGludCBUeXBlOwogfTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4g
c3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFBhc3NSZWZQdHI8VD4+
IHsKLSAgICB0eXBlZGVmIGludCBUeXBlOwotfTsKLQogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3Ry
dWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFQqPiB7CiAgICAgdHlwZWRl
ZiBpbnQgVHlwZTsKIH07CkBAIC03NSw3ICs2Niw2IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0
cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBUKj4gewogY2xhc3MgQ29w
aWVyUmVmQ291bnRlZFRlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxDb3BpZXJSZWZDb3VudGVkVGVz
dD4gewogfTsKIAotc3RhdGljX2Fzc2VydCgoc3RkOjppc19zYW1lPGludCwgQ3Jvc3NUaHJlYWRD
b3BpZXI8UGFzc1JlZlB0cjxDb3BpZXJSZWZDb3VudGVkVGVzdD4+OjpUeXBlPjo6dmFsdWUpLCAi
Q3Jvc3NUaHJlYWRDb3BpZXIgc3BlY2lhbGl6YXRpb24gaW1wcm9wZXJseSBhcHBsaWVkIHRvIFBh
c3NSZWZQdHI8PiBvZiBhIFJlZkNvdW50ZWQgKGJ1dCBub3QgVGhyZWFkU2FmZVJlZkNvdW50ZWQp
IHR5cGUiKTsKIHN0YXRpY19hc3NlcnQoKHN0ZDo6aXNfc2FtZTxpbnQsIENyb3NzVGhyZWFkQ29w
aWVyPFJlZlB0cjxDb3BpZXJSZWZDb3VudGVkVGVzdD4+OjpUeXBlPjo6dmFsdWUpLCAiQ3Jvc3NU
aHJlYWRDb3BpZXIgc3BlY2lhbGl6YXRpb24gaW1wcm9wZXJseSBhcHBsaWVkIHRvIFJlZlB0cjw+
IG9mIGEgUmVmQ291bnRlZCAoYnV0IG5vdCBUaHJlYWRTYWZlUmVmQ291bnRlZCkgdHlwZSIpOwog
c3RhdGljX2Fzc2VydCgoc3RkOjppc19zYW1lPGludCwgQ3Jvc3NUaHJlYWRDb3BpZXI8Q29waWVy
UmVmQ291bnRlZFRlc3QqPjo6VHlwZT46OnZhbHVlKSwgIkNyb3NzVGhyZWFkQ29waWVyIHNwZWNp
YWxpemF0aW9uIGltcHJvcGVybHkgYXBwbGllZCB0byByYXcgcG9pbnRlciBvZiBhIFJlZkNvdW50
ZWQgKGJ1dCBub3QgVGhyZWFkU2FmZVJlZkNvdW50ZWQpIHR5cGUiKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuaCBiL1NvdXJjZS9XVEYvd3RmL0Nyb3Nz
VGhyZWFkQ29waWVyLmgKaW5kZXggZjBjODZlNTUwNWEwMDU0ZDVjNzU2ZWU4OTQyZTc0NzZjMjUx
MTIxZi4uZjhlNzQyZmIxMDlmOWE0NjkzOWVmMTA5OTUwODY4MmM4MzgzMWRjMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9Dcm9zc1RocmVhZENvcGllci5oCkBAIC0zMyw3ICszMyw2IEBACiAKICNpbmNsdWRlIDx3dGYv
QXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVh
ZGluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNTIsMTAgKzUxLDYg
QEAgc3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZUhlbHBlciB7CiAgICAgICAgIHR5cGVkZWYg
VCBUeXBlOwogICAgIH07CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgUmVtb3Zl
UG9pbnRlcjxQYXNzUmVmUHRyPFQ+PiB7Ci0gICAgICAgIHR5cGVkZWYgVCBUeXBlOwotICAgIH07
Ci0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgSXNFbnVtT3JDb252ZXJ0aWJsZVRv
SW50ZWdlciB7CiAgICAgICAgIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gc3RkOjppc19pbnRl
Z3JhbDxUPjo6dmFsdWUgfHwgc3RkOjppc19lbnVtPFQ+Ojp2YWx1ZSB8fCBzdGQ6OmlzX2NvbnZl
cnRpYmxlPFQsIGxvbmcgZG91YmxlPjo6dmFsdWU7CiAgICAgfTsKQEAgLTkyLDcgKzg3LDcgQEAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwg
dHJ1ZSwgVD4gewogICAgIHR5cGVkZWYgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlSGVs
cGVyOjpSZW1vdmVQb2ludGVyPFQ+OjpUeXBlIFJlZkNvdW50ZWRUeXBlOwogICAgIHN0YXRpY19h
c3NlcnQoc3RkOjppc19jb252ZXJ0aWJsZTxSZWZDb3VudGVkVHlwZSosIFRocmVhZFNhZmVSZWZD
b3VudGVkPFJlZkNvdW50ZWRUeXBlPio+Ojp2YWx1ZSwgIlQgaXMgbm90IGNvbnZlcnRpYmxlIHRv
IFRocmVhZFNhZmVSZWZDb3VudGVkISIpOwogCi0gICAgdHlwZWRlZiBQYXNzUmVmUHRyPFJlZkNv
dW50ZWRUeXBlPiBUeXBlOworICAgIHR5cGVkZWYgUmVmUHRyPFJlZkNvdW50ZWRUeXBlPiBUeXBl
OwogICAgIHN0YXRpYyBUeXBlIGNvcHkoY29uc3QgVCYgcmVmUHRyKQogICAgIHsKICAgICAgICAg
cmV0dXJuIHJlZlB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaCBiL1Nv
dXJjZS9XVEYvd3RmL0ZvcndhcmQuaAppbmRleCBkNjhhOTQ3ZDQ5ODVjZjc3NDg1MDg0MGYwYjEz
N2E4Y2Q1NDdhZTc2Li42ZmJjYmVlYzcxMjAzYmRkMTZjMThhMjBjNjhhYzhlYTIwNTY2MjVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmgKKysrIGIvU291cmNlL1dURi93dGYv
Rm9yd2FyZC5oCkBAIC0zMiw3ICszMiw2IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIEZ1
bmN0aW9uOwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgTGF6eU5ldmVyRGVzdHJveWVkOwog
dGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgTmV2ZXJEZXN0cm95ZWQ7CiB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiBjbGFzcyBPcHRpb25TZXQ7Ci10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBQYXNz
UmVmUHRyOwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgUmVmOwogdGVtcGxhdGU8dHlwZW5h
bWUgVD4gY2xhc3MgUmVmUHRyOwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgU3RyaW5nQnVm
ZmVyOwpAQCAtNjUsNyArNjQsNiBAQCB1c2luZyBXVEY6OkxhenlOZXZlckRlc3Ryb3llZDsKIHVz
aW5nIFdURjo6TmV2ZXJEZXN0cm95ZWQ7CiB1c2luZyBXVEY6Ok9wdGlvblNldDsKIHVzaW5nIFdU
Rjo6T3JkaW5hbE51bWJlcjsKLXVzaW5nIFdURjo6UGFzc1JlZlB0cjsKIHVzaW5nIFdURjo6UHJp
bnRTdHJlYW07CiB1c2luZyBXVEY6OlJlZjsKIHVzaW5nIFdURjo6UmVmUHRyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvUGFzc1JlZlB0ci5oIGIvU291cmNlL1dURi93dGYvUGFzc1JlZlB0
ci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwODkxOTJiMGJjMjc0ZDhmYzBhNDgx
Y2JmYTg5Yjc2ZTExZjllNzczLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XVEYvd3RmL1Bhc3NSZWZQdHIuaAorKysgL2Rldi9udWxsCkBAIC0x
LDE2MiArMCwwIEBACi0vKgotICogIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwNywgMjAw
OCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQotICogIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiAgYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
LSAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAotICogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAq
LwotCi0jaWZuZGVmIFdURl9QYXNzUmVmUHRyX2gKLSNkZWZpbmUgV1RGX1Bhc3NSZWZQdHJfaAot
Ci0jaW5jbHVkZSA8d3RmL1JlZi5oPgotCi1uYW1lc3BhY2UgV1RGIHsKLQotICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IGNsYXNzIFJlZlB0cjsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFz
cyBQYXNzUmVmUHRyOwotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gQUxXQVlTX0lOTElORSB2
b2lkIHJlZklmTm90TnVsbChUKiBwdHIpCi0gICAgewotICAgICAgICBpZiAoTElLRUxZKHB0ciAh
PSBudWxscHRyKSkKLSAgICAgICAgICAgIHB0ci0+cmVmKCk7Ci0gICAgfQotCi0gICAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gQUxXQVlTX0lOTElORSB2b2lkIGRlcmVmSWZOb3ROdWxsKFQqIHB0cikK
LSAgICB7Ci0gICAgICAgIGlmIChMSUtFTFkocHRyICE9IG51bGxwdHIpKQotICAgICAgICAgICAg
cHRyLT5kZXJlZigpOwotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFBh
c3NSZWZQdHIgewotICAgIHB1YmxpYzoKLSAgICAgICAgdHlwZWRlZiBUIFZhbHVlVHlwZTsKLSAg
ICAgICAgdHlwZWRlZiBWYWx1ZVR5cGUqIFB0clR5cGU7Ci0KLSAgICAgICAgUGFzc1JlZlB0cigp
IDogbV9wdHIobnVsbHB0cikgeyB9Ci0gICAgICAgIFBhc3NSZWZQdHIoVCogcHRyKSA6IG1fcHRy
KHB0cikgeyByZWZJZk5vdE51bGwocHRyKTsgfQotICAgICAgICAvLyBJdCBzb21ld2hhdCBicmVh
a3MgdGhlIHR5cGUgc3lzdGVtIHRvIGFsbG93IHRyYW5zZmVyIG9mIG93bmVyc2hpcCBvdXQgb2YK
LSAgICAgICAgLy8gYSBjb25zdCBQYXNzUmVmUHRyLiBIb3dldmVyLCBpdCBtYWtlcyBpdCBtdWNo
IGVhc2llciB0byB3b3JrIHdpdGggUGFzc1JlZlB0cgotICAgICAgICAvLyB0ZW1wb3Jhcmllcywg
YW5kIHdlIGRvbid0IGhhdmUgYSBuZWVkIHRvIHVzZSByZWFsIGNvbnN0IFBhc3NSZWZQdHJzIGFu
eXdheS4KLSAgICAgICAgUGFzc1JlZlB0cihjb25zdCBQYXNzUmVmUHRyJiBvKSA6IG1fcHRyKG8u
bGVha1JlZigpKSB7IH0KLSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gUGFzc1JlZlB0cihj
b25zdCBQYXNzUmVmUHRyPFU+JiBvKSA6IG1fcHRyKG8ubGVha1JlZigpKSB7IH0KLQotICAgICAg
ICBBTFdBWVNfSU5MSU5FIH5QYXNzUmVmUHRyKCkgeyBkZXJlZklmTm90TnVsbChzdGQ6OmV4Y2hh
bmdlKG1fcHRyLCBudWxscHRyKSk7IH0KLQotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBQ
YXNzUmVmUHRyKGNvbnN0IFJlZlB0cjxVPiYpOwotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBV
PiBQYXNzUmVmUHRyKFJlZjxVPiYmIHJlZmVyZW5jZSkgOiBtX3B0cigmcmVmZXJlbmNlLmxlYWtS
ZWYoKSkgeyB9Ci0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IFBhc3NSZWZQdHIoUmVmUHRy
PFU+JiYgcmVmZXJlbmNlKSA6IG1fcHRyKHJlZmVyZW5jZS5sZWFrUmVmKCkpIHsgfQotCi0gICAg
ICAgIFQqIGdldCgpIGNvbnN0IHsgcmV0dXJuIG1fcHRyOyB9Ci0KLSAgICAgICAgVCogbGVha1Jl
ZigpIGNvbnN0IFdBUk5fVU5VU0VEX1JFVFVSTjsKLQotICAgICAgICBUJiBvcGVyYXRvciooKSBj
b25zdCB7IHJldHVybiAqbV9wdHI7IH0KLSAgICAgICAgVCogb3BlcmF0b3ItPigpIGNvbnN0IHsg
cmV0dXJuIG1fcHRyOyB9Ci0KLSAgICAgICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7IHJldHVy
biAhbV9wdHI7IH0KLQotICAgICAgICAvLyBUaGlzIGNvbnZlcnNpb24gb3BlcmF0b3IgYWxsb3dz
IGltcGxpY2l0IGNvbnZlcnNpb24gdG8gYm9vbCBidXQgbm90IHRvIG90aGVyIGludGVnZXIgdHlw
ZXMuCi0gICAgICAgIHR5cGVkZWYgVCogKFBhc3NSZWZQdHI6OipVbnNwZWNpZmllZEJvb2xUeXBl
KTsKLSAgICAgICAgb3BlcmF0b3IgVW5zcGVjaWZpZWRCb29sVHlwZSgpIGNvbnN0IHsgcmV0dXJu
IG1fcHRyID8gJlBhc3NSZWZQdHI6Om1fcHRyIDogbnVsbHB0cjsgfQotCi0gICAgICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFYsIHR5cGVuYW1lIFU+IGZyaWVuZCBQYXNzUmVmUHRyPFY+IHN0YXRpY19w
b2ludGVyX2Nhc3QoY29uc3QgUGFzc1JlZlB0cjxVPiYpOwotCi0gICAgcHJpdmF0ZToKLSAgICAg
ICAgUGFzc1JlZlB0ciYgb3BlcmF0b3I9KGNvbnN0IFBhc3NSZWZQdHImKSA9IGRlbGV0ZTsKLQot
ICAgICAgICBlbnVtIEFkb3B0VGFnIHsgQWRvcHQgfTsKLSAgICAgICAgUGFzc1JlZlB0cihUKiBw
dHIsIEFkb3B0VGFnKSA6IG1fcHRyKHB0cikgeyB9Ci0KLSAgICAgICAgbXV0YWJsZSBUKiBtX3B0
cjsKLSAgICB9OwotICAgIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHRlbXBsYXRlPHR5cGVu
YW1lIFU+IGlubGluZSBQYXNzUmVmUHRyPFQ+OjpQYXNzUmVmUHRyKGNvbnN0IFJlZlB0cjxVPiYg
bykKLSAgICAgICAgOiBtX3B0cihvLmdldCgpKQotICAgIHsKLSAgICAgICAgVCogcHRyID0gbV9w
dHI7Ci0gICAgICAgIHJlZklmTm90TnVsbChwdHIpOwotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IGlubGluZSBUKiBQYXNzUmVmUHRyPFQ+OjpsZWFrUmVmKCkgY29uc3QKLSAgICB7
Ci0gICAgICAgIHJldHVybiBzdGQ6OmV4Y2hhbmdlKG1fcHRyLCBudWxscHRyKTsKLSAgICB9Ci0K
LSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRv
cj09KGNvbnN0IFBhc3NSZWZQdHI8VD4mIGEsIGNvbnN0IFBhc3NSZWZQdHI8VT4mIGIpIAotICAg
IHsgCi0gICAgICAgIHJldHVybiBhLmdldCgpID09IGIuZ2V0KCk7IAotICAgIH0KLQotICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29sIG9wZXJhdG9yPT0oY29u
c3QgUGFzc1JlZlB0cjxUPiYgYSwgY29uc3QgUmVmUHRyPFU+JiBiKSAKLSAgICB7IAotICAgICAg
ICByZXR1cm4gYS5nZXQoKSA9PSBiLmdldCgpOyAKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFJlZlB0cjxU
PiYgYSwgY29uc3QgUGFzc1JlZlB0cjxVPiYgYikgCi0gICAgeyAKLSAgICAgICAgcmV0dXJuIGEu
Z2V0KCkgPT0gYi5nZXQoKTsgCi0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlw
ZW5hbWUgVT4gaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBQYXNzUmVmUHRyPFQ+JiBhLCBV
KiBiKSAKLSAgICB7IAotICAgICAgICByZXR1cm4gYS5nZXQoKSA9PSBiOyAKLSAgICB9Ci0gICAg
Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wgb3BlcmF0
b3I9PShUKiBhLCBjb25zdCBQYXNzUmVmUHRyPFU+JiBiKSAKLSAgICB7Ci0gICAgICAgIHJldHVy
biBhID09IGIuZ2V0KCk7IAotICAgIH0KLSAgICAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0
eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFBhc3NSZWZQdHI8VD4mIGEs
IGNvbnN0IFBhc3NSZWZQdHI8VT4mIGIpIAotICAgIHsgCi0gICAgICAgIHJldHVybiBhLmdldCgp
ICE9IGIuZ2V0KCk7IAotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1l
IFU+IGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgUGFzc1JlZlB0cjxUPiYgYSwgY29uc3Qg
UmVmUHRyPFU+JiBiKSAKLSAgICB7IAotICAgICAgICByZXR1cm4gYS5nZXQoKSAhPSBiLmdldCgp
OyAKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUg
Ym9vbCBvcGVyYXRvciE9KGNvbnN0IFJlZlB0cjxUPiYgYSwgY29uc3QgUGFzc1JlZlB0cjxVPiYg
YikgCi0gICAgeyAKLSAgICAgICAgcmV0dXJuIGEuZ2V0KCkgIT0gYi5nZXQoKTsgCi0gICAgfQot
Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wgb3BlcmF0
b3IhPShjb25zdCBQYXNzUmVmUHRyPFQ+JiBhLCBVKiBiKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IGEuZ2V0KCkgIT0gYjsgCi0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5h
bWUgVT4gaW5saW5lIGJvb2wgb3BlcmF0b3IhPShUKiBhLCBjb25zdCBQYXNzUmVmUHRyPFU+JiBi
KSAKLSAgICB7IAotICAgICAgICByZXR1cm4gYSAhPSBiLmdldCgpOyAKLSAgICB9Ci0KLSAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBWLCB0eXBlbmFtZSBVPiBpbmxpbmUgUGFzc1JlZlB0cjxWPiBzdGF0
aWNfcG9pbnRlcl9jYXN0KGNvbnN0IFBhc3NSZWZQdHI8VT4mIHApCi0gICAgewotICAgICAgICBy
ZXR1cm4gUGFzc1JlZlB0cjxWPihzdGF0aWNfY2FzdDxWKj4ocC5sZWFrUmVmKCkpLCBQYXNzUmVm
UHRyPFY+OjpBZG9wdCk7Ci0gICAgfQotCi0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVj
dCBJc1NtYXJ0UHRyPFBhc3NSZWZQdHI8VD4+IHsKLSAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wg
dmFsdWUgPSB0cnVlOwotICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgotCi11c2luZyBXVEY6
OlBhc3NSZWZQdHI7Ci11c2luZyBXVEY6OnN0YXRpY19wb2ludGVyX2Nhc3Q7Ci0KLSNlbmRpZiAv
LyBXVEZfUGFzc1JlZlB0cl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SZWZQdHIuaCBi
L1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5oCmluZGV4IDI3N2U2NzVkYjNjNTU1ZDVlNGM2Y2UwNDk0
Njg4NzRkMzY3Njk1OWMuLjY5YjMxMGZhNTMwYWVhNTcxMTdlOTY0MzlhMjNlNmIzOTcwOTEyODUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1JlZlB0ci5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1JlZlB0ci5oCkBAIC0xOCw3ICsxOCw3IEBACiAgKgogICovCiAKLS8vIFJlZlB0ciBhbmQgUGFz
c1JlZlB0ciBhcmUgZG9jdW1lbnRlZCBhdCBodHRwOi8vd2Via2l0Lm9yZy9jb2RpbmcvUmVmUHRy
Lmh0bWwKKy8vIFJlZlB0ciBpcyBkb2N1bWVudGVkIGF0IGh0dHA6Ly93ZWJraXQub3JnL2NvZGlu
Zy9SZWZQdHIuaHRtbAogCiAjaWZuZGVmIFdURl9SZWZQdHJfaAogI2RlZmluZSBXVEZfUmVmUHRy
X2gKQEAgLTI3LDEzICsyNywyNSBAQAogI2luY2x1ZGUgPHV0aWxpdHk+CiAjaW5jbHVkZSA8d3Rm
L0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBSZWZQdHI7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBS
ZWZQdHI8VD4gYWRvcHRSZWYoVCopOwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBBTFdBWVNfSU5M
SU5FIHZvaWQgcmVmSWZOb3ROdWxsKFQqIHB0cikKK3sKKyAgICBpZiAoTElLRUxZKHB0ciAhPSBu
dWxscHRyKSkKKyAgICAgICAgcHRyLT5yZWYoKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4g
QUxXQVlTX0lOTElORSB2b2lkIGRlcmVmSWZOb3ROdWxsKFQqIHB0cikKK3sKKyAgICBpZiAoTElL
RUxZKHB0ciAhPSBudWxscHRyKSkKKyAgICAgICAgcHRyLT5kZXJlZigpOworfQorCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBjbGFzcyBSZWZQdHIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgpAQCAtNDksMTAgKzYxLDYgQEAgcHVibGljOgogCiAgICAgQUxXQVlTX0lOTElO
RSBSZWZQdHIoUmVmUHRyJiYgbykgOiBtX3B0cihvLmxlYWtSZWYoKSkgeyB9CiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgVT4gUmVmUHRyKFJlZlB0cjxVPiYmIG8pIDogbV9wdHIoby5sZWFrUmVmKCkp
IHsgfQotCi0gICAgLy8gU2VlIGNvbW1lbnRzIGluIFBhc3NSZWZQdHIuaCBmb3IgYW4gZXhwbGFu
YXRpb24gb2Ygd2h5IHRoaXMgdGFrZXMgYSBjb25zdCByZWZlcmVuY2UuCi0gICAgdGVtcGxhdGU8
dHlwZW5hbWUgVT4gUmVmUHRyKGNvbnN0IFBhc3NSZWZQdHI8VT4mKTsKLQogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFU+IFJlZlB0cihSZWY8VT4mJik7CiAKICAgICAvLyBIYXNoIHRhYmxlIGRlbGV0
ZWQgdmFsdWVzLCB3aGljaCBhcmUgb25seSBjb25zdHJ1Y3RlZCBhbmQgbmV2ZXIgY29waWVkIG9y
IGRlc3Ryb3llZC4KQEAgLTYzLDggKzcxLDYgQEAgcHVibGljOgogCiAgICAgVCogZ2V0KCkgY29u
c3QgeyByZXR1cm4gbV9wdHI7IH0KIAotICAgIC8vIEZJWE1FOiBSZW1vdmUgcmVsZWFzZSgpIGFu
ZCBjaGFuZ2UgYWxsIGNhbGwgc2l0ZXMgdG8gY2FsbCBXVEZNb3ZlKCkuCi0gICAgUmVmUHRyPFQ+
IHJlbGVhc2UoKSB7IFJlZlB0cjxUPiB0bXAgPSBhZG9wdFJlZihtX3B0cik7IG1fcHRyID0gbnVs
bHB0cjsgcmV0dXJuIHRtcDsgfQogICAgIFJlZjxUPiByZWxlYXNlTm9uTnVsbCgpIHsgQVNTRVJU
KG1fcHRyKTsgUmVmPFQ+IHRtcChhZG9wdFJlZigqbV9wdHIpKTsgbV9wdHIgPSBudWxscHRyOyBy
ZXR1cm4gdG1wOyB9CiAgICAgUmVmPGNvbnN0IFQ+IHJlbGVhc2VDb25zdE5vbk51bGwoKSB7IEFT
U0VSVChtX3B0cik7IFJlZjxjb25zdCBUPiB0bXAoYWRvcHRSZWYoKm1fcHRyKSk7IG1fcHRyID0g
bnVsbHB0cjsgcmV0dXJuIHRtcDsgfQogCkBAIC04Miw5ICs4OCw3IEBAIHB1YmxpYzoKICAgICBS
ZWZQdHImIG9wZXJhdG9yPShjb25zdCBSZWZQdHImKTsKICAgICBSZWZQdHImIG9wZXJhdG9yPShU
Kik7CiAgICAgUmVmUHRyJiBvcGVyYXRvcj0oc3RkOjpudWxscHRyX3QpOwotICAgIFJlZlB0ciYg
b3BlcmF0b3I9KGNvbnN0IFBhc3NSZWZQdHI8VD4mKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBV
PiBSZWZQdHImIG9wZXJhdG9yPShjb25zdCBSZWZQdHI8VT4mKTsKLSAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBVPiBSZWZQdHImIG9wZXJhdG9yPShjb25zdCBQYXNzUmVmUHRyPFU+Jik7CiAgICAgUmVm
UHRyJiBvcGVyYXRvcj0oUmVmUHRyJiYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IFJlZlB0
ciYgb3BlcmF0b3I9KFJlZlB0cjxVPiYmKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBSZWZQ
dHImIG9wZXJhdG9yPShSZWY8VT4mJik7CkBAIC0xMDksMTEgKzExMyw2IEBAIHByaXZhdGU6CiAg
ICAgVCogbV9wdHI7CiB9OwogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBVPiBpbmxpbmUgUmVmUHRyPFQ+OjpSZWZQdHIoY29uc3QgUGFzc1JlZlB0cjxVPiYgbykKLSAg
ICA6IG1fcHRyKG8ubGVha1JlZigpKQotewotfQotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB0ZW1w
bGF0ZTx0eXBlbmFtZSBVPiBpbmxpbmUgUmVmUHRyPFQ+OjpSZWZQdHIoUmVmPFU+JiYgcmVmZXJl
bmNlKQogICAgIDogbV9wdHIoJnJlZmVyZW5jZS5sZWFrUmVmKCkpCiB7CkBAIC0xNTIsMjAgKzE1
MSw2IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBSZWZQdHI8VD4mIFJlZlB0cjxUPjo6
b3BlcmF0b3I9KHN0ZDo6bnVsbHB0cl90KQogICAgIHJldHVybiAqdGhpczsKIH0KIAotdGVtcGxh
dGU8dHlwZW5hbWUgVD4gaW5saW5lIFJlZlB0cjxUPiYgUmVmUHRyPFQ+OjpvcGVyYXRvcj0oY29u
c3QgUGFzc1JlZlB0cjxUPiYgbykKLXsKLSAgICBSZWZQdHIgcHRyID0gbzsKLSAgICBzd2FwKHB0
cik7Ci0gICAgcmV0dXJuICp0aGlzOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiB0ZW1wbGF0
ZTx0eXBlbmFtZSBVPiBpbmxpbmUgUmVmUHRyPFQ+JiBSZWZQdHI8VD46Om9wZXJhdG9yPShjb25z
dCBQYXNzUmVmUHRyPFU+JiBvKQotewotICAgIFJlZlB0ciBwdHIgPSBvOwotICAgIHN3YXAocHRy
KTsKLSAgICByZXR1cm4gKnRoaXM7Ci19Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBS
ZWZQdHI8VD4mIFJlZlB0cjxUPjo6b3BlcmF0b3I9KFJlZlB0ciYmIG8pCiB7CiAgICAgUmVmUHRy
IHB0ciA9IFdURk1vdmUobyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9TaXplTGltaXRz
LmNwcCBiL1NvdXJjZS9XVEYvd3RmL1NpemVMaW1pdHMuY3BwCmluZGV4IGE4MmQwYzQ4YmM5MTRh
ZWU3MmU3YWZhZjU0OTVlNjE1ZDA3MmIzZTUuLjNjYzZmZDdjNmE3YjhhM2U1MDY1ZjBiYzc4YTEz
ZmYyMzQwZDI0NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1NpemVMaW1pdHMuY3BwCisr
KyBiL1NvdXJjZS9XVEYvd3RmL1NpemVMaW1pdHMuY3BwCkBAIC0zMyw3ICszMyw2IEBACiAjaW5j
bHVkZSA8dHlwZV90cmFpdHM+CiAjaW5jbHVkZSA8dXRpbGl0eT4KICNpbmNsdWRlIDx3dGYvQXNz
ZXJ0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgpAQCAtNTQsNyArNTMsNiBAQCBzdHJ1Y3QgU2FtZVNpemVBc1JlZkNvdW50ZWQgewogfTsK
ICNlbmRpZgogCi1zdGF0aWNfYXNzZXJ0KHNpemVvZihQYXNzUmVmUHRyPFJlZkNvdW50ZWQ8aW50
Pj4pID09IHNpemVvZihpbnQqKSwgIlBhc3NSZWZQdHIgc2hvdWxkIHN0YXkgc21hbGwhIik7CiBz
dGF0aWNfYXNzZXJ0KHNpemVvZihSZWZDb3VudGVkPGludD4pID09IHNpemVvZihTYW1lU2l6ZUFz
UmVmQ291bnRlZCksICJSZWZDb3VudGVkIHNob3VsZCBzdGF5IHNtYWxsISIpOwogc3RhdGljX2Fz
c2VydChzaXplb2YoUmVmUHRyPFJlZkNvdW50ZWQ8aW50Pj4pID09IHNpemVvZihpbnQqKSwgIlJl
ZlB0ciBzaG91bGQgc3RheSBzbWFsbCEiKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
VmVjdG9yLmggYi9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaAppbmRleCBmMTA1ZDQxODA0M2E3MTJi
YTg5MjNlZDExYWNjNTRlMThmMTdlNzc4Li5mOGQ0N2Y5OTU4ZjY4OWZhMzAzZThjNGUxMzMyNTcw
NGI5NzVhMjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9WZWN0b3IuaApAQCAtMTE4OCw5ICsxMTg4LDYgQEAgdm9pZCBWZWN0b3I8VCwg
aW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+OjpzaHJpbmtDYXBh
Y2l0eShzaXoKICAgICBhc2FuU2V0SW5pdGlhbEJ1ZmZlclNpemVUbyhzaXplKCkpOwogfQogCi0v
LyBUZW1wbGF0aXppbmcgdGhlc2UgaXMgYmV0dGVyIHRoYW4ganVzdCBsZXR0aW5nIHRoZSBjb252
ZXJzaW9uIGhhcHBlbiBpbXBsaWNpdGx5LAotLy8gYmVjYXVzZSBmb3IgaW5zdGFuY2UgaXQgYWxs
b3dzIGEgUGFzc1JlZlB0ciB0byBiZSBhcHBlbmRlZCB0byBhIFJlZlB0ciB2ZWN0b3IKLS8vIHdp
dGhvdXQgcmVmY291bnQgdGhyYXNoLgogdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGlu
ZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW5DYXBhY2l0eT4g
dGVtcGxhdGU8dHlwZW5hbWUgVT4KIHZvaWQgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVy
Zmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5Pjo6YXBwZW5kKGNvbnN0IFUqIGRhdGEsIHNpemVfdCBk
YXRhU2l6ZSkKIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCBlZTBhMGU4NWRhZWVlNmYxYWI5NzFkOWRhM2Q5NTZhMmY3OWFmOGNhLi40N2U4OWMw
NGZjY2Y2NDZiZTExMGQ2YzA1NDFjYTFiMmUxMTZhNzMyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTctMDUtMTMg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIFBhc3NSZWZQ
dHIgY2xhc3MgZnJvbSBXVEYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3MjA5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIERyb3AgQVBJIHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9SZWYuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpwYXNzV2l0aFBhc3NSZWZQdHIpOiBEZWxldGVkLgorCiAy
MDE3LTA1LTEzICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAg
ICAgIFtNZWRpYVN0cmVhbV0gZGV2aWNlSWQgY29uc3RyYWludCBkb2Vzbid0IHdvcmsgd2l0aCBn
ZXRVc2VyTWVkaWEKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1Jl
Zi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SZWYuY3BwCmluZGV4IGMzNTYw
NmUyMzc3NjU5ZmEyMTBkMDhlNjBlNTc0MGQ2ZDJkYTg5MWIuLjg3ZTVjY2EwMGI3MDk1NTIxMDNh
ZmI1MTg3NzU3Y2NhNDc4NDI5ZmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1JlZi5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmLmNw
cApAQCAtMTAyLDExICsxMDIsNiBAQCBzdGF0aWMgUmVmPFJlZkxvZ2dlcj4gcGFzc1dpdGhSZWYo
UmVmPFJlZkxvZ2dlcj4mJiByZWZlcmVuY2UpCiAgICAgcmV0dXJuIFdURk1vdmUocmVmZXJlbmNl
KTsKIH0KIAotc3RhdGljIFJlZlB0cjxSZWZMb2dnZXI+IHBhc3NXaXRoUGFzc1JlZlB0cihQYXNz
UmVmUHRyPFJlZkxvZ2dlcj4gcmVmZXJlbmNlKQotewotICAgIHJldHVybiByZWZlcmVuY2U7Ci19
Ci0KIFRFU1QoV1RGX1JlZiwgUmV0dXJuVmFsdWUpCiB7CiAgICAgRGVyaXZlZFJlZkxvZ2dlciBh
KCJhIik7CkBAIC0xMzYsMTIgKzEzMSw2IEBAIFRFU1QoV1RGX1JlZiwgUmV0dXJuVmFsdWUpCiAg
ICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkp
OwogCiAgICAgewotICAgICAgICBSZWZQdHI8UmVmTG9nZ2VyPiBwdHIocGFzc1dpdGhQYXNzUmVm
UHRyKHBhc3NXaXRoUmVmKGEpKSk7Ci0gICAgICAgIEFTU0VSVF9FUSgmYSwgcHRyLmdldCgpKTsK
LSAgICB9Ci0gICAgQVNTRVJUX1NUUkVRKCJyZWYoYSkgZGVyZWYoYSkgIiwgdGFrZUxvZ1N0cigp
LmNfc3RyKCkpOwotCi0gICAgewogICAgICAgICBSZWZQdHI8RGVyaXZlZFJlZkxvZ2dlcj4gcHRy
KCZhKTsKICAgICAgICAgUmVmUHRyPFJlZkxvZ2dlcj4gcHRyMihXVEZNb3ZlKHB0cikpOwogICAg
ICAgICBBU1NFUlRfRVEobnVsbHB0ciwgcHRyLmdldCgpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>