<?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>152737</bug_id>
          
          <creation_ts>2016-01-05 10:38:03 -0800</creation_ts>
          <short_desc>[JSC] Get more of testb3 to pass on ARM64</short_desc>
          <delta_ts>2016-01-06 03:37:58 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ossy</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1152753</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-01-05 10:38:03 -0800</bug_when>
    <thetext>[JSC] Get more of testb3 to pass on ARM64</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152754</commentid>
    <comment_count>1</comment_count>
      <attachid>268289</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-01-05 10:40:08 -0800</bug_when>
    <thetext>Created attachment 268289
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152757</commentid>
    <comment_count>2</comment_count>
      <attachid>268290</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-01-05 10:47:56 -0800</bug_when>
    <thetext>Created attachment 268290
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152759</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-01-05 10:52:04 -0800</bug_when>
    <thetext>Last 500 characters of output:
sembler/AssemblerCommon.h:55:13: error: unused function &apos;isValidSignedImm9&apos; [-Werror,-Wunused-function]
static bool isValidSignedImm9(int32_t value)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152808</commentid>
    <comment_count>4</comment_count>
      <attachid>268305</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-01-05 12:22:10 -0800</bug_when>
    <thetext>Created attachment 268305
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152870</commentid>
    <comment_count>5</comment_count>
      <attachid>268319</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-01-05 13:38:10 -0800</bug_when>
    <thetext>Created attachment 268319
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152892</commentid>
    <comment_count>6</comment_count>
      <attachid>268319</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-01-05 14:21:40 -0800</bug_when>
    <thetext>Comment on attachment 268319
Patch

Small stuffs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152893</commentid>
    <comment_count>7</comment_count>
      <attachid>268319</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-01-05 14:25:47 -0800</bug_when>
    <thetext>Comment on attachment 268319
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152898</commentid>
    <comment_count>8</comment_count>
      <attachid>268319</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-01-05 14:40:28 -0800</bug_when>
    <thetext>Comment on attachment 268319
Patch

LGTM too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153015</commentid>
    <comment_count>9</comment_count>
      <attachid>268319</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-06 02:43:18 -0800</bug_when>
    <thetext>Comment on attachment 268319
Patch

Clearing flags on attachment: 268319

Committed r194635: &lt;http://trac.webkit.org/changeset/194635&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153016</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-06 02:43:24 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268289</attachid>
            <date>2016-01-05 10:40:08 -0800</date>
            <delta_ts>2016-01-05 10:47:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152737-20160105193930.patch</filename>
            <type>text/plain</type>
            <size>26233</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0NTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
OWM5MzZlZmY0Y2EyMDFhYjFjNTNkNWIzZGUzOGEyM2UxMDlhMTczLi4xMDIxNWYwZDMzMzA5YjJm
YjVjOGQ4Njk2N2EzMmJjYzE5NWQwMWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OSBAQAorMjAxNi0wMS0wNSAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBbSlNDXSBHZXQgbW9yZSBvZiB0ZXN0YjMgdG8gcGFzcyBvbiBBUk02
NAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUyNzM3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQSBidW5j
aCBvZiBtaW5vciBidWdzIGFuZCBtaXNzaW5nIGZ1bmN0aW9uIHRvIG1ha2UgbW9zdCBvZiB0ZXN0
YjMKKyAgICAgICAgcnVuIG9uIEFSTTY0LgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBhc3NlbWJsZXIvQVJNNjRBc3NlbWJs
ZXIuaDoKKyAgICAgICAgKEpTQzo6QVJNNjRBc3NlbWJsZXI6OmNhbkVuY29kZVBJbW1PZmZzZXQp
OgorICAgICAgICAoSlNDOjpBUk02NEFzc2VtYmxlcjo6Y2FuRW5jb2RlU0ltbU9mZnNldCk6Cisg
ICAgICAgIChKU0M6OmlzSW50OSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmlzVUludDEyKTog
RGVsZXRlZC4KKyAgICAgICAgKiBhc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaDoKKyAgICAgICAg
KiBhc3NlbWJsZXIvQXNzZW1ibGVyQ29tbW9uLmg6IEFkZGVkLgorICAgICAgICAoSlNDOjppc0lu
dDkpOgorICAgICAgICAoSlNDOjppc1VJbnQxMik6CisgICAgICAgIChKU0M6OmlzVmFsaWRTY2Fs
ZWRVSW1tMTIpOgorICAgICAgICAoSlNDOjppc1ZhbGlkU2lnbmVkSW1tOSk6CisgICAgICAgICog
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3Nl
bWJsZXJBUk02NDo6bG9hZDE2U2lnbmVkRXh0ZW5kVG8zMik6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNNjQ6OmxvYWQ4U2lnbmVkRXh0ZW5kVG8zMik6CisgICAgICAgIChKU0M6Ok1h
Y3JvQXNzZW1ibGVyQVJNNjQ6OnN0b3JlMTYpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxl
ckFSTTY0OjphYnNGbG9hdCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6Omxv
YWRGbG9hdCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnN0b3JlRmxvYXQp
OgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0Ojpsb2FkU2lnbmVkQWRkcmVzc2Vk
QnlVbnNpZ25lZEltbWVkaWF0ZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6
OmxvYWRTaWduZWRBZGRyZXNzZWRCeVVuc2NhbGVkSW1tZWRpYXRlKToKKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXJBUk02NDo6dHJ5TG9hZFNpZ25lZFdpdGhPZmZzZXQpOgorICAgICAgICAo
SlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0Ojpsb2FkU2lnbmVkQWRkcmVzc2VkQnlVbnNpZ25lZElt
bWVkaWF0ZTw4Pik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OmxvYWRTaWdu
ZWRBZGRyZXNzZWRCeVVuc2lnbmVkSW1tZWRpYXRlPDE2Pik6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNNjQ6OmxvYWRTaWduZWRBZGRyZXNzZWRCeVVuc2NhbGVkSW1tZWRpYXRlPDg+
KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZFNpZ25lZEFkZHJlc3Nl
ZEJ5VW5zY2FsZWRJbW1lZGlhdGU8MTY+KToKKyAgICAgICAgKiBhc3NlbWJsZXIvWDg2QXNzZW1i
bGVyLmg6CisgICAgICAgICogYjMvQjNMb3dlclRvQWlyLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6
OkFpcjo6TG93ZXJUb0Fpcjo6ZWZmZWN0aXZlQWRkcik6CisgICAgICAgIChKU0M6OkIzOjpBaXI6
Okxvd2VyVG9BaXI6Omxvd2VyKToKKyAgICAgICAgKiBiMy9haXIvQWlyQXJnLmg6CisgICAgICAg
IChKU0M6OkIzOjpBaXI6OkFyZzo6aXNWYWxpZEltbUZvcm0pOgorICAgICAgICAoSlNDOjpCMzo6
QWlyOjpBcmc6OmlzVmFsaWRBZGRyRm9ybSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6
aXNWYWxpZEZvcm0pOgorICAgICAgICAqIGIzL2Fpci9BaXJPcGNvZGUub3Bjb2RlczoKKwogMjAx
Ni0wMS0wNCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbSlNDXSBCdWlsZCBCMyBieSBkZWZhdWx0IG9uIGlPUyBBUk02NApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBiMzY3ZThiY2VmY2QzZjgzNWM5YjUwNzY1Nzk0ZTNkYzZiMjlkNTk4
Li5iODJlNmFmNDFhOTIwMmEyZmI0NjhmZjYwYTljOGIzYTk0OTRmMDI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTE0OSw2ICsxMTQ5LDcgQEAKIAkJNDM0MjJBNjcxQzE2MjY3
ODAwRTJFQjk4IC8qIEIzUmVkdWNlRG91YmxlVG9GbG9hdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM0MjJBNjUxQzE2MjIxRTAwRTJFQjk4IC8qIEIz
UmVkdWNlRG91YmxlVG9GbG9hdC5oICovOyB9OwogCQk0M0FCMjZDNjFDMUE1MzU5MDBEODJBRTYg
LyogQjNNYXRoRXh0cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0M0FCMjZDNTFDMUE1MkY3MDBEODJBRTYgLyogQjNNYXRoRXh0cmFzLmggKi87IH07
CiAJCTQzQUIyNkM3MUMxQTUzNUMwMEQ4MkFFNiAvKiBCM01hdGhFeHRyYXMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDNBQjI2QzQxQzFBNTJGNzAw
RDgyQUU2IC8qIEIzTWF0aEV4dHJhcy5jcHAgKi87IH07CisJCTQzQzM5MkFCMUMzQkVCMDUwMDI0
MUY1MyAvKiBBc3NlbWJsZXJDb21tb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQzQzM5MkFBMUMzQkVCMDAwMDI0MUY1MyAvKiBBc3NlbWJsZXJDb21t
b24uaCAqLzsgfTsKIAkJNDQ0M0FFMzMxNkUxODhEOTAwNzZGMTEwIC8qIEZvdW5kYXRpb24uZnJh
bWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTFGMEVCNjEwNUM4NkM2QjAwRTZERjFCIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICovOyB9Owog
CQk0NTE1MzlCOTEyREM5OTQ1MDBFRjdBQzQgLyogWWFyci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDUxNTM5QjgxMkRDOTk0NTAwRUY3QUM0IC8qIFlh
cnIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1
MjY3OEY4RTFBMDMxMDA5MDA2QTMwNkQgLyogQmFzaWNCbG9ja0xvY2F0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyNjc4RjhDMUEwMzEwMDkw
MDZBMzA2RCAvKiBCYXNpY0Jsb2NrTG9jYXRpb24uY3BwICovOyB9OwpAQCAtMjA1NSw4ICsyMDU2
LDggQEAKIAkJRkU3QkE2MEYxQTFBN0NFQzAwRjFGN0I0IC8qIEhlYXBWZXJpZmllci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTdCQTYwRDFBMUE3
Q0VDMDBGMUY3QjQgLyogSGVhcFZlcmlmaWVyLmNwcCAqLzsgfTsKIAkJRkU3QkE2MTAxQTFBN0NF
QzAwRjFGN0I0IC8qIEhlYXBWZXJpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRkU3QkE2MEUxQTFBN0NFQzAwRjFGN0I0IC8qIEhlYXBWZXJpZmll
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZF
N0M0MTk2MUI5N0ZDNEIwMEY0RDU5OCAvKiBQaW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFREE1MEQ0MUI5
N0Y0NDIwMDlBM0I0RiAvKiBQaW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0LmNwcCAqLzsgfTsKLQkJ
RkU5OUIyNDkxQzI0QzNEMzAwQzgyMTU5IC8qIEpJVE5lZ0dlbmVyYXRvci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU5OUIyNDgxQzI0QjZEMzAwQzgy
MTU5IC8qIEpJVE5lZ0dlbmVyYXRvci5oICovOyBzZXR0aW5ncyA9IHtBU1NFVF9UQUdTID0gKCk7
IH07IH07Ci0JCUZFOTlCMjRBMUMyNEMzRDcwMEM4MjE1OSAvKiBKSVROZWdHZW5lcmF0b3IuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU5OUIyNDcx
QzI0QjZEMzAwQzgyMTU5IC8qIEpJVE5lZ0dlbmVyYXRvci5jcHAgKi87IHNldHRpbmdzID0ge0FT
U0VUX1RBR1MgPSAoKTsgfTsgfTsKKwkJRkU5OUIyNDkxQzI0QzNEMzAwQzgyMTU5IC8qIEpJVE5l
Z0dlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRkU5OUIyNDgxQzI0QjZEMzAwQzgyMTU5IC8qIEpJVE5lZ0dlbmVyYXRvci5oICovOyB9Owor
CQlGRTk5QjI0QTFDMjRDM0Q3MDBDODIxNTkgLyogSklUTmVnR2VuZXJhdG9yLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFOTlCMjQ3MUMyNEI2RDMw
MEM4MjE1OSAvKiBKSVROZWdHZW5lcmF0b3IuY3BwICovOyB9OwogCQlGRUEwODYyMDE4MkI3QTA0
MDBGNkQ4NTEgLyogQnJlYWtwb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkVBMDg2MUUxODJCN0EwNDAwRjZEODUxIC8qIEJyZWFrcG9pbnQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRUEwODYy
MTE4MkI3QTA0MDBGNkQ4NTEgLyogRGVidWdnZXJQcmltaXRpdmVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUEwODYxRjE4MkI3QTA0MDBGNkQ4NTEg
LyogRGVidWdnZXJQcmltaXRpdmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRkVBMUU0MzkxQzIxM0EyQjAwMjc3QTE2IC8qIFZhbHVlUHJvZmls
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUEx
RTQzODFDMjEzQTI2MDAyNzdBMTYgLyogVmFsdWVQcm9maWxlLmNwcCAqLzsgfTsKQEAgLTMyNDks
NiArMzI1MCw3IEBACiAJCTQzNDIyQTY1MUMxNjIyMUUwMEUyRUI5OCAvKiBCM1JlZHVjZURvdWJs
ZVRvRmxvYXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQjNSZWR1Y2VEb3Vi
bGVUb0Zsb2F0Lmg7IHBhdGggPSBiMy9CM1JlZHVjZURvdWJsZVRvRmxvYXQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDNBQjI2QzQxQzFBNTJGNzAwRDgyQUU2IC8qIEIzTWF0aEV4
dHJhcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCM01hdGhFeHRy
YXMuY3BwOyBwYXRoID0gYjMvQjNNYXRoRXh0cmFzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDNBQjI2QzUxQzFBNTJGNzAwRDgyQUU2IC8qIEIzTWF0aEV4dHJhcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM01hdGhFeHRyYXMuaDsgcGF0aCA9IGIzL0Iz
TWF0aEV4dHJhcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0M0MzOTJBQTFDM0JF
QjAwMDAyNDFGNTMgLyogQXNzZW1ibGVyQ29tbW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEFzc2VtYmxlckNvbW1vbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0NDkwOTdFRTBGOEY4MUI1MDA3NkEzMjcgLyogRmVhdHVyZURlZmluZXMueGNjb25maWcgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gRmVhdHVyZURlZmluZXMueGNjb25maWc7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ1MTUzOUI4MTJEQzk5NDUwMEVGN0FDNCAvKiBZ
YXJyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFlhcnIuaDsgcGF0aCA9IHlh
cnIvWWFyci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NUUxMkQ4ODA2QTQ5QjBG
MDBFOURGODQgLyoganNjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IGpzYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldp
ZHRoID0gNDsgfTsKQEAgLTYzODIsNiArNjM4NCw3IEBACiAJCQkJODZBREQxNDMwRkRERUE5ODAw
MDZFRUMyIC8qIEFSTXY3QXNzZW1ibGVyLmggKi8sCiAJCQkJOTY4OENCMTMwRUQxMkI0RTAwMUQ2
NDlGIC8qIEFzc2VtYmxlckJ1ZmZlci5oICovLAogCQkJCTg2RDNCMkMxMTAxNTZCREUwMDI4NjVF
NyAvKiBBc3NlbWJsZXJCdWZmZXJXaXRoQ29uc3RhbnRQb29sLmggKi8sCisJCQkJNDNDMzkyQUEx
QzNCRUIwMDAwMjQxRjUzIC8qIEFzc2VtYmxlckNvbW1vbi5oICovLAogCQkJCTg2RTExNkIwMEZF
NzVBQzgwMEI1MTJCQyAvKiBDb2RlTG9jYXRpb24uaCAqLywKIAkJCQkwRjM3MzA4RTFDMENENjg1
MDAwNTJCRkEgLyogRGlzYWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlLmggKi8sCiAJCQkJ
MEZGNDI3NTYxNTkxNEEyMDAwNENCOUZGIC8qIExpbmtCdWZmZXIuY3BwICovLApAQCAtNzE5Nyw2
ICs3MjAwLDcgQEAKIAkJCQkwRkE1ODFCQzE1MEU5NTMwMDBCOUEyRDkgLyogREZHTm9kZVR5cGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkI5Q0U3MTlEMEJBN0QwMEIxRDFCNSAvKiBERkdPYmpl
Y3RBbGxvY2F0aW9uU2lua2luZ1BoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCOUNFOTE5
RDBCQTdEMDBCMUQxQjUgLyogREZHT2JqZWN0TWF0ZXJpYWxpemF0aW9uRGF0YS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNDNDMzkyQUIxQzNCRUIwNTAwMjQxRjUzIC8qIEFzc2VtYmxlckNvbW1vbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODZFQzlERDAxMzI4REY4MjAwMkIyQUQ3IC8qIERGR09wZXJh
dGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3RDg5Q0ZFMTdBMEI4Q0MwMDc3M0FEOCAvKiBE
RkdPU1JBdmFpbGFiaWxpdHlBbmFseXNpc1BoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQ4
MkU1NzE0MURBRjEwMDAxNzlDOTQgLyogREZHT1NSRW50cnkuaCBpbiBIZWFkZXJzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk02NEFzc2VtYmxlci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk02NEFzc2VtYmxlci5oCmluZGV4
IDA4MGU3NjEwNWIzYjhhNWYwYTdjM2U3YjUwMDQzN2Q2ZGVkZDFjNGQuLjNjZTU0YzI3ODU1OTNh
YjY1MjQ4MzUzYzY2YjdkZDBiZmY4OTMxNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL0FSTTY0QXNzZW1ibGVyLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFC
TEUoQVNTRU1CTEVSKSAmJiBDUFUoQVJNNjQpCiAKICNpbmNsdWRlICJBc3NlbWJsZXJCdWZmZXIu
aCIKKyNpbmNsdWRlICJBc3NlbWJsZXJDb21tb24uaCIKICNpbmNsdWRlIDxsaW1pdHMuaD4KICNp
bmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTUy
LDExICs1Myw2IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBpc0ludDcoaW50MzJfdCB2YWx1ZSkKICAg
ICByZXR1cm4gdmFsdWUgPT0gKCh2YWx1ZSA8PCAyNSkgPj4gMjUpOwogfQogCi1BTFdBWVNfSU5M
SU5FIGJvb2wgaXNJbnQ5KGludDMyX3QgdmFsdWUpCi17Ci0gICAgcmV0dXJuIHZhbHVlID09ICgo
dmFsdWUgPDwgMjMpID4+IDIzKTsKLX0KLQogQUxXQVlTX0lOTElORSBib29sIGlzSW50MTEoaW50
MzJfdCB2YWx1ZSkKIHsKICAgICByZXR1cm4gdmFsdWUgPT0gKCh2YWx1ZSA8PCAyMSkgPj4gMjEp
OwpAQCAtNjcsMTYgKzYzLDYgQEAgQUxXQVlTX0lOTElORSBib29sIGlzVUludDUoaW50MzJfdCB2
YWx1ZSkKICAgICByZXR1cm4gISh2YWx1ZSAmIH4weDFmKTsKIH0KIAotQUxXQVlTX0lOTElORSBi
b29sIGlzVUludDEyKGludDMyX3QgdmFsdWUpCi17Ci0gICAgcmV0dXJuICEodmFsdWUgJiB+MHhm
ZmYpOwotfQotCi1BTFdBWVNfSU5MSU5FIGJvb2wgaXNVSW50MTIoaW50cHRyX3QgdmFsdWUpCi17
Ci0gICAgcmV0dXJuICEodmFsdWUgJiB+MHhmZmZMKTsKLX0KLQogY2xhc3MgVUludDUgewogcHVi
bGljOgogICAgIGV4cGxpY2l0IFVJbnQ1KGludCB2YWx1ZSkKQEAgLTcxNywxOSArNzAzLDEyIEBA
IHB1YmxpYzoKICAgICB0ZW1wbGF0ZTxpbnQgZGF0YXNpemU+CiAgICAgc3RhdGljIGJvb2wgY2Fu
RW5jb2RlUEltbU9mZnNldChpbnQzMl90IG9mZnNldCkKICAgICB7Ci0gICAgICAgIGludDMyX3Qg
bWF4UEltbSA9IDQwOTUgKiAoZGF0YXNpemUgLyA4KTsKLSAgICAgICAgaWYgKG9mZnNldCA8IDAp
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmIChvZmZzZXQgPiBtYXhQSW1t
KQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAob2Zmc2V0ICYgKChkYXRh
c2l6ZSAvIDggKSAtIDEpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIGlzVmFsaWRTY2FsZWRVSW1tMTI8ZGF0YXNpemU+KG9m
ZnNldCk7CiAgICAgfQogCiAgICAgc3RhdGljIGJvb2wgY2FuRW5jb2RlU0ltbU9mZnNldChpbnQz
Ml90IG9mZnNldCkKICAgICB7Ci0gICAgICAgIHJldHVybiBpc0ludDkob2Zmc2V0KTsKKyAgICAg
ICAgcmV0dXJuIGlzVmFsaWRTaWduZWRJbW05KG9mZnNldCk7CiAgICAgfQogCiBwcml2YXRlOgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxl
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oCmlu
ZGV4IGQ3MGEyZTdkZWFhYjdkNjNlYjE1YTM2NThiYWRjN2ZkNGFmYTk0ZTcuLjZiOWYzMDVlOTI3
NDY5ZjFiMjM1ZGJiZjdhMjVkMjMxODkzZmRmZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpZiBF
TkFCTEUoQVNTRU1CTEVSKSAmJiBDUFUoQVJNX1RIVU1CMikKIAogI2luY2x1ZGUgIkFzc2VtYmxl
ckJ1ZmZlci5oIgorI2luY2x1ZGUgIkFzc2VtYmxlckNvbW1vbi5oIgogI2luY2x1ZGUgPGxpbWl0
cy5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9Bc3NlbWJsZXJD
b21tb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQXNzZW1ibGVyQ29tbW9u
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjA2ZmQ5YzhjMzA4YThlNDUzMzZhMDMxZTdkYmJiNTBkZTg4MzMzYgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQXNzZW1i
bGVyQ29tbW9uLmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiwg
MjAxNCwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQXNzZW1ibGVyQ29tbW9uX2gK
KyNkZWZpbmUgQXNzZW1ibGVyQ29tbW9uX2gKKworbmFtZXNwYWNlIEpTQyB7CisKK0FMV0FZU19J
TkxJTkUgYm9vbCBpc0ludDkoaW50MzJfdCB2YWx1ZSkKK3sKKyAgICByZXR1cm4gdmFsdWUgPT0g
KCh2YWx1ZSA8PCAyMykgPj4gMjMpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUeXBlPgorQUxX
QVlTX0lOTElORSBib29sIGlzVUludDEyKFR5cGUgdmFsdWUpCit7CisgICAgcmV0dXJuICEodmFs
dWUgJiB+c3RhdGljX2Nhc3Q8VHlwZT4oMHhmZmYpKTsKK30KKwordGVtcGxhdGU8aW50IGRhdGFz
aXplPgorc3RhdGljIGJvb2wgaXNWYWxpZFNjYWxlZFVJbW0xMihpbnQzMl90IG9mZnNldCkKK3sK
KyAgICBpbnQzMl90IG1heFBJbW0gPSA0MDk1ICogKGRhdGFzaXplIC8gOCk7CisgICAgaWYgKG9m
ZnNldCA8IDApCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAob2Zmc2V0ID4gbWF4UElt
bSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChvZmZzZXQgJiAoKGRhdGFzaXplIC8g
OCkgLSAxKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCitz
dGF0aWMgYm9vbCBpc1ZhbGlkU2lnbmVkSW1tOShpbnQzMl90IHZhbHVlKQoreworICAgIHJldHVy
biBpc0ludDkodmFsdWUpOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MuCisKKyNlbmRpZiAvLyBB
c3NlbWJsZXJDb21tb25faApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAppbmRleCBhZWE2NjZlODhkZGY0MjQ2ODdmMDkzNjU1
YjNlYjg4YWQwOWNhMWQ2Li5lMzRmMDM0ZjdiODFhZGQ2Y2VkOWEyY2ExZDVkODRmOTM2OTg4YzVm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyQVJNNjQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyQVJNNjQuaApAQCAtOTg1LDYgKzk4NSwxNSBAQCBwdWJsaWM6CiAgICAgICAgIGxvYWQx
NihhZGRyZXNzLCBkZXN0KTsKICAgICB9CiAKKyAgICB2b2lkIGxvYWQxNlNpZ25lZEV4dGVuZFRv
MzIoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAg
ICAgIGlmICh0cnlMb2FkU2lnbmVkV2l0aE9mZnNldDwxNj4oZGVzdCwgYWRkcmVzcy5iYXNlLCBh
ZGRyZXNzLm9mZnNldCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgc2lnbkV4dGVu
ZDMyVG9QdHIoVHJ1c3RlZEltbTMyKGFkZHJlc3Mub2Zmc2V0KSwgZ2V0Q2FjaGVkTWVtb3J5VGVt
cFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOworICAgICAgICBtX2Fzc2VtYmxlci5sZHJzaDwz
Mj4oZGVzdCwgYWRkcmVzcy5iYXNlLCBtZW1vcnlUZW1wUmVnaXN0ZXIpOworICAgIH0KKwogICAg
IHZvaWQgbG9hZDE2U2lnbmVkRXh0ZW5kVG8zMihCYXNlSW5kZXggYWRkcmVzcywgUmVnaXN0ZXJJ
RCBkZXN0KQogICAgIHsKICAgICAgICAgaWYgKCFhZGRyZXNzLm9mZnNldCAmJiAoIWFkZHJlc3Mu
c2NhbGUgfHwgYWRkcmVzcy5zY2FsZSA9PSAxKSkgewpAQCAtMTAzNiw2ICsxMDQ1LDE1IEBAIHB1
YmxpYzoKICAgICAgICAgICAgIG1fY2FjaGVkTWVtb3J5VGVtcFJlZ2lzdGVyLmludmFsaWRhdGUo
KTsKICAgICB9CiAKKyAgICB2b2lkIGxvYWQ4U2lnbmVkRXh0ZW5kVG8zMihJbXBsaWNpdEFkZHJl
c3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgaWYgKHRyeUxvYWRT
aWduZWRXaXRoT2Zmc2V0PDg+KGRlc3QsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5vZmZzZXQpKQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHNpZ25FeHRlbmQzMlRvUHRyKFRydXN0ZWRJ
bW0zMihhZGRyZXNzLm9mZnNldCksIGdldENhY2hlZE1lbW9yeVRlbXBSZWdpc3RlcklEQW5kSW52
YWxpZGF0ZSgpKTsKKyAgICAgICAgbV9hc3NlbWJsZXIubGRyc2I8MzI+KGRlc3QsIGFkZHJlc3Mu
YmFzZSwgbWVtb3J5VGVtcFJlZ2lzdGVyKTsKKyAgICB9CisKICAgICB2b2lkIGxvYWQ4U2lnbmVk
RXh0ZW5kVG8zMihCYXNlSW5kZXggYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAg
ICAgICAgaWYgKCFhZGRyZXNzLm9mZnNldCAmJiAhYWRkcmVzcy5zY2FsZSkgewpAQCAtMTE4Niw2
ICsxMjA0LDE1IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGxhYmVsOwogICAgIH0KIAorICAg
IHZvaWQgc3RvcmUxNihSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisg
ICAgeworICAgICAgICBpZiAodHJ5U3RvcmVXaXRoT2Zmc2V0PDE2PihzcmMsIGFkZHJlc3MuYmFz
ZSwgYWRkcmVzcy5vZmZzZXQpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHNpZ25F
eHRlbmQzMlRvUHRyKFRydXN0ZWRJbW0zMihhZGRyZXNzLm9mZnNldCksIGdldENhY2hlZE1lbW9y
eVRlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuc3Ry
PDE2PihzcmMsIGFkZHJlc3MuYmFzZSwgbWVtb3J5VGVtcFJlZ2lzdGVyKTsKKyAgICB9CisKICAg
ICB2b2lkIHN0b3JlMTYoUmVnaXN0ZXJJRCBzcmMsIEJhc2VJbmRleCBhZGRyZXNzKQogICAgIHsK
ICAgICAgICAgaWYgKCFhZGRyZXNzLm9mZnNldCAmJiAoIWFkZHJlc3Muc2NhbGUgfHwgYWRkcmVz
cy5zY2FsZSA9PSAxKSkgewpAQCAtMTI2Miw2ICsxMjg5LDExIEBAIHB1YmxpYzoKICAgICAgICAg
bV9hc3NlbWJsZXIuZmFiczw2ND4oZGVzdCwgc3JjKTsKICAgICB9CiAKKyAgICB2b2lkIGFic0Zs
b2F0KEZQUmVnaXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAg
bV9hc3NlbWJsZXIuZmFiczwzMj4oZGVzdCwgc3JjKTsKKyAgICB9CisKICAgICB2b2lkIGFkZERv
dWJsZShGUFJlZ2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAg
IGFkZERvdWJsZShkZXN0LCBzcmMsIGRlc3QpOwpAQCAtMTQ0OSw2ICsxNDgxLDE1IEBAIHB1Ymxp
YzoKICAgICAgICAgbV9hc3NlbWJsZXIubGRyPDY0PihkZXN0LCBtZW1vcnlUZW1wUmVnaXN0ZXIs
IEFSTTY0UmVnaXN0ZXJzOjp6cik7CiAgICAgfQogCisgICAgdm9pZCBsb2FkRmxvYXQoSW1wbGlj
aXRBZGRyZXNzIGFkZHJlc3MsIEZQUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgaWYg
KHRyeUxvYWRXaXRoT2Zmc2V0PDMyPihkZXN0LCBhZGRyZXNzLmJhc2UsIGFkZHJlc3Mub2Zmc2V0
KSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBzaWduRXh0ZW5kMzJUb1B0cihUcnVz
dGVkSW1tMzIoYWRkcmVzcy5vZmZzZXQpLCBnZXRDYWNoZWRNZW1vcnlUZW1wUmVnaXN0ZXJJREFu
ZEludmFsaWRhdGUoKSk7CisgICAgICAgIG1fYXNzZW1ibGVyLmxkcjwzMj4oZGVzdCwgYWRkcmVz
cy5iYXNlLCBtZW1vcnlUZW1wUmVnaXN0ZXIpOworICAgIH0KKwogICAgIHZvaWQgbG9hZEZsb2F0
KEJhc2VJbmRleCBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIGlm
ICghYWRkcmVzcy5vZmZzZXQgJiYgKCFhZGRyZXNzLnNjYWxlIHx8IGFkZHJlc3Muc2NhbGUgPT0g
MikpIHsKQEAgLTE1OTYsNiArMTYzNywxNSBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVy
LmFkZDw2ND4obWVtb3J5VGVtcFJlZ2lzdGVyLCBtZW1vcnlUZW1wUmVnaXN0ZXIsIGFkZHJlc3Mu
aW5kZXgsIEFSTTY0QXNzZW1ibGVyOjpVWFRYLCBhZGRyZXNzLnNjYWxlKTsKICAgICAgICAgbV9h
c3NlbWJsZXIuc3RyPDY0PihzcmMsIGFkZHJlc3MuYmFzZSwgbWVtb3J5VGVtcFJlZ2lzdGVyKTsK
ICAgICB9CisKKyAgICB2b2lkIHN0b3JlRmxvYXQoRlBSZWdpc3RlcklEIHNyYywgSW1wbGljaXRB
ZGRyZXNzIGFkZHJlc3MpCisgICAgeworICAgICAgICBpZiAodHJ5U3RvcmVXaXRoT2Zmc2V0PDMy
PihzcmMsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5vZmZzZXQpKQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIHNpZ25FeHRlbmQzMlRvUHRyKFRydXN0ZWRJbW0zMihhZGRyZXNzLm9mZnNl
dCksIGdldENhY2hlZE1lbW9yeVRlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpKTsKKyAgICAg
ICAgbV9hc3NlbWJsZXIuc3RyPDMyPihzcmMsIGFkZHJlc3MuYmFzZSwgbWVtb3J5VGVtcFJlZ2lz
dGVyKTsKKyAgICB9CiAgICAgCiAgICAgdm9pZCBzdG9yZUZsb2F0KEZQUmVnaXN0ZXJJRCBzcmMs
IEJhc2VJbmRleCBhZGRyZXNzKQogICAgIHsKQEAgLTI4ODIsNiArMjkzMiwxOCBAQCBwcml2YXRl
OgogICAgIH0KIAogICAgIHRlbXBsYXRlPGludCBkYXRhc2l6ZT4KKyAgICBBTFdBWVNfSU5MSU5F
IHZvaWQgbG9hZFNpZ25lZEFkZHJlc3NlZEJ5VW5zaWduZWRJbW1lZGlhdGUoUmVnaXN0ZXJJRCBy
dCwgUmVnaXN0ZXJJRCBybiwgdW5zaWduZWQgcGltbSkKKyAgICB7CisgICAgICAgIGxvYWRVbnNp
Z25lZEltbWVkaWF0ZTxkYXRhc2l6ZT4ocnQsIHJuLCBwaW1tKTsKKyAgICB9CisKKyAgICB0ZW1w
bGF0ZTxpbnQgZGF0YXNpemU+CisgICAgQUxXQVlTX0lOTElORSB2b2lkIGxvYWRTaWduZWRBZGRy
ZXNzZWRCeVVuc2NhbGVkSW1tZWRpYXRlKFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcm4sIGlu
dCBzaW1tKQorICAgIHsKKyAgICAgICAgbG9hZFVuc2NhbGVkSW1tZWRpYXRlPGRhdGFzaXplPihy
dCwgcm4sIHNpbW0pOworICAgIH0KKworICAgIHRlbXBsYXRlPGludCBkYXRhc2l6ZT4KICAgICBB
TFdBWVNfSU5MSU5FIHZvaWQgc3RvcmVVbnNpZ25lZEltbWVkaWF0ZShSZWdpc3RlcklEIHJ0LCBS
ZWdpc3RlcklEIHJuLCB1bnNpZ25lZCBwaW1tKQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIu
c3RyPGRhdGFzaXplPihydCwgcm4sIHBpbW0pOwpAQCAtMzA2NCw2ICszMTI2LDIwIEBAIHByaXZh
dGU6CiAgICAgfQogCiAgICAgdGVtcGxhdGU8aW50IGRhdGFzaXplPgorICAgIEFMV0FZU19JTkxJ
TkUgYm9vbCB0cnlMb2FkU2lnbmVkV2l0aE9mZnNldChSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklE
IHJuLCBpbnQzMl90IG9mZnNldCkKKyAgICB7CisgICAgICAgIGlmIChBUk02NEFzc2VtYmxlcjo6
Y2FuRW5jb2RlU0ltbU9mZnNldChvZmZzZXQpKSB7CisgICAgICAgICAgICBsb2FkU2lnbmVkQWRk
cmVzc2VkQnlVbnNjYWxlZEltbWVkaWF0ZTxkYXRhc2l6ZT4ocnQsIHJuLCBvZmZzZXQpOworICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKEFSTTY0QXNzZW1i
bGVyOjpjYW5FbmNvZGVQSW1tT2Zmc2V0PGRhdGFzaXplPihvZmZzZXQpKSB7CisgICAgICAgICAg
ICBsb2FkU2lnbmVkQWRkcmVzc2VkQnlVbnNpZ25lZEltbWVkaWF0ZTxkYXRhc2l6ZT4ocnQsIHJu
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4ob2Zmc2V0KSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgdGVtcGxh
dGU8aW50IGRhdGFzaXplPgogICAgIEFMV0FZU19JTkxJTkUgYm9vbCB0cnlMb2FkV2l0aE9mZnNl
dChGUFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcm4sIGludDMyX3Qgb2Zmc2V0KQogICAgIHsK
ICAgICAgICAgaWYgKEFSTTY0QXNzZW1ibGVyOjpjYW5FbmNvZGVTSW1tT2Zmc2V0KG9mZnNldCkp
IHsKQEAgLTMxNTcsNiArMzIzMywxOCBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgTWFjcm9Bc3NlbWJs
ZXJBUk02NDo6bG9hZFVuc2lnbmVkSW1tZWRpYXRlPDE2PihSZWdpc3RlcklEIHJ0LAogfQogCiB0
ZW1wbGF0ZTw+CitBTFdBWVNfSU5MSU5FIHZvaWQgTWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZFNp
Z25lZEFkZHJlc3NlZEJ5VW5zaWduZWRJbW1lZGlhdGU8OD4oUmVnaXN0ZXJJRCBydCwgUmVnaXN0
ZXJJRCBybiwgdW5zaWduZWQgcGltbSkKK3sKKyAgICBtX2Fzc2VtYmxlci5sZHJzYjw2ND4ocnQs
IHJuLCBwaW1tKTsKK30KKwordGVtcGxhdGU8PgorQUxXQVlTX0lOTElORSB2b2lkIE1hY3JvQXNz
ZW1ibGVyQVJNNjQ6OmxvYWRTaWduZWRBZGRyZXNzZWRCeVVuc2lnbmVkSW1tZWRpYXRlPDE2PihS
ZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJuLCB1bnNpZ25lZCBwaW1tKQoreworICAgIG1fYXNz
ZW1ibGVyLmxkcnNoPDY0PihydCwgcm4sIHBpbW0pOworfQorCit0ZW1wbGF0ZTw+CiBBTFdBWVNf
SU5MSU5FIHZvaWQgTWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZFVuc2NhbGVkSW1tZWRpYXRlPDg+
KFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcm4sIGludCBzaW1tKQogewogICAgIG1fYXNzZW1i
bGVyLmxkdXJiKHJ0LCBybiwgc2ltbSk7CkBAIC0zMTY5LDYgKzMyNTcsMTggQEAgQUxXQVlTX0lO
TElORSB2b2lkIE1hY3JvQXNzZW1ibGVyQVJNNjQ6OmxvYWRVbnNjYWxlZEltbWVkaWF0ZTwxNj4o
UmVnaXN0ZXJJRCBydCwKIH0KIAogdGVtcGxhdGU8PgorQUxXQVlTX0lOTElORSB2b2lkIE1hY3Jv
QXNzZW1ibGVyQVJNNjQ6OmxvYWRTaWduZWRBZGRyZXNzZWRCeVVuc2NhbGVkSW1tZWRpYXRlPDg+
KFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcm4sIGludCBzaW1tKQoreworICAgIG1fYXNzZW1i
bGVyLmxkdXJzYjw2ND4ocnQsIHJuLCBzaW1tKTsKK30KKwordGVtcGxhdGU8PgorQUxXQVlTX0lO
TElORSB2b2lkIE1hY3JvQXNzZW1ibGVyQVJNNjQ6OmxvYWRTaWduZWRBZGRyZXNzZWRCeVVuc2Nh
bGVkSW1tZWRpYXRlPDE2PihSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJuLCBpbnQgc2ltbSkK
K3sKKyAgICBtX2Fzc2VtYmxlci5sZHVyc2g8NjQ+KHJ0LCBybiwgc2ltbSk7Cit9CisKK3RlbXBs
YXRlPD4KIEFMV0FZU19JTkxJTkUgdm9pZCBNYWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9yZVVuc2ln
bmVkSW1tZWRpYXRlPDg+KFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcm4sIHVuc2lnbmVkIHBp
bW0pCiB7CiAgICAgbV9hc3NlbWJsZXIuc3RyYihydCwgcm4sIHBpbW0pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgKaW5kZXggNzgyNmI2MmViM2Ew
ZmFmMTAxNDlhZGJkMmQ3ZmZjYjVhMWI3MDlkNy4uNjc3MDJmZmRmOTAyNmExYTBiZjQyMzEwN2Fh
MzQ3MWI3YWMwZmI5MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9YODZBc3NlbWJsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4
NkFzc2VtYmxlci5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKEFTU0VNQkxFUikgJiYg
KENQVShYODYpIHx8IENQVShYODZfNjQpKQogCiAjaW5jbHVkZSAiQXNzZW1ibGVyQnVmZmVyLmgi
CisjaW5jbHVkZSAiQXNzZW1ibGVyQ29tbW9uLmgiCiAjaW5jbHVkZSAiSklUQ29tcGlsYXRpb25F
ZmZvcnQuaCIKICNpbmNsdWRlIDxsaW1pdHMuaD4KICNpbmNsdWRlIDxzdGRpbnQuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKaW5kZXggYWViNzM0Yjg5ZTJkNDgy
ZjUwYWIwNTE2YTkxMTc3OGI2ODliZjYwYy4uMWMzNTE1NDM4MzQ5OTI1YTBjOTExMzE1NGI1YTg5
MjExMWIwMTUwNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJU
b0Fpci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAK
QEAgLTM1Niw3ICszNTYsNyBAQCBwcml2YXRlOgogICAgICAgICAvLyB3b3JrLiBXZSBzb2x2ZSB0
aGlzIGJ5IHJlcXVpcmluZyBhIGp1c3QtYmVmb3JlLWxvd2VyaW5nIHBoYXNlIHRoYXQgbGVnYWxp
emVzIG9mZnNldHMuCiAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgc3VjaCBhIGxlZ2FsaXph
dGlvbiBwaGFzZS4KICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1MjUzMAotICAgICAgICBBU1NFUlQoQXJnOjppc1ZhbGlkQWRkckZvcm0ob2Zmc2V0
KSk7CisgICAgICAgIEFTU0VSVChBcmc6OmlzVmFsaWRBZGRyRm9ybShvZmZzZXQsIHdpZHRoKSk7
CiAKICAgICAgICAgYXV0byBmYWxsYmFjayA9IFsmXSAoKSAtPiBBcmcgewogICAgICAgICAgICAg
cmV0dXJuIEFyZzo6YWRkcih0bXAoYWRkcmVzcyksIG9mZnNldCk7CkBAIC0xNzEwLDYgKzE3MTAs
MTIgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCisgICAgICAg
IGNhc2UgQWJzOiB7CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX01FU1NBR0UoIWlz
WDg2KCksICJBYnMgaXMgbm90IHN1cHBvcnRlZCBuYXRpdmVseSBvbiB4ODYuIEl0IG11c3QgYmUg
cmVwbGFjZWQgYmVmb3JlIGdlbmVyYXRpb24uIik7CisgICAgICAgICAgICBhcHBlbmRVbk9wPEFp
cjo6T29wcywgQWlyOjpPb3BzLCBBYnNEb3VibGUsIEFic0Zsb2F0PihtX3ZhbHVlLT5jaGlsZCgw
KSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwogICAgICAgICBjYXNlIENlaWw6
IHsKICAgICAgICAgICAgIGFwcGVuZFVuT3A8QWlyOjpPb3BzLCBBaXI6Ok9vcHMsIENlaWxEb3Vi
bGUsIENlaWxGbG9hdD4obV92YWx1ZS0+Y2hpbGQoMCkpOwogICAgICAgICAgICAgcmV0dXJuOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmgKaW5kZXggNDIxNzY0ZjhiMzlmMjcyMDY0
MzA2ZWI4MmZkODRlNWEzNjE2NWVhZC4uYTVhYTQyODQzYzZmNGU0MDc5Njg3MzlmZjRhNDdhZDdj
NjcxNjMwYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5oCkBAIC04MDAsMTgg
KzgwMCwzMyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBpZiAoaXNYODYoKSkKICAgICAgICAg
ICAgIHJldHVybiBCMzo6aXNSZXByZXNlbnRhYmxlQXM8aW50MzJfdD4odmFsdWUpOwotICAgICAg
ICAvLyBGSVhNRTogQVJNIGhhcyBzb21lIHNwZWNpZmljIHJ1bGVzIGFib3V0IHdoYXQga2luZHMg
b2YgaW1tZWRpYXRlcyBhcmUgdmFsaWQuCi0gICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI1MzAKKyAgICAgICAgaWYgKGlzQVJNNjQoKSkKKyAgICAg
ICAgICAgIHJldHVybiBpc1VJbnQxMih2YWx1ZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CiAKLSAgICBzdGF0aWMgYm9vbCBpc1ZhbGlkQWRkckZvcm0oaW50MzJfdCBvZmZzZXQpCisg
ICAgc3RhdGljIGJvb2wgaXNWYWxpZEFkZHJGb3JtKGludDMyX3Qgb2Zmc2V0LCBPcHRpb25hbDxX
aWR0aD4gd2lkdGggPSBOdWxsb3B0KQogICAgIHsKICAgICAgICAgaWYgKGlzWDg2KCkpCiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgLy8gRklYTUU6IEFSTSBoYXMgc29tZSBzcGVj
aWZpYyBydWxlcyBhYm91dCB3aGF0IGtpbmRzIG9mIG9mZnNldHMgYXJlIHZhbGlkLgotICAgICAg
ICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUyNTMwCi0gICAg
ICAgIFVOVVNFRF9QQVJBTShvZmZzZXQpOworICAgICAgICBpZiAoaXNBUk02NCgpKSB7CisgICAg
ICAgICAgICBpZiAoIXdpZHRoKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAg
ICAgICAgICBpZiAoaXNWYWxpZFNpZ25lZEltbTkob2Zmc2V0KSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKworICAgICAgICAgICAgc3dpdGNoICgqd2lkdGgpIHsKKyAgICAgICAgICAg
IGNhc2UgV2lkdGg4OgorICAgICAgICAgICAgICAgIHJldHVybiBpc1ZhbGlkU2NhbGVkVUltbTEy
PDg+KG9mZnNldCk7CisgICAgICAgICAgICBjYXNlIFdpZHRoMTY6CisgICAgICAgICAgICAgICAg
cmV0dXJuIGlzVmFsaWRTY2FsZWRVSW1tMTI8MTY+KG9mZnNldCk7CisgICAgICAgICAgICBjYXNl
IFdpZHRoMzI6CisgICAgICAgICAgICAgICAgcmV0dXJuIGlzVmFsaWRTY2FsZWRVSW1tMTI8MzI+
KG9mZnNldCk7CisgICAgICAgICAgICBjYXNlIFdpZHRoNjQ6CisgICAgICAgICAgICAgICAgcmV0
dXJuIGlzVmFsaWRTY2FsZWRVSW1tMTI8NjQ+KG9mZnNldCk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtODQzLDkgKzg1OCw5IEBA
IHB1YmxpYzoKICAgICAgICAgY2FzZSBBZGRyOgogICAgICAgICBjYXNlIFN0YWNrOgogICAgICAg
ICBjYXNlIENhbGxBcmc6Ci0gICAgICAgICAgICByZXR1cm4gaXNWYWxpZEFkZHJGb3JtKG9mZnNl
dCgpKTsKKyAgICAgICAgICAgIHJldHVybiBpc1ZhbGlkQWRkckZvcm0ob2Zmc2V0KCksIHdpZHRo
KTsKICAgICAgICAgY2FzZSBJbmRleDoKLSAgICAgICAgICAgIHJldHVybiBpc1ZhbGlkSW5kZXhG
b3JtKG9mZnNldCgpLCBzY2FsZSgpLCB3aWR0aCk7CisgICAgICAgICAgICByZXR1cm4gaXNWYWxp
ZEluZGV4Rm9ybShzY2FsZSgpLCBvZmZzZXQoKSwgd2lkdGgpOwogICAgICAgICBjYXNlIFJlbENv
bmQ6CiAgICAgICAgIGNhc2UgUmVzQ29uZDoKICAgICAgICAgY2FzZSBEb3VibGVDb25kOgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMKaW5kZXggMmMx
YWVmN2Q1MjM3ZDhhZDc5MjQ2MjFjZDhiZjNjY2JjZThjNmQzOS4uNDI4ODAzYThlOTA0ZDEwNTQ2
OTYzMTY4ZTJjOGVlZGI0ZjJhZDYzZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0Fpck9wY29kZS5vcGNvZGVzCkBAIC0yODUsNyArMjg1LDcgQEAgeDg2XzY0OiBSc2hpZnQ2
NCBVOkc6NjQsIFVEOkc6NjQKICAgICBUbXAqLCBUbXAKICAgICBJbW0sIFRtcAogCi1hcm02NDog
dXJzaGlmdDMyIFU6RzozMiwgVTpHOjMyLCBaRDpHOjMyCithcm02NDogVXJzaGlmdDMyIFU6Rzoz
MiwgVTpHOjMyLCBaRDpHOjMyCiAgICAgVG1wLCBUbXAsIFRtcAogICAgIFRtcCwgSW1tLCBUbXAK
IApAQCAtMzM4LDYgKzMzOCwxMiBAQCB4ODY6IE5vdDY0IFVEOkc6NjQKICAgICBUbXAKICAgICBB
ZGRyCiAKK0Fic0RvdWJsZSBVOkY6NjQsIEQ6Rjo2NAorICAgIFRtcCwgVG1wCisKK0Fic0Zsb2F0
IFU6RjozMiwgRDpGOjMyCisgICAgVG1wLCBUbXAKKwogQ2VpbERvdWJsZSBVOkY6NjQsIFVEOkY6
NjQKICAgICBUbXAsIFRtcAogICAgIHg4NjogQWRkciwgVG1wCkBAIC0zODUsMTcgKzM5MSwxNyBA
QCBNb3ZlIFU6RzpQdHIsIEQ6RzpQdHIKICAgICBUbXAsIFRtcAogICAgIEltbSwgVG1wIGFzIHNp
Z25FeHRlbmQzMlRvUHRyCiAgICAgSW1tNjQsIFRtcAotICAgIHg4NjogQWRkciwgVG1wIGFzIGxv
YWRQdHIgIyBUaGlzIG1lYW5zIHRoYXQgIk1vdmUgQWRkciwgVG1wIiBpcyBjb2RlLWdlbmVyYXRl
ZCBhcyAibG9hZCIgbm90ICJtb3ZlIi4KKyAgICBBZGRyLCBUbXAgYXMgbG9hZFB0ciAjIFRoaXMg
bWVhbnMgdGhhdCAiTW92ZSBBZGRyLCBUbXAiIGlzIGNvZGUtZ2VuZXJhdGVkIGFzICJsb2FkIiBu
b3QgIm1vdmUiLgogICAgIEluZGV4LCBUbXAgYXMgbG9hZFB0cgotICAgIHg4NjogVG1wLCBBZGRy
IGFzIHN0b3JlUHRyCisgICAgVG1wLCBBZGRyIGFzIHN0b3JlUHRyCiAgICAgVG1wLCBJbmRleCBh
cyBzdG9yZVB0cgogICAgIHg4NjogSW1tLCBBZGRyIGFzIHN0b3JlUHRyCiAKIE1vdmUzMiBVOkc6
MzIsIFpEOkc6MzIKICAgICBUbXAsIFRtcCBhcyB6ZXJvRXh0ZW5kMzJUb1B0cgotICAgIHg4Njog
QWRkciwgVG1wIGFzIGxvYWQzMgorICAgIEFkZHIsIFRtcCBhcyBsb2FkMzIKICAgICBJbmRleCwg
VG1wIGFzIGxvYWQzMgotICAgIHg4NjogVG1wLCBBZGRyIGFzIHN0b3JlMzIKKyAgICBUbXAsIEFk
ZHIgYXMgc3RvcmUzMgogICAgIFRtcCwgSW5kZXggYXMgc3RvcmUzMgogICAgIHg4NjogSW1tLCBB
ZGRyIGFzIHN0b3JlMzIKICAgICB4ODY6IEltbSwgSW5kZXggYXMgc3RvcmUzMgpAQCAtNDA1LDM2
ICs0MTEsMzYgQEAgU2lnbkV4dGVuZDMyVG9QdHIgVTpHOjMyLCBEOkc6UHRyCiAKIFplcm9FeHRl
bmQ4VG8zMiBVOkc6OCwgWkQ6RzozMgogICAgIFRtcCwgVG1wCi0gICAgeDg2OiBBZGRyLCBUbXAg
YXMgbG9hZDgKKyAgICBBZGRyLCBUbXAgYXMgbG9hZDgKICAgICBJbmRleCwgVG1wIGFzIGxvYWQ4
CiAKIFNpZ25FeHRlbmQ4VG8zMiBVOkc6OCwgWkQ6RzozMgogICAgIFRtcCwgVG1wCi0gICAgeDg2
OiBBZGRyLCBUbXAgYXMgbG9hZDhTaWduZWRFeHRlbmRUbzMyCisgICAgQWRkciwgVG1wIGFzIGxv
YWQ4U2lnbmVkRXh0ZW5kVG8zMgogICAgIEluZGV4LCBUbXAgYXMgbG9hZDhTaWduZWRFeHRlbmRU
bzMyCiAKIFplcm9FeHRlbmQxNlRvMzIgVTpHOjE2LCBaRDpHOjMyCiAgICAgVG1wLCBUbXAKLSAg
ICB4ODY6IEFkZHIsIFRtcCBhcyBsb2FkMTYKKyAgICBBZGRyLCBUbXAgYXMgbG9hZDE2CiAgICAg
SW5kZXgsIFRtcCBhcyBsb2FkMTYKIAogU2lnbkV4dGVuZDE2VG8zMiBVOkc6MTYsIFpEOkc6MzIK
ICAgICBUbXAsIFRtcAotICAgIHg4NjogQWRkciwgVG1wIGFzIGxvYWQxNlNpZ25lZEV4dGVuZFRv
MzIKKyAgICBBZGRyLCBUbXAgYXMgbG9hZDE2U2lnbmVkRXh0ZW5kVG8zMgogICAgIEluZGV4LCBU
bXAgYXMgbG9hZDE2U2lnbmVkRXh0ZW5kVG8zMgogCiBNb3ZlRmxvYXQgVTpGOjMyLCBEOkY6MzIK
ICAgICBUbXAsIFRtcCBhcyBtb3ZlRG91YmxlCi0gICAgeDg2OiBBZGRyLCBUbXAgYXMgbG9hZEZs
b2F0CisgICAgQWRkciwgVG1wIGFzIGxvYWRGbG9hdAogICAgIEluZGV4LCBUbXAgYXMgbG9hZEZs
b2F0Ci0gICAgeDg2OiBUbXAsIEFkZHIgYXMgc3RvcmVGbG9hdAorICAgIFRtcCwgQWRkciBhcyBz
dG9yZUZsb2F0CiAgICAgVG1wLCBJbmRleCBhcyBzdG9yZUZsb2F0CiAKIE1vdmVEb3VibGUgVTpG
OjY0LCBEOkY6NjQKICAgICBUbXAsIFRtcAotICAgIHg4NjogQWRkciwgVG1wIGFzIGxvYWREb3Vi
bGUKKyAgICBBZGRyLCBUbXAgYXMgbG9hZERvdWJsZQogICAgIEluZGV4LCBUbXAgYXMgbG9hZERv
dWJsZQotICAgIHg4NjogVG1wLCBBZGRyIGFzIHN0b3JlRG91YmxlCisgICAgVG1wLCBBZGRyIGFz
IHN0b3JlRG91YmxlCiAgICAgVG1wLCBJbmRleCBhcyBzdG9yZURvdWJsZQogCiBNb3ZlWmVyb1Rv
RG91YmxlIEQ6Rjo2NApAQCAtNDUyLDM5ICs0NTgsMzkgQEAgTW92ZTMyVG9GbG9hdCBVOkc6MzIs
IEQ6RjozMgogCiA2NDogTW92ZURvdWJsZVRvNjQgVTpGOjY0LCBEOkc6NjQKICAgICBUbXAsIFRt
cAotICAgIHg4NjogQWRkciwgVG1wIGFzIGxvYWQ2NAorICAgIEFkZHIsIFRtcCBhcyBsb2FkNjQK
ICAgICBJbmRleCwgVG1wIGFzIGxvYWQ2NAogCiBNb3ZlRmxvYXRUbzMyIFU6RjozMiwgRDpHOjMy
CiAgICAgVG1wLCBUbXAKLSAgICB4ODY6IEFkZHIsIFRtcCBhcyBsb2FkMzIKKyAgICBBZGRyLCBU
bXAgYXMgbG9hZDMyCiAgICAgSW5kZXgsIFRtcCBhcyBsb2FkMzIKIAogTG9hZDggVTpHOjgsIFpE
Okc6MzIKLSAgICB4ODY6IEFkZHIsIFRtcAorICAgIEFkZHIsIFRtcAogICAgIEluZGV4LCBUbXAK
IAogU3RvcmU4IFU6Rzo4LCBEOkc6OAogICAgIFRtcCwgSW5kZXgKLSAgICB4ODY6IFRtcCwgQWRk
cgorICAgIFRtcCwgQWRkcgogICAgIHg4NjogSW1tLCBJbmRleAogICAgIHg4NjogSW1tLCBBZGRy
CiAKIExvYWQ4U2lnbmVkRXh0ZW5kVG8zMiBVOkc6OCwgWkQ6RzozMgotICAgIHg4NjogQWRkciwg
VG1wCisgICAgQWRkciwgVG1wCiAgICAgSW5kZXgsIFRtcAogCiBMb2FkMTYgVTpHOjE2LCBaRDpH
OjMyCi0gICAgeDg2OiBBZGRyLCBUbXAKKyAgICBBZGRyLCBUbXAKICAgICBJbmRleCwgVG1wCiAK
IExvYWQxNlNpZ25lZEV4dGVuZFRvMzIgVTpHOjE2LCBaRDpHOjMyCi0gICAgeDg2OiBBZGRyLCBU
bXAKKyAgICBBZGRyLCBUbXAKICAgICBJbmRleCwgVG1wCiAKIFN0b3JlMTYgVTpHOjE2LCBEOkc6
MTYKICAgICBUbXAsIEluZGV4Ci0gICAgeDg2OiBUbXAsIEFkZHIKKyAgICBUbXAsIEFkZHIKIAog
Q29tcGFyZTMyIFU6RzozMiwgVTpHOjMyLCBVOkc6MzIsIFpEOkc6MzIKICAgICBSZWxDb25kLCBU
bXAsIFRtcCwgVG1wCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268290</attachid>
            <date>2016-01-05 10:47:56 -0800</date>
            <delta_ts>2016-01-05 12:22:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152737-20160105194719.patch</filename>
            <type>text/plain</type>
            <size>26145</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0NTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
ZmVjNzE3NzgyMjYxZWIxNTViMjI3Y2FhMTEzYzFkM2E1YmJlM2Q3Li41YjU3ZGZlMmI5ZmVkNWY4
MzYxMWU3N2YxZjlkNGQ3MmJjNTdjYzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OSBAQAorMjAxNi0wMS0wNSAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBbSlNDXSBHZXQgbW9yZSBvZiB0ZXN0YjMgdG8gcGFzcyBvbiBBUk02
NAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUyNzM3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQSBidW5j
aCBvZiBtaW5vciBidWdzIGFuZCBtaXNzaW5nIGZ1bmN0aW9uIHRvIG1ha2UgbW9zdCBvZiB0ZXN0
YjMKKyAgICAgICAgcnVuIG9uIEFSTTY0LgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBhc3NlbWJsZXIvQVJNNjRBc3NlbWJs
ZXIuaDoKKyAgICAgICAgKEpTQzo6QVJNNjRBc3NlbWJsZXI6OmNhbkVuY29kZVBJbW1PZmZzZXQp
OgorICAgICAgICAoSlNDOjpBUk02NEFzc2VtYmxlcjo6Y2FuRW5jb2RlU0ltbU9mZnNldCk6Cisg
ICAgICAgIChKU0M6OmlzSW50OSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmlzVUludDEyKTog
RGVsZXRlZC4KKyAgICAgICAgKiBhc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaDoKKyAgICAgICAg
KiBhc3NlbWJsZXIvQXNzZW1ibGVyQ29tbW9uLmg6IEFkZGVkLgorICAgICAgICAoSlNDOjppc0lu
dDkpOgorICAgICAgICAoSlNDOjppc1VJbnQxMik6CisgICAgICAgIChKU0M6OmlzVmFsaWRTY2Fs
ZWRVSW1tMTIpOgorICAgICAgICAoSlNDOjppc1ZhbGlkU2lnbmVkSW1tOSk6CisgICAgICAgICog
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3Nl
bWJsZXJBUk02NDo6bG9hZDE2U2lnbmVkRXh0ZW5kVG8zMik6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNNjQ6OmxvYWQ4U2lnbmVkRXh0ZW5kVG8zMik6CisgICAgICAgIChKU0M6Ok1h
Y3JvQXNzZW1ibGVyQVJNNjQ6OnN0b3JlMTYpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxl
ckFSTTY0OjphYnNGbG9hdCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6Omxv
YWRGbG9hdCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnN0b3JlRmxvYXQp
OgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0Ojpsb2FkU2lnbmVkQWRkcmVzc2Vk
QnlVbnNpZ25lZEltbWVkaWF0ZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6
OmxvYWRTaWduZWRBZGRyZXNzZWRCeVVuc2NhbGVkSW1tZWRpYXRlKToKKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXJBUk02NDo6dHJ5TG9hZFNpZ25lZFdpdGhPZmZzZXQpOgorICAgICAgICAo
SlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0Ojpsb2FkU2lnbmVkQWRkcmVzc2VkQnlVbnNpZ25lZElt
bWVkaWF0ZTw4Pik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OmxvYWRTaWdu
ZWRBZGRyZXNzZWRCeVVuc2lnbmVkSW1tZWRpYXRlPDE2Pik6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNNjQ6OmxvYWRTaWduZWRBZGRyZXNzZWRCeVVuc2NhbGVkSW1tZWRpYXRlPDg+
KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZFNpZ25lZEFkZHJlc3Nl
ZEJ5VW5zY2FsZWRJbW1lZGlhdGU8MTY+KToKKyAgICAgICAgKiBhc3NlbWJsZXIvWDg2QXNzZW1i
bGVyLmg6CisgICAgICAgICogYjMvQjNMb3dlclRvQWlyLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6
OkFpcjo6TG93ZXJUb0Fpcjo6ZWZmZWN0aXZlQWRkcik6CisgICAgICAgIChKU0M6OkIzOjpBaXI6
Okxvd2VyVG9BaXI6Omxvd2VyKToKKyAgICAgICAgKiBiMy9haXIvQWlyQXJnLmg6CisgICAgICAg
IChKU0M6OkIzOjpBaXI6OkFyZzo6aXNWYWxpZEltbUZvcm0pOgorICAgICAgICAoSlNDOjpCMzo6
QWlyOjpBcmc6OmlzVmFsaWRBZGRyRm9ybSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6
aXNWYWxpZEZvcm0pOgorICAgICAgICAqIGIzL2Fpci9BaXJPcGNvZGUub3Bjb2RlczoKKwogMjAx
Ni0wMS0wNCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBUdXJuIG9mZiBJbnRlcm5hbCBGdW5jdGlvbiBpbmxpbmluZyBpbiB0aGUgREZHIGZvciBzdXBl
ciBjYWxscy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjM2N2U4YmNlZmNkM2Y4
MzVjOWI1MDc2NTc5NGUzZGM2YjI5ZDU5OC4uYjgyZTZhZjQxYTkyMDJhMmZiNDY4ZmY2MGE5Yzhi
M2E5NDk0ZjAyOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTExNDksNiArMTE0
OSw3IEBACiAJCTQzNDIyQTY3MUMxNjI2NzgwMEUyRUI5OCAvKiBCM1JlZHVjZURvdWJsZVRvRmxv
YXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNDIy
QTY1MUMxNjIyMUUwMEUyRUI5OCAvKiBCM1JlZHVjZURvdWJsZVRvRmxvYXQuaCAqLzsgfTsKIAkJ
NDNBQjI2QzYxQzFBNTM1OTAwRDgyQUU2IC8qIEIzTWF0aEV4dHJhcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDNBQjI2QzUxQzFBNTJGNzAwRDgyQUU2
IC8qIEIzTWF0aEV4dHJhcy5oICovOyB9OwogCQk0M0FCMjZDNzFDMUE1MzVDMDBEODJBRTYgLyog
QjNNYXRoRXh0cmFzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQzQUIyNkM0MUMxQTUyRjcwMEQ4MkFFNiAvKiBCM01hdGhFeHRyYXMuY3BwICovOyB9
OworCQk0M0MzOTJBQjFDM0JFQjA1MDAyNDFGNTMgLyogQXNzZW1ibGVyQ29tbW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0M0MzOTJBQTFDM0JFQjAw
MDAyNDFGNTMgLyogQXNzZW1ibGVyQ29tbW9uLmggKi87IH07CiAJCTQ0NDNBRTMzMTZFMTg4RDkw
MDc2RjExMCAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRjBFQjYxMDVDODZDNkIwMEU2REYxQiAvKiBGb3Vu
ZGF0aW9uLmZyYW1ld29yayAqLzsgfTsKIAkJNDUxNTM5QjkxMkRDOTk0NTAwRUY3QUM0IC8qIFlh
cnIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1MTUz
OUI4MTJEQzk5NDUwMEVGN0FDNCAvKiBZYXJyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTI2NzhGOEUxQTAzMTAwOTAwNkEzMDZEIC8qIEJhc2lj
QmxvY2tMb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MjY3OEY4QzFBMDMxMDA5MDA2QTMwNkQgLyogQmFzaWNCbG9ja0xvY2F0aW9uLmNw
cCAqLzsgfTsKQEAgLTIwNTUsOCArMjA1Niw4IEBACiAJCUZFN0JBNjBGMUExQTdDRUMwMEYxRjdC
NCAvKiBIZWFwVmVyaWZpZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRkU3QkE2MEQxQTFBN0NFQzAwRjFGN0I0IC8qIEhlYXBWZXJpZmllci5jcHAg
Ki87IH07CiAJCUZFN0JBNjEwMUExQTdDRUMwMEYxRjdCNCAvKiBIZWFwVmVyaWZpZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFN0JBNjBFMUExQTdD
RUMwMEYxRjdCNCAvKiBIZWFwVmVyaWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlGRTdDNDE5NjFCOTdGQzRCMDBGNEQ1OTggLyogUGluZ1Bv
bmdTdGFja092ZXJmbG93VGVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGRURBNTBENDFCOTdGNDQyMDA5QTNCNEYgLyogUGluZ1BvbmdTdGFja092
ZXJmbG93VGVzdC5jcHAgKi87IH07Ci0JCUZFOTlCMjQ5MUMyNEMzRDMwMEM4MjE1OSAvKiBKSVRO
ZWdHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEZFOTlCMjQ4MUMyNEI2RDMwMEM4MjE1OSAvKiBKSVROZWdHZW5lcmF0b3IuaCAqLzsgc2V0
dGluZ3MgPSB7QVNTRVRfVEFHUyA9ICgpOyB9OyB9OwotCQlGRTk5QjI0QTFDMjRDM0Q3MDBDODIx
NTkgLyogSklUTmVnR2VuZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZFOTlCMjQ3MUMyNEI2RDMwMEM4MjE1OSAvKiBKSVROZWdHZW5lcmF0
b3IuY3BwICovOyBzZXR0aW5ncyA9IHtBU1NFVF9UQUdTID0gKCk7IH07IH07CisJCUZFOTlCMjQ5
MUMyNEMzRDMwMEM4MjE1OSAvKiBKSVROZWdHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFOTlCMjQ4MUMyNEI2RDMwMEM4MjE1OSAvKiBK
SVROZWdHZW5lcmF0b3IuaCAqLzsgfTsKKwkJRkU5OUIyNEExQzI0QzNENzAwQzgyMTU5IC8qIEpJ
VE5lZ0dlbmVyYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGRTk5QjI0NzFDMjRCNkQzMDBDODIxNTkgLyogSklUTmVnR2VuZXJhdG9yLmNwcCAq
LzsgfTsKIAkJRkVBMDg2MjAxODJCN0EwNDAwRjZEODUxIC8qIEJyZWFrcG9pbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFQTA4NjFFMTgyQjdBMDQw
MEY2RDg1MSAvKiBCcmVha3BvaW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRkVBMDg2MjExODJCN0EwNDAwRjZEODUxIC8qIERlYnVnZ2VyUHJp
bWl0aXZlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RkVBMDg2MUYxODJCN0EwNDAwRjZEODUxIC8qIERlYnVnZ2VyUHJpbWl0aXZlcy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZFQTFFNDM5MUMyMTNB
MkIwMDI3N0ExNiAvKiBWYWx1ZVByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRkVBMUU0MzgxQzIxM0EyNjAwMjc3QTE2IC8qIFZhbHVlUHJv
ZmlsZS5jcHAgKi87IH07CkBAIC0zMjQ5LDYgKzMyNTAsNyBAQAogCQk0MzQyMkE2NTFDMTYyMjFF
MDBFMkVCOTggLyogQjNSZWR1Y2VEb3VibGVUb0Zsb2F0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IEIzUmVkdWNlRG91YmxlVG9GbG9hdC5oOyBwYXRoID0gYjMvQjNSZWR1Y2VE
b3VibGVUb0Zsb2F0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzQUIyNkM0MUMx
QTUyRjcwMEQ4MkFFNiAvKiBCM01hdGhFeHRyYXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gQjNNYXRoRXh0cmFzLmNwcDsgcGF0aCA9IGIzL0IzTWF0aEV4dHJhcy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzQUIyNkM1MUMxQTUyRjcwMEQ4MkFF
NiAvKiBCM01hdGhFeHRyYXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQjNN
YXRoRXh0cmFzLmg7IHBhdGggPSBiMy9CM01hdGhFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDNDMzkyQUExQzNCRUIwMDAwMjQxRjUzIC8qIEFzc2VtYmxlckNvbW1vbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBc3NlbWJsZXJDb21tb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ5MDk3RUUwRjhGODFCNTAwNzZBMzI3IC8qIEZl
YXR1cmVEZWZpbmVzLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEZl
YXR1cmVEZWZpbmVzLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NTE1
MzlCODEyREM5OTQ1MDBFRjdBQzQgLyogWWFyci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBZYXJyLmg7IHBhdGggPSB5YXJyL1lhcnIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDVFMTJEODgwNkE0OUIwRjAwRTlERjg0IC8qIGpzYy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBqc2MuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDQ7IH07CkBAIC02MzgyLDYgKzYzODQsNyBA
QAogCQkJCTg2QUREMTQzMEZEREVBOTgwMDA2RUVDMiAvKiBBUk12N0Fzc2VtYmxlci5oICovLAog
CQkJCTk2ODhDQjEzMEVEMTJCNEUwMDFENjQ5RiAvKiBBc3NlbWJsZXJCdWZmZXIuaCAqLywKIAkJ
CQk4NkQzQjJDMTEwMTU2QkRFMDAyODY1RTcgLyogQXNzZW1ibGVyQnVmZmVyV2l0aENvbnN0YW50
UG9vbC5oICovLAorCQkJCTQzQzM5MkFBMUMzQkVCMDAwMDI0MUY1MyAvKiBBc3NlbWJsZXJDb21t
b24uaCAqLywKIAkJCQk4NkUxMTZCMDBGRTc1QUM4MDBCNTEyQkMgLyogQ29kZUxvY2F0aW9uLmgg
Ki8sCiAJCQkJMEYzNzMwOEUxQzBDRDY4NTAwMDUyQkZBIC8qIERpc2FsbG93TWFjcm9TY3JhdGNo
UmVnaXN0ZXJVc2FnZS5oICovLAogCQkJCTBGRjQyNzU2MTU5MTRBMjAwMDRDQjlGRiAvKiBMaW5r
QnVmZmVyLmNwcCAqLywKQEAgLTcxOTcsNiArNzIwMCw3IEBACiAJCQkJMEZBNTgxQkMxNTBFOTUz
MDAwQjlBMkQ5IC8qIERGR05vZGVUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCOUNFNzE5
RDBCQTdEMDBCMUQxQjUgLyogREZHT2JqZWN0QWxsb2NhdGlvblNpbmtpbmdQaGFzZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEYyQjlDRTkxOUQwQkE3RDAwQjFEMUI1IC8qIERGR09iamVjdE1hdGVy
aWFsaXphdGlvbkRhdGEuaCBpbiBIZWFkZXJzICovLAorCQkJCTQzQzM5MkFCMUMzQkVCMDUwMDI0
MUY1MyAvKiBBc3NlbWJsZXJDb21tb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RUM5REQwMTMy
OERGODIwMDJCMkFENyAvKiBERkdPcGVyYXRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0Q4
OUNGRTE3QTBCOENDMDA3NzNBRDggLyogREZHT1NSQXZhaWxhYmlsaXR5QW5hbHlzaXNQaGFzZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEODJFNTcxNDFEQUYxMDAwMTc5Qzk0IC8qIERGR09TUkVu
dHJ5LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvQVJNNjRBc3NlbWJsZXIuaAppbmRleCAwODBlNzYxMDViM2I4YTVmMGE3YzNlN2I1MDA0Mzdk
NmRlZGQxYzRkLi4zY2U1NGMyNzg1NTkzYWI2NTI0ODM1M2M2NmI3ZGQwYmZmODkzMTc0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTTY0QXNzZW1ibGVyLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk02NEFzc2VtYmxlci5oCkBA
IC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKEFTU0VNQkxFUikgJiYgQ1BVKEFSTTY0KQogCiAj
aW5jbHVkZSAiQXNzZW1ibGVyQnVmZmVyLmgiCisjaW5jbHVkZSAiQXNzZW1ibGVyQ29tbW9uLmgi
CiAjaW5jbHVkZSA8bGltaXRzLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CkBAIC01MiwxMSArNTMsNiBAQCBBTFdBWVNfSU5MSU5FIGJvb2wg
aXNJbnQ3KGludDMyX3QgdmFsdWUpCiAgICAgcmV0dXJuIHZhbHVlID09ICgodmFsdWUgPDwgMjUp
ID4+IDI1KTsKIH0KIAotQUxXQVlTX0lOTElORSBib29sIGlzSW50OShpbnQzMl90IHZhbHVlKQot
ewotICAgIHJldHVybiB2YWx1ZSA9PSAoKHZhbHVlIDw8IDIzKSA+PiAyMyk7Ci19Ci0KIEFMV0FZ
U19JTkxJTkUgYm9vbCBpc0ludDExKGludDMyX3QgdmFsdWUpCiB7CiAgICAgcmV0dXJuIHZhbHVl
ID09ICgodmFsdWUgPDwgMjEpID4+IDIxKTsKQEAgLTY3LDE2ICs2Myw2IEBAIEFMV0FZU19JTkxJ
TkUgYm9vbCBpc1VJbnQ1KGludDMyX3QgdmFsdWUpCiAgICAgcmV0dXJuICEodmFsdWUgJiB+MHgx
Zik7CiB9CiAKLUFMV0FZU19JTkxJTkUgYm9vbCBpc1VJbnQxMihpbnQzMl90IHZhbHVlKQotewot
ICAgIHJldHVybiAhKHZhbHVlICYgfjB4ZmZmKTsKLX0KLQotQUxXQVlTX0lOTElORSBib29sIGlz
VUludDEyKGludHB0cl90IHZhbHVlKQotewotICAgIHJldHVybiAhKHZhbHVlICYgfjB4ZmZmTCk7
Ci19Ci0KIGNsYXNzIFVJbnQ1IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBVSW50NShpbnQgdmFs
dWUpCkBAIC03MTcsMTkgKzcwMywxMiBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8aW50IGRhdGFz
aXplPgogICAgIHN0YXRpYyBib29sIGNhbkVuY29kZVBJbW1PZmZzZXQoaW50MzJfdCBvZmZzZXQp
CiAgICAgewotICAgICAgICBpbnQzMl90IG1heFBJbW0gPSA0MDk1ICogKGRhdGFzaXplIC8gOCk7
Ci0gICAgICAgIGlmIChvZmZzZXQgPCAwKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICBpZiAob2Zmc2V0ID4gbWF4UEltbSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICAgICAgaWYgKG9mZnNldCAmICgoZGF0YXNpemUgLyA4ICkgLSAxKSkKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybiBpc1ZhbGlk
U2NhbGVkVUltbTEyPGRhdGFzaXplPihvZmZzZXQpOwogICAgIH0KIAogICAgIHN0YXRpYyBib29s
IGNhbkVuY29kZVNJbW1PZmZzZXQoaW50MzJfdCBvZmZzZXQpCiAgICAgewotICAgICAgICByZXR1
cm4gaXNJbnQ5KG9mZnNldCk7CisgICAgICAgIHJldHVybiBpc1ZhbGlkU2lnbmVkSW1tOShvZmZz
ZXQpOwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvQVJNdjdBc3NlbWJsZXIuaAppbmRleCBkNzBhMmU3ZGVhYWI3ZDYzZWIxNWEzNjU4YmFk
YzdmZDRhZmE5NGU3Li42YjlmMzA1ZTkyNzQ2OWYxYjIzNWRiYmY3YTI1ZDIzMTg5M2ZkZmRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVy
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5o
CkBAIC0zMCw2ICszMCw3IEBACiAjaWYgRU5BQkxFKEFTU0VNQkxFUikgJiYgQ1BVKEFSTV9USFVN
QjIpCiAKICNpbmNsdWRlICJBc3NlbWJsZXJCdWZmZXIuaCIKKyNpbmNsdWRlICJBc3NlbWJsZXJD
b21tb24uaCIKICNpbmNsdWRlIDxsaW1pdHMuaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvQXNzZW1ibGVyQ29tbW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL0Fzc2VtYmxlckNvbW1vbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwNmZkOWM4YzMwOGE4ZTQ1
MzM2YTAzMWU3ZGJiYjUwZGU4ODMzM2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL0Fzc2VtYmxlckNvbW1vbi5oCkBAIC0wLDAgKzEsNjIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTQsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIEFzc2VtYmxlckNvbW1vbl9oCisjZGVmaW5lIEFzc2VtYmxlckNvbW1vbl9oCisKK25h
bWVzcGFjZSBKU0MgeworCitBTFdBWVNfSU5MSU5FIGJvb2wgaXNJbnQ5KGludDMyX3QgdmFsdWUp
Cit7CisgICAgcmV0dXJuIHZhbHVlID09ICgodmFsdWUgPDwgMjMpID4+IDIzKTsKK30KKwordGVt
cGxhdGU8dHlwZW5hbWUgVHlwZT4KK0FMV0FZU19JTkxJTkUgYm9vbCBpc1VJbnQxMihUeXBlIHZh
bHVlKQoreworICAgIHJldHVybiAhKHZhbHVlICYgfnN0YXRpY19jYXN0PFR5cGU+KDB4ZmZmKSk7
Cit9CisKK3RlbXBsYXRlPGludCBkYXRhc2l6ZT4KK3N0YXRpYyBib29sIGlzVmFsaWRTY2FsZWRV
SW1tMTIoaW50MzJfdCBvZmZzZXQpCit7CisgICAgaW50MzJfdCBtYXhQSW1tID0gNDA5NSAqIChk
YXRhc2l6ZSAvIDgpOworICAgIGlmIChvZmZzZXQgPCAwKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgaWYgKG9mZnNldCA+IG1heFBJbW0pCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBp
ZiAob2Zmc2V0ICYgKChkYXRhc2l6ZSAvIDgpIC0gMSkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIGJvb2wgaXNWYWxpZFNpZ25lZEltbTkoaW50
MzJfdCB2YWx1ZSkKK3sKKyAgICByZXR1cm4gaXNJbnQ5KHZhbHVlKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgSlNDLgorCisjZW5kaWYgLy8gQXNzZW1ibGVyQ29tbW9uX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKaW5kZXgg
YWVhNjY2ZTg4ZGRmNDI0Njg3ZjA5MzY1NWIzZWI4OGFkMDljYTFkNi4uZTM0ZjAzNGY3YjgxYWRk
NmNlZDlhMmNhMWQ1ZDg0ZjkzNjk4OGM1ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKQEAgLTk4NSw2ICs5ODUsMTUg
QEAgcHVibGljOgogICAgICAgICBsb2FkMTYoYWRkcmVzcywgZGVzdCk7CiAgICAgfQogCisgICAg
dm9pZCBsb2FkMTZTaWduZWRFeHRlbmRUbzMyKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdp
c3RlcklEIGRlc3QpCisgICAgeworICAgICAgICBpZiAodHJ5TG9hZFNpZ25lZFdpdGhPZmZzZXQ8
MTY+KGRlc3QsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5vZmZzZXQpKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIHNpZ25FeHRlbmQzMlRvUHRyKFRydXN0ZWRJbW0zMihhZGRyZXNzLm9m
ZnNldCksIGdldENhY2hlZE1lbW9yeVRlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpKTsKKyAg
ICAgICAgbV9hc3NlbWJsZXIubGRyc2g8MzI+KGRlc3QsIGFkZHJlc3MuYmFzZSwgbWVtb3J5VGVt
cFJlZ2lzdGVyKTsKKyAgICB9CisKICAgICB2b2lkIGxvYWQxNlNpZ25lZEV4dGVuZFRvMzIoQmFz
ZUluZGV4IGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIGlmICghYWRk
cmVzcy5vZmZzZXQgJiYgKCFhZGRyZXNzLnNjYWxlIHx8IGFkZHJlc3Muc2NhbGUgPT0gMSkpIHsK
QEAgLTEwMzYsNiArMTA0NSwxNSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX2NhY2hlZE1lbW9y
eVRlbXBSZWdpc3Rlci5pbnZhbGlkYXRlKCk7CiAgICAgfQogCisgICAgdm9pZCBsb2FkOFNpZ25l
ZEV4dGVuZFRvMzIoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAg
ICB7CisgICAgICAgIGlmICh0cnlMb2FkU2lnbmVkV2l0aE9mZnNldDw4PihkZXN0LCBhZGRyZXNz
LmJhc2UsIGFkZHJlc3Mub2Zmc2V0KSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBz
aWduRXh0ZW5kMzJUb1B0cihUcnVzdGVkSW1tMzIoYWRkcmVzcy5vZmZzZXQpLCBnZXRDYWNoZWRN
ZW1vcnlUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKSk7CisgICAgICAgIG1fYXNzZW1ibGVy
LmxkcnNiPDMyPihkZXN0LCBhZGRyZXNzLmJhc2UsIG1lbW9yeVRlbXBSZWdpc3Rlcik7CisgICAg
fQorCiAgICAgdm9pZCBsb2FkOFNpZ25lZEV4dGVuZFRvMzIoQmFzZUluZGV4IGFkZHJlc3MsIFJl
Z2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIGlmICghYWRkcmVzcy5vZmZzZXQgJiYgIWFk
ZHJlc3Muc2NhbGUpIHsKQEAgLTExODYsNiArMTIwNCwxNSBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiBsYWJlbDsKICAgICB9CiAKKyAgICB2b2lkIHN0b3JlMTYoUmVnaXN0ZXJJRCBzcmMsIElt
cGxpY2l0QWRkcmVzcyBhZGRyZXNzKQorICAgIHsKKyAgICAgICAgaWYgKHRyeVN0b3JlV2l0aE9m
ZnNldDwxNj4oc3JjLCBhZGRyZXNzLmJhc2UsIGFkZHJlc3Mub2Zmc2V0KSkKKyAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICBzaWduRXh0ZW5kMzJUb1B0cihUcnVzdGVkSW1tMzIoYWRkcmVz
cy5vZmZzZXQpLCBnZXRDYWNoZWRNZW1vcnlUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKSk7
CisgICAgICAgIG1fYXNzZW1ibGVyLnN0cjwxNj4oc3JjLCBhZGRyZXNzLmJhc2UsIG1lbW9yeVRl
bXBSZWdpc3Rlcik7CisgICAgfQorCiAgICAgdm9pZCBzdG9yZTE2KFJlZ2lzdGVySUQgc3JjLCBC
YXNlSW5kZXggYWRkcmVzcykKICAgICB7CiAgICAgICAgIGlmICghYWRkcmVzcy5vZmZzZXQgJiYg
KCFhZGRyZXNzLnNjYWxlIHx8IGFkZHJlc3Muc2NhbGUgPT0gMSkpIHsKQEAgLTEyNjIsNiArMTI4
OSwxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLmZhYnM8NjQ+KGRlc3QsIHNyYyk7
CiAgICAgfQogCisgICAgdm9pZCBhYnNGbG9hdChGUFJlZ2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVy
SUQgZGVzdCkKKyAgICB7CisgICAgICAgIG1fYXNzZW1ibGVyLmZhYnM8MzI+KGRlc3QsIHNyYyk7
CisgICAgfQorCiAgICAgdm9pZCBhZGREb3VibGUoRlBSZWdpc3RlcklEIHNyYywgRlBSZWdpc3Rl
cklEIGRlc3QpCiAgICAgewogICAgICAgICBhZGREb3VibGUoZGVzdCwgc3JjLCBkZXN0KTsKQEAg
LTE0NDksNiArMTQ4MSwxNSBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLmxkcjw2ND4o
ZGVzdCwgbWVtb3J5VGVtcFJlZ2lzdGVyLCBBUk02NFJlZ2lzdGVyczo6enIpOwogICAgIH0KIAor
ICAgIHZvaWQgbG9hZEZsb2F0KEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBGUFJlZ2lzdGVySUQg
ZGVzdCkKKyAgICB7CisgICAgICAgIGlmICh0cnlMb2FkV2l0aE9mZnNldDwzMj4oZGVzdCwgYWRk
cmVzcy5iYXNlLCBhZGRyZXNzLm9mZnNldCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgc2lnbkV4dGVuZDMyVG9QdHIoVHJ1c3RlZEltbTMyKGFkZHJlc3Mub2Zmc2V0KSwgZ2V0Q2Fj
aGVkTWVtb3J5VGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOworICAgICAgICBtX2Fzc2Vt
Ymxlci5sZHI8MzI+KGRlc3QsIGFkZHJlc3MuYmFzZSwgbWVtb3J5VGVtcFJlZ2lzdGVyKTsKKyAg
ICB9CisKICAgICB2b2lkIGxvYWRGbG9hdChCYXNlSW5kZXggYWRkcmVzcywgRlBSZWdpc3RlcklE
IGRlc3QpCiAgICAgewogICAgICAgICBpZiAoIWFkZHJlc3Mub2Zmc2V0ICYmICghYWRkcmVzcy5z
Y2FsZSB8fCBhZGRyZXNzLnNjYWxlID09IDIpKSB7CkBAIC0xNTk2LDYgKzE2MzcsMTUgQEAgcHVi
bGljOgogICAgICAgICBtX2Fzc2VtYmxlci5hZGQ8NjQ+KG1lbW9yeVRlbXBSZWdpc3RlciwgbWVt
b3J5VGVtcFJlZ2lzdGVyLCBhZGRyZXNzLmluZGV4LCBBUk02NEFzc2VtYmxlcjo6VVhUWCwgYWRk
cmVzcy5zY2FsZSk7CiAgICAgICAgIG1fYXNzZW1ibGVyLnN0cjw2ND4oc3JjLCBhZGRyZXNzLmJh
c2UsIG1lbW9yeVRlbXBSZWdpc3Rlcik7CiAgICAgfQorCisgICAgdm9pZCBzdG9yZUZsb2F0KEZQ
UmVnaXN0ZXJJRCBzcmMsIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQorICAgIHsKKyAgICAgICAg
aWYgKHRyeVN0b3JlV2l0aE9mZnNldDwzMj4oc3JjLCBhZGRyZXNzLmJhc2UsIGFkZHJlc3Mub2Zm
c2V0KSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBzaWduRXh0ZW5kMzJUb1B0cihU
cnVzdGVkSW1tMzIoYWRkcmVzcy5vZmZzZXQpLCBnZXRDYWNoZWRNZW1vcnlUZW1wUmVnaXN0ZXJJ
REFuZEludmFsaWRhdGUoKSk7CisgICAgICAgIG1fYXNzZW1ibGVyLnN0cjwzMj4oc3JjLCBhZGRy
ZXNzLmJhc2UsIG1lbW9yeVRlbXBSZWdpc3Rlcik7CisgICAgfQogICAgIAogICAgIHZvaWQgc3Rv
cmVGbG9hdChGUFJlZ2lzdGVySUQgc3JjLCBCYXNlSW5kZXggYWRkcmVzcykKICAgICB7CkBAIC0y
ODgyLDYgKzI5MzIsMTggQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICB0ZW1wbGF0ZTxpbnQgZGF0
YXNpemU+CisgICAgQUxXQVlTX0lOTElORSB2b2lkIGxvYWRTaWduZWRBZGRyZXNzZWRCeVVuc2ln
bmVkSW1tZWRpYXRlKFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcm4sIHVuc2lnbmVkIHBpbW0p
CisgICAgeworICAgICAgICBsb2FkVW5zaWduZWRJbW1lZGlhdGU8ZGF0YXNpemU+KHJ0LCBybiwg
cGltbSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8aW50IGRhdGFzaXplPgorICAgIEFMV0FZU19J
TkxJTkUgdm9pZCBsb2FkU2lnbmVkQWRkcmVzc2VkQnlVbnNjYWxlZEltbWVkaWF0ZShSZWdpc3Rl
cklEIHJ0LCBSZWdpc3RlcklEIHJuLCBpbnQgc2ltbSkKKyAgICB7CisgICAgICAgIGxvYWRVbnNj
YWxlZEltbWVkaWF0ZTxkYXRhc2l6ZT4ocnQsIHJuLCBzaW1tKTsKKyAgICB9CisKKyAgICB0ZW1w
bGF0ZTxpbnQgZGF0YXNpemU+CiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHN0b3JlVW5zaWduZWRJ
bW1lZGlhdGUoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBybiwgdW5zaWduZWQgcGltbSkKICAg
ICB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnN0cjxkYXRhc2l6ZT4ocnQsIHJuLCBwaW1tKTsKQEAg
LTMwNjQsNiArMzEyNiwyMCBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIHRlbXBsYXRlPGludCBk
YXRhc2l6ZT4KKyAgICBBTFdBWVNfSU5MSU5FIGJvb2wgdHJ5TG9hZFNpZ25lZFdpdGhPZmZzZXQo
UmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBybiwgaW50MzJfdCBvZmZzZXQpCisgICAgeworICAg
ICAgICBpZiAoQVJNNjRBc3NlbWJsZXI6OmNhbkVuY29kZVNJbW1PZmZzZXQob2Zmc2V0KSkgewor
ICAgICAgICAgICAgbG9hZFNpZ25lZEFkZHJlc3NlZEJ5VW5zY2FsZWRJbW1lZGlhdGU8ZGF0YXNp
emU+KHJ0LCBybiwgb2Zmc2V0KTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9
CisgICAgICAgIGlmIChBUk02NEFzc2VtYmxlcjo6Y2FuRW5jb2RlUEltbU9mZnNldDxkYXRhc2l6
ZT4ob2Zmc2V0KSkgeworICAgICAgICAgICAgbG9hZFNpZ25lZEFkZHJlc3NlZEJ5VW5zaWduZWRJ
bW1lZGlhdGU8ZGF0YXNpemU+KHJ0LCBybiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG9mZnNldCkp
OworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KKworICAgIHRlbXBsYXRlPGludCBkYXRhc2l6ZT4KICAgICBBTFdBWVNfSU5M
SU5FIGJvb2wgdHJ5TG9hZFdpdGhPZmZzZXQoRlBSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJu
LCBpbnQzMl90IG9mZnNldCkKICAgICB7CiAgICAgICAgIGlmIChBUk02NEFzc2VtYmxlcjo6Y2Fu
RW5jb2RlU0ltbU9mZnNldChvZmZzZXQpKSB7CkBAIC0zMTU3LDYgKzMyMzMsMTggQEAgQUxXQVlT
X0lOTElORSB2b2lkIE1hY3JvQXNzZW1ibGVyQVJNNjQ6OmxvYWRVbnNpZ25lZEltbWVkaWF0ZTwx
Nj4oUmVnaXN0ZXJJRCBydCwKIH0KIAogdGVtcGxhdGU8PgorQUxXQVlTX0lOTElORSB2b2lkIE1h
Y3JvQXNzZW1ibGVyQVJNNjQ6OmxvYWRTaWduZWRBZGRyZXNzZWRCeVVuc2lnbmVkSW1tZWRpYXRl
PDg+KFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcm4sIHVuc2lnbmVkIHBpbW0pCit7CisgICAg
bV9hc3NlbWJsZXIubGRyc2I8NjQ+KHJ0LCBybiwgcGltbSk7Cit9CisKK3RlbXBsYXRlPD4KK0FM
V0FZU19JTkxJTkUgdm9pZCBNYWNyb0Fzc2VtYmxlckFSTTY0Ojpsb2FkU2lnbmVkQWRkcmVzc2Vk
QnlVbnNpZ25lZEltbWVkaWF0ZTwxNj4oUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBybiwgdW5z
aWduZWQgcGltbSkKK3sKKyAgICBtX2Fzc2VtYmxlci5sZHJzaDw2ND4ocnQsIHJuLCBwaW1tKTsK
K30KKwordGVtcGxhdGU8PgogQUxXQVlTX0lOTElORSB2b2lkIE1hY3JvQXNzZW1ibGVyQVJNNjQ6
OmxvYWRVbnNjYWxlZEltbWVkaWF0ZTw4PihSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJuLCBp
bnQgc2ltbSkKIHsKICAgICBtX2Fzc2VtYmxlci5sZHVyYihydCwgcm4sIHNpbW0pOwpAQCAtMzE2
OSw2ICszMjU3LDE4IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBNYWNyb0Fzc2VtYmxlckFSTTY0Ojps
b2FkVW5zY2FsZWRJbW1lZGlhdGU8MTY+KFJlZ2lzdGVySUQgcnQsCiB9CiAKIHRlbXBsYXRlPD4K
K0FMV0FZU19JTkxJTkUgdm9pZCBNYWNyb0Fzc2VtYmxlckFSTTY0Ojpsb2FkU2lnbmVkQWRkcmVz
c2VkQnlVbnNjYWxlZEltbWVkaWF0ZTw4PihSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJuLCBp
bnQgc2ltbSkKK3sKKyAgICBtX2Fzc2VtYmxlci5sZHVyc2I8NjQ+KHJ0LCBybiwgc2ltbSk7Cit9
CisKK3RlbXBsYXRlPD4KK0FMV0FZU19JTkxJTkUgdm9pZCBNYWNyb0Fzc2VtYmxlckFSTTY0Ojps
b2FkU2lnbmVkQWRkcmVzc2VkQnlVbnNjYWxlZEltbWVkaWF0ZTwxNj4oUmVnaXN0ZXJJRCBydCwg
UmVnaXN0ZXJJRCBybiwgaW50IHNpbW0pCit7CisgICAgbV9hc3NlbWJsZXIubGR1cnNoPDY0Pihy
dCwgcm4sIHNpbW0pOworfQorCit0ZW1wbGF0ZTw+CiBBTFdBWVNfSU5MSU5FIHZvaWQgTWFjcm9B
c3NlbWJsZXJBUk02NDo6c3RvcmVVbnNpZ25lZEltbWVkaWF0ZTw4PihSZWdpc3RlcklEIHJ0LCBS
ZWdpc3RlcklEIHJuLCB1bnNpZ25lZCBwaW1tKQogewogICAgIG1fYXNzZW1ibGVyLnN0cmIocnQs
IHJuLCBwaW1tKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
WDg2QXNzZW1ibGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2Vt
Ymxlci5oCmluZGV4IDc4MjZiNjJlYjNhMGZhZjEwMTQ5YWRiZDJkN2ZmY2I1YTFiNzA5ZDcuLjY3
NzAyZmZkZjkwMjZhMWEwYmY0MjMxMDdhYTM0NzFiN2FjMGZiOTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaApAQCAtMjksNiArMjksNyBAQAog
I2lmIEVOQUJMRShBU1NFTUJMRVIpICYmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSkKIAogI2lu
Y2x1ZGUgIkFzc2VtYmxlckJ1ZmZlci5oIgorI2luY2x1ZGUgIkFzc2VtYmxlckNvbW1vbi5oIgog
I2luY2x1ZGUgIkpJVENvbXBpbGF0aW9uRWZmb3J0LmgiCiAjaW5jbHVkZSA8bGltaXRzLmg+CiAj
aW5jbHVkZSA8c3RkaW50Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNMb3dlclRvQWlyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIu
Y3BwCmluZGV4IGQwNjIwYmM4YzYxYjU0MWU0MjM3ZWM5ZjU1YmYwNGM4NmRkMjZmNDQuLjVlN2Ew
YzQ4OTBmYWZkNzg1MjE3MjgxMDkxYTlhZTg3MmRlNjgxNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCkBAIC0zNTYsNyArMzU2LDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgLy8gd29yay4gV2Ugc29sdmUgdGhpcyBieSByZXF1aXJpbmcgYSBqdXN0LWJlZm9yZS1s
b3dlcmluZyBwaGFzZSB0aGF0IGxlZ2FsaXplcyBvZmZzZXRzLgogICAgICAgICAvLyBGSVhNRTog
SW1wbGVtZW50IHN1Y2ggYSBsZWdhbGl6YXRpb24gcGhhc2UuCiAgICAgICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI1MzAKLSAgICAgICAgQVNTRVJUKEFy
Zzo6aXNWYWxpZEFkZHJGb3JtKG9mZnNldCkpOworICAgICAgICBBU1NFUlQoQXJnOjppc1ZhbGlk
QWRkckZvcm0ob2Zmc2V0LCB3aWR0aCkpOwogCiAgICAgICAgIGF1dG8gZmFsbGJhY2sgPSBbJl0g
KCkgLT4gQXJnIHsKICAgICAgICAgICAgIHJldHVybiBBcmc6OmFkZHIodG1wKGFkZHJlc3MpLCBv
ZmZzZXQpOwpAQCAtMTcxMCw2ICsxNzEwLDEyIEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KIAorICAgICAgICBjYXNlIEFiczogeworICAgICAgICAgICAgUkVMRUFT
RV9BU1NFUlRfV0lUSF9NRVNTQUdFKCFpc1g4NigpLCAiQWJzIGlzIG5vdCBzdXBwb3J0ZWQgbmF0
aXZlbHkgb24geDg2LiBJdCBtdXN0IGJlIHJlcGxhY2VkIGJlZm9yZSBnZW5lcmF0aW9uLiIpOwor
ICAgICAgICAgICAgYXBwZW5kVW5PcDxBaXI6Ok9vcHMsIEFpcjo6T29wcywgQWJzRG91YmxlLCBB
YnNGbG9hdD4obV92YWx1ZS0+Y2hpbGQoMCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKICAgICAgICAgY2FzZSBDZWlsOiB7CiAgICAgICAgICAgICBhcHBlbmRVbk9wPEFpcjo6
T29wcywgQWlyOjpPb3BzLCBDZWlsRG91YmxlLCBDZWlsRmxvYXQ+KG1fdmFsdWUtPmNoaWxkKDAp
KTsKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyQXJnLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5o
CmluZGV4IGVlNWNjMzM4YmNhMTI0OWY0NmFkN2FmZTAyMTAyNDY3ODllZTBiZjAuLjlhMWE4MjRk
NmYwOGRhMjMxMjlmYTI0ODMwMGI5MTA3NTAwMGI3ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJBcmcuaApAQCAtODg4LDE4ICs4ODgsMzMgQEAgcHVibGljOgogICAgIHsKICAgICAg
ICAgaWYgKGlzWDg2KCkpCiAgICAgICAgICAgICByZXR1cm4gQjM6OmlzUmVwcmVzZW50YWJsZUFz
PGludDMyX3Q+KHZhbHVlKTsKLSAgICAgICAgLy8gRklYTUU6IEFSTSBoYXMgc29tZSBzcGVjaWZp
YyBydWxlcyBhYm91dCB3aGF0IGtpbmRzIG9mIGltbWVkaWF0ZXMgYXJlIHZhbGlkLgotICAgICAg
ICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUyNTMwCisgICAg
ICAgIGlmIChpc0FSTTY0KCkpCisgICAgICAgICAgICByZXR1cm4gaXNVSW50MTIodmFsdWUpOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgc3RhdGljIGJvb2wgaXNWYWxpZEFk
ZHJGb3JtKGludDMyX3Qgb2Zmc2V0KQorICAgIHN0YXRpYyBib29sIGlzVmFsaWRBZGRyRm9ybShp
bnQzMl90IG9mZnNldCwgT3B0aW9uYWw8V2lkdGg+IHdpZHRoID0gTnVsbG9wdCkKICAgICB7CiAg
ICAgICAgIGlmIChpc1g4NigpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIC8v
IEZJWE1FOiBBUk0gaGFzIHNvbWUgc3BlY2lmaWMgcnVsZXMgYWJvdXQgd2hhdCBraW5kcyBvZiBv
ZmZzZXRzIGFyZSB2YWxpZC4KLSAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1MjUzMAotICAgICAgICBVTlVTRURfUEFSQU0ob2Zmc2V0KTsKKyAgICAg
ICAgaWYgKGlzQVJNNjQoKSkgeworICAgICAgICAgICAgaWYgKCF3aWR0aCkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICAgICAgaWYgKGlzVmFsaWRTaWduZWRJbW05KG9m
ZnNldCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgICAgIHN3aXRj
aCAoKndpZHRoKSB7CisgICAgICAgICAgICBjYXNlIFdpZHRoODoKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gaXNWYWxpZFNjYWxlZFVJbW0xMjw4PihvZmZzZXQpOworICAgICAgICAgICAgY2FzZSBX
aWR0aDE2OgorICAgICAgICAgICAgICAgIHJldHVybiBpc1ZhbGlkU2NhbGVkVUltbTEyPDE2Pihv
ZmZzZXQpOworICAgICAgICAgICAgY2FzZSBXaWR0aDMyOgorICAgICAgICAgICAgICAgIHJldHVy
biBpc1ZhbGlkU2NhbGVkVUltbTEyPDMyPihvZmZzZXQpOworICAgICAgICAgICAgY2FzZSBXaWR0
aDY0OgorICAgICAgICAgICAgICAgIHJldHVybiBpc1ZhbGlkU2NhbGVkVUltbTEyPDY0PihvZmZz
ZXQpOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CiAKQEAgLTkzMSw3ICs5NDYsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNhc2UgQWRkcjoKICAg
ICAgICAgY2FzZSBTdGFjazoKICAgICAgICAgY2FzZSBDYWxsQXJnOgotICAgICAgICAgICAgcmV0
dXJuIGlzVmFsaWRBZGRyRm9ybShvZmZzZXQoKSk7CisgICAgICAgICAgICByZXR1cm4gaXNWYWxp
ZEFkZHJGb3JtKG9mZnNldCgpLCB3aWR0aCk7CiAgICAgICAgIGNhc2UgSW5kZXg6CiAgICAgICAg
ICAgICByZXR1cm4gaXNWYWxpZEluZGV4Rm9ybShzY2FsZSgpLCBvZmZzZXQoKSwgd2lkdGgpOwog
ICAgICAgICBjYXNlIFJlbENvbmQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9B
aXJPcGNvZGUub3Bjb2RlcwppbmRleCAyYzFhZWY3ZDUyMzdkOGFkNzkyNDYyMWNkOGJmM2NjYmNl
OGM2ZDM5Li40Mjg4MDNhOGU5MDRkMTA1NDY5NjMxNjhlMmM4ZWVkYjRmMmFkNjNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMKQEAgLTI4NSw3
ICsyODUsNyBAQCB4ODZfNjQ6IFJzaGlmdDY0IFU6Rzo2NCwgVUQ6Rzo2NAogICAgIFRtcCosIFRt
cAogICAgIEltbSwgVG1wCiAKLWFybTY0OiB1cnNoaWZ0MzIgVTpHOjMyLCBVOkc6MzIsIFpEOkc6
MzIKK2FybTY0OiBVcnNoaWZ0MzIgVTpHOjMyLCBVOkc6MzIsIFpEOkc6MzIKICAgICBUbXAsIFRt
cCwgVG1wCiAgICAgVG1wLCBJbW0sIFRtcAogCkBAIC0zMzgsNiArMzM4LDEyIEBAIHg4NjogTm90
NjQgVUQ6Rzo2NAogICAgIFRtcAogICAgIEFkZHIKIAorQWJzRG91YmxlIFU6Rjo2NCwgRDpGOjY0
CisgICAgVG1wLCBUbXAKKworQWJzRmxvYXQgVTpGOjMyLCBEOkY6MzIKKyAgICBUbXAsIFRtcAor
CiBDZWlsRG91YmxlIFU6Rjo2NCwgVUQ6Rjo2NAogICAgIFRtcCwgVG1wCiAgICAgeDg2OiBBZGRy
LCBUbXAKQEAgLTM4NSwxNyArMzkxLDE3IEBAIE1vdmUgVTpHOlB0ciwgRDpHOlB0cgogICAgIFRt
cCwgVG1wCiAgICAgSW1tLCBUbXAgYXMgc2lnbkV4dGVuZDMyVG9QdHIKICAgICBJbW02NCwgVG1w
Ci0gICAgeDg2OiBBZGRyLCBUbXAgYXMgbG9hZFB0ciAjIFRoaXMgbWVhbnMgdGhhdCAiTW92ZSBB
ZGRyLCBUbXAiIGlzIGNvZGUtZ2VuZXJhdGVkIGFzICJsb2FkIiBub3QgIm1vdmUiLgorICAgIEFk
ZHIsIFRtcCBhcyBsb2FkUHRyICMgVGhpcyBtZWFucyB0aGF0ICJNb3ZlIEFkZHIsIFRtcCIgaXMg
Y29kZS1nZW5lcmF0ZWQgYXMgImxvYWQiIG5vdCAibW92ZSIuCiAgICAgSW5kZXgsIFRtcCBhcyBs
b2FkUHRyCi0gICAgeDg2OiBUbXAsIEFkZHIgYXMgc3RvcmVQdHIKKyAgICBUbXAsIEFkZHIgYXMg
c3RvcmVQdHIKICAgICBUbXAsIEluZGV4IGFzIHN0b3JlUHRyCiAgICAgeDg2OiBJbW0sIEFkZHIg
YXMgc3RvcmVQdHIKIAogTW92ZTMyIFU6RzozMiwgWkQ6RzozMgogICAgIFRtcCwgVG1wIGFzIHpl
cm9FeHRlbmQzMlRvUHRyCi0gICAgeDg2OiBBZGRyLCBUbXAgYXMgbG9hZDMyCisgICAgQWRkciwg
VG1wIGFzIGxvYWQzMgogICAgIEluZGV4LCBUbXAgYXMgbG9hZDMyCi0gICAgeDg2OiBUbXAsIEFk
ZHIgYXMgc3RvcmUzMgorICAgIFRtcCwgQWRkciBhcyBzdG9yZTMyCiAgICAgVG1wLCBJbmRleCBh
cyBzdG9yZTMyCiAgICAgeDg2OiBJbW0sIEFkZHIgYXMgc3RvcmUzMgogICAgIHg4NjogSW1tLCBJ
bmRleCBhcyBzdG9yZTMyCkBAIC00MDUsMzYgKzQxMSwzNiBAQCBTaWduRXh0ZW5kMzJUb1B0ciBV
Okc6MzIsIEQ6RzpQdHIKIAogWmVyb0V4dGVuZDhUbzMyIFU6Rzo4LCBaRDpHOjMyCiAgICAgVG1w
LCBUbXAKLSAgICB4ODY6IEFkZHIsIFRtcCBhcyBsb2FkOAorICAgIEFkZHIsIFRtcCBhcyBsb2Fk
OAogICAgIEluZGV4LCBUbXAgYXMgbG9hZDgKIAogU2lnbkV4dGVuZDhUbzMyIFU6Rzo4LCBaRDpH
OjMyCiAgICAgVG1wLCBUbXAKLSAgICB4ODY6IEFkZHIsIFRtcCBhcyBsb2FkOFNpZ25lZEV4dGVu
ZFRvMzIKKyAgICBBZGRyLCBUbXAgYXMgbG9hZDhTaWduZWRFeHRlbmRUbzMyCiAgICAgSW5kZXgs
IFRtcCBhcyBsb2FkOFNpZ25lZEV4dGVuZFRvMzIKIAogWmVyb0V4dGVuZDE2VG8zMiBVOkc6MTYs
IFpEOkc6MzIKICAgICBUbXAsIFRtcAotICAgIHg4NjogQWRkciwgVG1wIGFzIGxvYWQxNgorICAg
IEFkZHIsIFRtcCBhcyBsb2FkMTYKICAgICBJbmRleCwgVG1wIGFzIGxvYWQxNgogCiBTaWduRXh0
ZW5kMTZUbzMyIFU6RzoxNiwgWkQ6RzozMgogICAgIFRtcCwgVG1wCi0gICAgeDg2OiBBZGRyLCBU
bXAgYXMgbG9hZDE2U2lnbmVkRXh0ZW5kVG8zMgorICAgIEFkZHIsIFRtcCBhcyBsb2FkMTZTaWdu
ZWRFeHRlbmRUbzMyCiAgICAgSW5kZXgsIFRtcCBhcyBsb2FkMTZTaWduZWRFeHRlbmRUbzMyCiAK
IE1vdmVGbG9hdCBVOkY6MzIsIEQ6RjozMgogICAgIFRtcCwgVG1wIGFzIG1vdmVEb3VibGUKLSAg
ICB4ODY6IEFkZHIsIFRtcCBhcyBsb2FkRmxvYXQKKyAgICBBZGRyLCBUbXAgYXMgbG9hZEZsb2F0
CiAgICAgSW5kZXgsIFRtcCBhcyBsb2FkRmxvYXQKLSAgICB4ODY6IFRtcCwgQWRkciBhcyBzdG9y
ZUZsb2F0CisgICAgVG1wLCBBZGRyIGFzIHN0b3JlRmxvYXQKICAgICBUbXAsIEluZGV4IGFzIHN0
b3JlRmxvYXQKIAogTW92ZURvdWJsZSBVOkY6NjQsIEQ6Rjo2NAogICAgIFRtcCwgVG1wCi0gICAg
eDg2OiBBZGRyLCBUbXAgYXMgbG9hZERvdWJsZQorICAgIEFkZHIsIFRtcCBhcyBsb2FkRG91Ymxl
CiAgICAgSW5kZXgsIFRtcCBhcyBsb2FkRG91YmxlCi0gICAgeDg2OiBUbXAsIEFkZHIgYXMgc3Rv
cmVEb3VibGUKKyAgICBUbXAsIEFkZHIgYXMgc3RvcmVEb3VibGUKICAgICBUbXAsIEluZGV4IGFz
IHN0b3JlRG91YmxlCiAKIE1vdmVaZXJvVG9Eb3VibGUgRDpGOjY0CkBAIC00NTIsMzkgKzQ1OCwz
OSBAQCBNb3ZlMzJUb0Zsb2F0IFU6RzozMiwgRDpGOjMyCiAKIDY0OiBNb3ZlRG91YmxlVG82NCBV
OkY6NjQsIEQ6Rzo2NAogICAgIFRtcCwgVG1wCi0gICAgeDg2OiBBZGRyLCBUbXAgYXMgbG9hZDY0
CisgICAgQWRkciwgVG1wIGFzIGxvYWQ2NAogICAgIEluZGV4LCBUbXAgYXMgbG9hZDY0CiAKIE1v
dmVGbG9hdFRvMzIgVTpGOjMyLCBEOkc6MzIKICAgICBUbXAsIFRtcAotICAgIHg4NjogQWRkciwg
VG1wIGFzIGxvYWQzMgorICAgIEFkZHIsIFRtcCBhcyBsb2FkMzIKICAgICBJbmRleCwgVG1wIGFz
IGxvYWQzMgogCiBMb2FkOCBVOkc6OCwgWkQ6RzozMgotICAgIHg4NjogQWRkciwgVG1wCisgICAg
QWRkciwgVG1wCiAgICAgSW5kZXgsIFRtcAogCiBTdG9yZTggVTpHOjgsIEQ6Rzo4CiAgICAgVG1w
LCBJbmRleAotICAgIHg4NjogVG1wLCBBZGRyCisgICAgVG1wLCBBZGRyCiAgICAgeDg2OiBJbW0s
IEluZGV4CiAgICAgeDg2OiBJbW0sIEFkZHIKIAogTG9hZDhTaWduZWRFeHRlbmRUbzMyIFU6Rzo4
LCBaRDpHOjMyCi0gICAgeDg2OiBBZGRyLCBUbXAKKyAgICBBZGRyLCBUbXAKICAgICBJbmRleCwg
VG1wCiAKIExvYWQxNiBVOkc6MTYsIFpEOkc6MzIKLSAgICB4ODY6IEFkZHIsIFRtcAorICAgIEFk
ZHIsIFRtcAogICAgIEluZGV4LCBUbXAKIAogTG9hZDE2U2lnbmVkRXh0ZW5kVG8zMiBVOkc6MTYs
IFpEOkc6MzIKLSAgICB4ODY6IEFkZHIsIFRtcAorICAgIEFkZHIsIFRtcAogICAgIEluZGV4LCBU
bXAKIAogU3RvcmUxNiBVOkc6MTYsIEQ6RzoxNgogICAgIFRtcCwgSW5kZXgKLSAgICB4ODY6IFRt
cCwgQWRkcgorICAgIFRtcCwgQWRkcgogCiBDb21wYXJlMzIgVTpHOjMyLCBVOkc6MzIsIFU6Rzoz
MiwgWkQ6RzozMgogICAgIFJlbENvbmQsIFRtcCwgVG1wLCBUbXAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268305</attachid>
            <date>2016-01-05 12:22:10 -0800</date>
            <delta_ts>2016-01-05 13:38:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152737-20160105212135.patch</filename>
            <type>text/plain</type>
            <size>26173</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0NTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
ZmVjNzE3NzgyMjYxZWIxNTViMjI3Y2FhMTEzYzFkM2E1YmJlM2Q3Li41YjU3ZGZlMmI5ZmVkNWY4
MzYxMWU3N2YxZjlkNGQ3MmJjNTdjYzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OSBAQAorMjAxNi0wMS0wNSAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBbSlNDXSBHZXQgbW9yZSBvZiB0ZXN0YjMgdG8gcGFzcyBvbiBBUk02
NAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUyNzM3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQSBidW5j
aCBvZiBtaW5vciBidWdzIGFuZCBtaXNzaW5nIGZ1bmN0aW9uIHRvIG1ha2UgbW9zdCBvZiB0ZXN0
YjMKKyAgICAgICAgcnVuIG9uIEFSTTY0LgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBhc3NlbWJsZXIvQVJNNjRBc3NlbWJs
ZXIuaDoKKyAgICAgICAgKEpTQzo6QVJNNjRBc3NlbWJsZXI6OmNhbkVuY29kZVBJbW1PZmZzZXQp
OgorICAgICAgICAoSlNDOjpBUk02NEFzc2VtYmxlcjo6Y2FuRW5jb2RlU0ltbU9mZnNldCk6Cisg
ICAgICAgIChKU0M6OmlzSW50OSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmlzVUludDEyKTog
RGVsZXRlZC4KKyAgICAgICAgKiBhc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaDoKKyAgICAgICAg
KiBhc3NlbWJsZXIvQXNzZW1ibGVyQ29tbW9uLmg6IEFkZGVkLgorICAgICAgICAoSlNDOjppc0lu
dDkpOgorICAgICAgICAoSlNDOjppc1VJbnQxMik6CisgICAgICAgIChKU0M6OmlzVmFsaWRTY2Fs
ZWRVSW1tMTIpOgorICAgICAgICAoSlNDOjppc1ZhbGlkU2lnbmVkSW1tOSk6CisgICAgICAgICog
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3Nl
bWJsZXJBUk02NDo6bG9hZDE2U2lnbmVkRXh0ZW5kVG8zMik6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNNjQ6OmxvYWQ4U2lnbmVkRXh0ZW5kVG8zMik6CisgICAgICAgIChKU0M6Ok1h
Y3JvQXNzZW1ibGVyQVJNNjQ6OnN0b3JlMTYpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxl
ckFSTTY0OjphYnNGbG9hdCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6Omxv
YWRGbG9hdCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnN0b3JlRmxvYXQp
OgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0Ojpsb2FkU2lnbmVkQWRkcmVzc2Vk
QnlVbnNpZ25lZEltbWVkaWF0ZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6
OmxvYWRTaWduZWRBZGRyZXNzZWRCeVVuc2NhbGVkSW1tZWRpYXRlKToKKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXJBUk02NDo6dHJ5TG9hZFNpZ25lZFdpdGhPZmZzZXQpOgorICAgICAgICAo
SlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0Ojpsb2FkU2lnbmVkQWRkcmVzc2VkQnlVbnNpZ25lZElt
bWVkaWF0ZTw4Pik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OmxvYWRTaWdu
ZWRBZGRyZXNzZWRCeVVuc2lnbmVkSW1tZWRpYXRlPDE2Pik6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNNjQ6OmxvYWRTaWduZWRBZGRyZXNzZWRCeVVuc2NhbGVkSW1tZWRpYXRlPDg+
KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZFNpZ25lZEFkZHJlc3Nl
ZEJ5VW5zY2FsZWRJbW1lZGlhdGU8MTY+KToKKyAgICAgICAgKiBhc3NlbWJsZXIvWDg2QXNzZW1i
bGVyLmg6CisgICAgICAgICogYjMvQjNMb3dlclRvQWlyLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6
OkFpcjo6TG93ZXJUb0Fpcjo6ZWZmZWN0aXZlQWRkcik6CisgICAgICAgIChKU0M6OkIzOjpBaXI6
Okxvd2VyVG9BaXI6Omxvd2VyKToKKyAgICAgICAgKiBiMy9haXIvQWlyQXJnLmg6CisgICAgICAg
IChKU0M6OkIzOjpBaXI6OkFyZzo6aXNWYWxpZEltbUZvcm0pOgorICAgICAgICAoSlNDOjpCMzo6
QWlyOjpBcmc6OmlzVmFsaWRBZGRyRm9ybSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6
aXNWYWxpZEZvcm0pOgorICAgICAgICAqIGIzL2Fpci9BaXJPcGNvZGUub3Bjb2RlczoKKwogMjAx
Ni0wMS0wNCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBUdXJuIG9mZiBJbnRlcm5hbCBGdW5jdGlvbiBpbmxpbmluZyBpbiB0aGUgREZHIGZvciBzdXBl
ciBjYWxscy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjM2N2U4YmNlZmNkM2Y4
MzVjOWI1MDc2NTc5NGUzZGM2YjI5ZDU5OC4uYjgyZTZhZjQxYTkyMDJhMmZiNDY4ZmY2MGE5Yzhi
M2E5NDk0ZjAyOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTExNDksNiArMTE0
OSw3IEBACiAJCTQzNDIyQTY3MUMxNjI2NzgwMEUyRUI5OCAvKiBCM1JlZHVjZURvdWJsZVRvRmxv
YXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNDIy
QTY1MUMxNjIyMUUwMEUyRUI5OCAvKiBCM1JlZHVjZURvdWJsZVRvRmxvYXQuaCAqLzsgfTsKIAkJ
NDNBQjI2QzYxQzFBNTM1OTAwRDgyQUU2IC8qIEIzTWF0aEV4dHJhcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDNBQjI2QzUxQzFBNTJGNzAwRDgyQUU2
IC8qIEIzTWF0aEV4dHJhcy5oICovOyB9OwogCQk0M0FCMjZDNzFDMUE1MzVDMDBEODJBRTYgLyog
QjNNYXRoRXh0cmFzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQzQUIyNkM0MUMxQTUyRjcwMEQ4MkFFNiAvKiBCM01hdGhFeHRyYXMuY3BwICovOyB9
OworCQk0M0MzOTJBQjFDM0JFQjA1MDAyNDFGNTMgLyogQXNzZW1ibGVyQ29tbW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0M0MzOTJBQTFDM0JFQjAw
MDAyNDFGNTMgLyogQXNzZW1ibGVyQ29tbW9uLmggKi87IH07CiAJCTQ0NDNBRTMzMTZFMTg4RDkw
MDc2RjExMCAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRjBFQjYxMDVDODZDNkIwMEU2REYxQiAvKiBGb3Vu
ZGF0aW9uLmZyYW1ld29yayAqLzsgfTsKIAkJNDUxNTM5QjkxMkRDOTk0NTAwRUY3QUM0IC8qIFlh
cnIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1MTUz
OUI4MTJEQzk5NDUwMEVGN0FDNCAvKiBZYXJyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTI2NzhGOEUxQTAzMTAwOTAwNkEzMDZEIC8qIEJhc2lj
QmxvY2tMb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MjY3OEY4QzFBMDMxMDA5MDA2QTMwNkQgLyogQmFzaWNCbG9ja0xvY2F0aW9uLmNw
cCAqLzsgfTsKQEAgLTIwNTUsOCArMjA1Niw4IEBACiAJCUZFN0JBNjBGMUExQTdDRUMwMEYxRjdC
NCAvKiBIZWFwVmVyaWZpZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRkU3QkE2MEQxQTFBN0NFQzAwRjFGN0I0IC8qIEhlYXBWZXJpZmllci5jcHAg
Ki87IH07CiAJCUZFN0JBNjEwMUExQTdDRUMwMEYxRjdCNCAvKiBIZWFwVmVyaWZpZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFN0JBNjBFMUExQTdD
RUMwMEYxRjdCNCAvKiBIZWFwVmVyaWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlGRTdDNDE5NjFCOTdGQzRCMDBGNEQ1OTggLyogUGluZ1Bv
bmdTdGFja092ZXJmbG93VGVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGRURBNTBENDFCOTdGNDQyMDA5QTNCNEYgLyogUGluZ1BvbmdTdGFja092
ZXJmbG93VGVzdC5jcHAgKi87IH07Ci0JCUZFOTlCMjQ5MUMyNEMzRDMwMEM4MjE1OSAvKiBKSVRO
ZWdHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEZFOTlCMjQ4MUMyNEI2RDMwMEM4MjE1OSAvKiBKSVROZWdHZW5lcmF0b3IuaCAqLzsgc2V0
dGluZ3MgPSB7QVNTRVRfVEFHUyA9ICgpOyB9OyB9OwotCQlGRTk5QjI0QTFDMjRDM0Q3MDBDODIx
NTkgLyogSklUTmVnR2VuZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZFOTlCMjQ3MUMyNEI2RDMwMEM4MjE1OSAvKiBKSVROZWdHZW5lcmF0
b3IuY3BwICovOyBzZXR0aW5ncyA9IHtBU1NFVF9UQUdTID0gKCk7IH07IH07CisJCUZFOTlCMjQ5
MUMyNEMzRDMwMEM4MjE1OSAvKiBKSVROZWdHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFOTlCMjQ4MUMyNEI2RDMwMEM4MjE1OSAvKiBK
SVROZWdHZW5lcmF0b3IuaCAqLzsgfTsKKwkJRkU5OUIyNEExQzI0QzNENzAwQzgyMTU5IC8qIEpJ
VE5lZ0dlbmVyYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGRTk5QjI0NzFDMjRCNkQzMDBDODIxNTkgLyogSklUTmVnR2VuZXJhdG9yLmNwcCAq
LzsgfTsKIAkJRkVBMDg2MjAxODJCN0EwNDAwRjZEODUxIC8qIEJyZWFrcG9pbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFQTA4NjFFMTgyQjdBMDQw
MEY2RDg1MSAvKiBCcmVha3BvaW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRkVBMDg2MjExODJCN0EwNDAwRjZEODUxIC8qIERlYnVnZ2VyUHJp
bWl0aXZlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RkVBMDg2MUYxODJCN0EwNDAwRjZEODUxIC8qIERlYnVnZ2VyUHJpbWl0aXZlcy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZFQTFFNDM5MUMyMTNB
MkIwMDI3N0ExNiAvKiBWYWx1ZVByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRkVBMUU0MzgxQzIxM0EyNjAwMjc3QTE2IC8qIFZhbHVlUHJv
ZmlsZS5jcHAgKi87IH07CkBAIC0zMjQ5LDYgKzMyNTAsNyBAQAogCQk0MzQyMkE2NTFDMTYyMjFF
MDBFMkVCOTggLyogQjNSZWR1Y2VEb3VibGVUb0Zsb2F0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IEIzUmVkdWNlRG91YmxlVG9GbG9hdC5oOyBwYXRoID0gYjMvQjNSZWR1Y2VE
b3VibGVUb0Zsb2F0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzQUIyNkM0MUMx
QTUyRjcwMEQ4MkFFNiAvKiBCM01hdGhFeHRyYXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gQjNNYXRoRXh0cmFzLmNwcDsgcGF0aCA9IGIzL0IzTWF0aEV4dHJhcy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzQUIyNkM1MUMxQTUyRjcwMEQ4MkFF
NiAvKiBCM01hdGhFeHRyYXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQjNN
YXRoRXh0cmFzLmg7IHBhdGggPSBiMy9CM01hdGhFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDNDMzkyQUExQzNCRUIwMDAwMjQxRjUzIC8qIEFzc2VtYmxlckNvbW1vbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBc3NlbWJsZXJDb21tb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ5MDk3RUUwRjhGODFCNTAwNzZBMzI3IC8qIEZl
YXR1cmVEZWZpbmVzLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEZl
YXR1cmVEZWZpbmVzLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NTE1
MzlCODEyREM5OTQ1MDBFRjdBQzQgLyogWWFyci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBZYXJyLmg7IHBhdGggPSB5YXJyL1lhcnIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDVFMTJEODgwNkE0OUIwRjAwRTlERjg0IC8qIGpzYy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBqc2MuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDQ7IH07CkBAIC02MzgyLDYgKzYzODQsNyBA
QAogCQkJCTg2QUREMTQzMEZEREVBOTgwMDA2RUVDMiAvKiBBUk12N0Fzc2VtYmxlci5oICovLAog
CQkJCTk2ODhDQjEzMEVEMTJCNEUwMDFENjQ5RiAvKiBBc3NlbWJsZXJCdWZmZXIuaCAqLywKIAkJ
CQk4NkQzQjJDMTEwMTU2QkRFMDAyODY1RTcgLyogQXNzZW1ibGVyQnVmZmVyV2l0aENvbnN0YW50
UG9vbC5oICovLAorCQkJCTQzQzM5MkFBMUMzQkVCMDAwMDI0MUY1MyAvKiBBc3NlbWJsZXJDb21t
b24uaCAqLywKIAkJCQk4NkUxMTZCMDBGRTc1QUM4MDBCNTEyQkMgLyogQ29kZUxvY2F0aW9uLmgg
Ki8sCiAJCQkJMEYzNzMwOEUxQzBDRDY4NTAwMDUyQkZBIC8qIERpc2FsbG93TWFjcm9TY3JhdGNo
UmVnaXN0ZXJVc2FnZS5oICovLAogCQkJCTBGRjQyNzU2MTU5MTRBMjAwMDRDQjlGRiAvKiBMaW5r
QnVmZmVyLmNwcCAqLywKQEAgLTcxOTcsNiArNzIwMCw3IEBACiAJCQkJMEZBNTgxQkMxNTBFOTUz
MDAwQjlBMkQ5IC8qIERGR05vZGVUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCOUNFNzE5
RDBCQTdEMDBCMUQxQjUgLyogREZHT2JqZWN0QWxsb2NhdGlvblNpbmtpbmdQaGFzZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEYyQjlDRTkxOUQwQkE3RDAwQjFEMUI1IC8qIERGR09iamVjdE1hdGVy
aWFsaXphdGlvbkRhdGEuaCBpbiBIZWFkZXJzICovLAorCQkJCTQzQzM5MkFCMUMzQkVCMDUwMDI0
MUY1MyAvKiBBc3NlbWJsZXJDb21tb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RUM5REQwMTMy
OERGODIwMDJCMkFENyAvKiBERkdPcGVyYXRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0Q4
OUNGRTE3QTBCOENDMDA3NzNBRDggLyogREZHT1NSQXZhaWxhYmlsaXR5QW5hbHlzaXNQaGFzZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEODJFNTcxNDFEQUYxMDAwMTc5Qzk0IC8qIERGR09TUkVu
dHJ5LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvQVJNNjRBc3NlbWJsZXIuaAppbmRleCAwODBlNzYxMDViM2I4YTVmMGE3YzNlN2I1MDA0Mzdk
NmRlZGQxYzRkLi4zY2U1NGMyNzg1NTkzYWI2NTI0ODM1M2M2NmI3ZGQwYmZmODkzMTc0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTTY0QXNzZW1ibGVyLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk02NEFzc2VtYmxlci5oCkBA
IC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKEFTU0VNQkxFUikgJiYgQ1BVKEFSTTY0KQogCiAj
aW5jbHVkZSAiQXNzZW1ibGVyQnVmZmVyLmgiCisjaW5jbHVkZSAiQXNzZW1ibGVyQ29tbW9uLmgi
CiAjaW5jbHVkZSA8bGltaXRzLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CkBAIC01MiwxMSArNTMsNiBAQCBBTFdBWVNfSU5MSU5FIGJvb2wg
aXNJbnQ3KGludDMyX3QgdmFsdWUpCiAgICAgcmV0dXJuIHZhbHVlID09ICgodmFsdWUgPDwgMjUp
ID4+IDI1KTsKIH0KIAotQUxXQVlTX0lOTElORSBib29sIGlzSW50OShpbnQzMl90IHZhbHVlKQot
ewotICAgIHJldHVybiB2YWx1ZSA9PSAoKHZhbHVlIDw8IDIzKSA+PiAyMyk7Ci19Ci0KIEFMV0FZ
U19JTkxJTkUgYm9vbCBpc0ludDExKGludDMyX3QgdmFsdWUpCiB7CiAgICAgcmV0dXJuIHZhbHVl
ID09ICgodmFsdWUgPDwgMjEpID4+IDIxKTsKQEAgLTY3LDE2ICs2Myw2IEBAIEFMV0FZU19JTkxJ
TkUgYm9vbCBpc1VJbnQ1KGludDMyX3QgdmFsdWUpCiAgICAgcmV0dXJuICEodmFsdWUgJiB+MHgx
Zik7CiB9CiAKLUFMV0FZU19JTkxJTkUgYm9vbCBpc1VJbnQxMihpbnQzMl90IHZhbHVlKQotewot
ICAgIHJldHVybiAhKHZhbHVlICYgfjB4ZmZmKTsKLX0KLQotQUxXQVlTX0lOTElORSBib29sIGlz
VUludDEyKGludHB0cl90IHZhbHVlKQotewotICAgIHJldHVybiAhKHZhbHVlICYgfjB4ZmZmTCk7
Ci19Ci0KIGNsYXNzIFVJbnQ1IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBVSW50NShpbnQgdmFs
dWUpCkBAIC03MTcsMTkgKzcwMywxMiBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8aW50IGRhdGFz
aXplPgogICAgIHN0YXRpYyBib29sIGNhbkVuY29kZVBJbW1PZmZzZXQoaW50MzJfdCBvZmZzZXQp
CiAgICAgewotICAgICAgICBpbnQzMl90IG1heFBJbW0gPSA0MDk1ICogKGRhdGFzaXplIC8gOCk7
Ci0gICAgICAgIGlmIChvZmZzZXQgPCAwKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICBpZiAob2Zmc2V0ID4gbWF4UEltbSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICAgICAgaWYgKG9mZnNldCAmICgoZGF0YXNpemUgLyA4ICkgLSAxKSkKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybiBpc1ZhbGlk
U2NhbGVkVUltbTEyPGRhdGFzaXplPihvZmZzZXQpOwogICAgIH0KIAogICAgIHN0YXRpYyBib29s
IGNhbkVuY29kZVNJbW1PZmZzZXQoaW50MzJfdCBvZmZzZXQpCiAgICAgewotICAgICAgICByZXR1
cm4gaXNJbnQ5KG9mZnNldCk7CisgICAgICAgIHJldHVybiBpc1ZhbGlkU2lnbmVkSW1tOShvZmZz
ZXQpOwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvQVJNdjdBc3NlbWJsZXIuaAppbmRleCBkNzBhMmU3ZGVhYWI3ZDYzZWIxNWEzNjU4YmFk
YzdmZDRhZmE5NGU3Li42YjlmMzA1ZTkyNzQ2OWYxYjIzNWRiYmY3YTI1ZDIzMTg5M2ZkZmRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVy
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5o
CkBAIC0zMCw2ICszMCw3IEBACiAjaWYgRU5BQkxFKEFTU0VNQkxFUikgJiYgQ1BVKEFSTV9USFVN
QjIpCiAKICNpbmNsdWRlICJBc3NlbWJsZXJCdWZmZXIuaCIKKyNpbmNsdWRlICJBc3NlbWJsZXJD
b21tb24uaCIKICNpbmNsdWRlIDxsaW1pdHMuaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvQXNzZW1ibGVyQ29tbW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL0Fzc2VtYmxlckNvbW1vbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0NGE2MjRhMGQxMTQzYTZl
ZDZkYmYzMzc3ZGYzNTE3M2Q0YzVhZGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL0Fzc2VtYmxlckNvbW1vbi5oCkBAIC0wLDAgKzEsNjIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTQsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIEFzc2VtYmxlckNvbW1vbl9oCisjZGVmaW5lIEFzc2VtYmxlckNvbW1vbl9oCisKK25h
bWVzcGFjZSBKU0MgeworCitBTFdBWVNfSU5MSU5FIGJvb2wgaXNJbnQ5KGludDMyX3QgdmFsdWUp
Cit7CisgICAgcmV0dXJuIHZhbHVlID09ICgodmFsdWUgPDwgMjMpID4+IDIzKTsKK30KKwordGVt
cGxhdGU8dHlwZW5hbWUgVHlwZT4KK0FMV0FZU19JTkxJTkUgYm9vbCBpc1VJbnQxMihUeXBlIHZh
bHVlKQoreworICAgIHJldHVybiAhKHZhbHVlICYgfnN0YXRpY19jYXN0PFR5cGU+KDB4ZmZmKSk7
Cit9CisKK3RlbXBsYXRlPGludCBkYXRhc2l6ZT4KK0FMV0FZU19JTkxJTkUgYm9vbCBpc1ZhbGlk
U2NhbGVkVUltbTEyKGludDMyX3Qgb2Zmc2V0KQoreworICAgIGludDMyX3QgbWF4UEltbSA9IDQw
OTUgKiAoZGF0YXNpemUgLyA4KTsKKyAgICBpZiAob2Zmc2V0IDwgMCkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIGlmIChvZmZzZXQgPiBtYXhQSW1tKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgaWYgKG9mZnNldCAmICgoZGF0YXNpemUgLyA4KSAtIDEpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK0FMV0FZU19JTkxJTkUgYm9vbCBpc1ZhbGlk
U2lnbmVkSW1tOShpbnQzMl90IHZhbHVlKQoreworICAgIHJldHVybiBpc0ludDkodmFsdWUpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBKU0MuCisKKyNlbmRpZiAvLyBBc3NlbWJsZXJDb21tb25faApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ckFSTTY0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
QVJNNjQuaAppbmRleCBhZWE2NjZlODhkZGY0MjQ2ODdmMDkzNjU1YjNlYjg4YWQwOWNhMWQ2Li5l
MzRmMDM0ZjdiODFhZGQ2Y2VkOWEyY2ExZDVkODRmOTM2OTg4YzVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaApAQCAt
OTg1LDYgKzk4NSwxNSBAQCBwdWJsaWM6CiAgICAgICAgIGxvYWQxNihhZGRyZXNzLCBkZXN0KTsK
ICAgICB9CiAKKyAgICB2b2lkIGxvYWQxNlNpZ25lZEV4dGVuZFRvMzIoSW1wbGljaXRBZGRyZXNz
IGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7CisgICAgICAgIGlmICh0cnlMb2FkU2ln
bmVkV2l0aE9mZnNldDwxNj4oZGVzdCwgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLm9mZnNldCkpCisg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgc2lnbkV4dGVuZDMyVG9QdHIoVHJ1c3RlZElt
bTMyKGFkZHJlc3Mub2Zmc2V0KSwgZ2V0Q2FjaGVkTWVtb3J5VGVtcFJlZ2lzdGVySURBbmRJbnZh
bGlkYXRlKCkpOworICAgICAgICBtX2Fzc2VtYmxlci5sZHJzaDwzMj4oZGVzdCwgYWRkcmVzcy5i
YXNlLCBtZW1vcnlUZW1wUmVnaXN0ZXIpOworICAgIH0KKwogICAgIHZvaWQgbG9hZDE2U2lnbmVk
RXh0ZW5kVG8zMihCYXNlSW5kZXggYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAg
ICAgICAgaWYgKCFhZGRyZXNzLm9mZnNldCAmJiAoIWFkZHJlc3Muc2NhbGUgfHwgYWRkcmVzcy5z
Y2FsZSA9PSAxKSkgewpAQCAtMTAzNiw2ICsxMDQ1LDE1IEBAIHB1YmxpYzoKICAgICAgICAgICAg
IG1fY2FjaGVkTWVtb3J5VGVtcFJlZ2lzdGVyLmludmFsaWRhdGUoKTsKICAgICB9CiAKKyAgICB2
b2lkIGxvYWQ4U2lnbmVkRXh0ZW5kVG8zMihJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0
ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgaWYgKHRyeUxvYWRTaWduZWRXaXRoT2Zmc2V0PDg+
KGRlc3QsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5vZmZzZXQpKQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIHNpZ25FeHRlbmQzMlRvUHRyKFRydXN0ZWRJbW0zMihhZGRyZXNzLm9mZnNl
dCksIGdldENhY2hlZE1lbW9yeVRlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpKTsKKyAgICAg
ICAgbV9hc3NlbWJsZXIubGRyc2I8MzI+KGRlc3QsIGFkZHJlc3MuYmFzZSwgbWVtb3J5VGVtcFJl
Z2lzdGVyKTsKKyAgICB9CisKICAgICB2b2lkIGxvYWQ4U2lnbmVkRXh0ZW5kVG8zMihCYXNlSW5k
ZXggYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgaWYgKCFhZGRyZXNz
Lm9mZnNldCAmJiAhYWRkcmVzcy5zY2FsZSkgewpAQCAtMTE4Niw2ICsxMjA0LDE1IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIGxhYmVsOwogICAgIH0KIAorICAgIHZvaWQgc3RvcmUxNihSZWdp
c3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisgICAgeworICAgICAgICBpZiAo
dHJ5U3RvcmVXaXRoT2Zmc2V0PDE2PihzcmMsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5vZmZzZXQp
KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHNpZ25FeHRlbmQzMlRvUHRyKFRydXN0
ZWRJbW0zMihhZGRyZXNzLm9mZnNldCksIGdldENhY2hlZE1lbW9yeVRlbXBSZWdpc3RlcklEQW5k
SW52YWxpZGF0ZSgpKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuc3RyPDE2PihzcmMsIGFkZHJlc3Mu
YmFzZSwgbWVtb3J5VGVtcFJlZ2lzdGVyKTsKKyAgICB9CisKICAgICB2b2lkIHN0b3JlMTYoUmVn
aXN0ZXJJRCBzcmMsIEJhc2VJbmRleCBhZGRyZXNzKQogICAgIHsKICAgICAgICAgaWYgKCFhZGRy
ZXNzLm9mZnNldCAmJiAoIWFkZHJlc3Muc2NhbGUgfHwgYWRkcmVzcy5zY2FsZSA9PSAxKSkgewpA
QCAtMTI2Miw2ICsxMjg5LDExIEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIuZmFiczw2
ND4oZGVzdCwgc3JjKTsKICAgICB9CiAKKyAgICB2b2lkIGFic0Zsb2F0KEZQUmVnaXN0ZXJJRCBz
cmMsIEZQUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIuZmFiczwz
Mj4oZGVzdCwgc3JjKTsKKyAgICB9CisKICAgICB2b2lkIGFkZERvdWJsZShGUFJlZ2lzdGVySUQg
c3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIGFkZERvdWJsZShkZXN0LCBz
cmMsIGRlc3QpOwpAQCAtMTQ0OSw2ICsxNDgxLDE1IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3Nl
bWJsZXIubGRyPDY0PihkZXN0LCBtZW1vcnlUZW1wUmVnaXN0ZXIsIEFSTTY0UmVnaXN0ZXJzOjp6
cik7CiAgICAgfQogCisgICAgdm9pZCBsb2FkRmxvYXQoSW1wbGljaXRBZGRyZXNzIGFkZHJlc3Ms
IEZQUmVnaXN0ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgaWYgKHRyeUxvYWRXaXRoT2Zmc2V0
PDMyPihkZXN0LCBhZGRyZXNzLmJhc2UsIGFkZHJlc3Mub2Zmc2V0KSkKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBzaWduRXh0ZW5kMzJUb1B0cihUcnVzdGVkSW1tMzIoYWRkcmVzcy5v
ZmZzZXQpLCBnZXRDYWNoZWRNZW1vcnlUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKSk7Cisg
ICAgICAgIG1fYXNzZW1ibGVyLmxkcjwzMj4oZGVzdCwgYWRkcmVzcy5iYXNlLCBtZW1vcnlUZW1w
UmVnaXN0ZXIpOworICAgIH0KKwogICAgIHZvaWQgbG9hZEZsb2F0KEJhc2VJbmRleCBhZGRyZXNz
LCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIGlmICghYWRkcmVzcy5vZmZzZXQg
JiYgKCFhZGRyZXNzLnNjYWxlIHx8IGFkZHJlc3Muc2NhbGUgPT0gMikpIHsKQEAgLTE1OTYsNiAr
MTYzNywxNSBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLmFkZDw2ND4obWVtb3J5VGVt
cFJlZ2lzdGVyLCBtZW1vcnlUZW1wUmVnaXN0ZXIsIGFkZHJlc3MuaW5kZXgsIEFSTTY0QXNzZW1i
bGVyOjpVWFRYLCBhZGRyZXNzLnNjYWxlKTsKICAgICAgICAgbV9hc3NlbWJsZXIuc3RyPDY0Pihz
cmMsIGFkZHJlc3MuYmFzZSwgbWVtb3J5VGVtcFJlZ2lzdGVyKTsKICAgICB9CisKKyAgICB2b2lk
IHN0b3JlRmxvYXQoRlBSZWdpc3RlcklEIHNyYywgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCisg
ICAgeworICAgICAgICBpZiAodHJ5U3RvcmVXaXRoT2Zmc2V0PDMyPihzcmMsIGFkZHJlc3MuYmFz
ZSwgYWRkcmVzcy5vZmZzZXQpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHNpZ25F
eHRlbmQzMlRvUHRyKFRydXN0ZWRJbW0zMihhZGRyZXNzLm9mZnNldCksIGdldENhY2hlZE1lbW9y
eVRlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuc3Ry
PDMyPihzcmMsIGFkZHJlc3MuYmFzZSwgbWVtb3J5VGVtcFJlZ2lzdGVyKTsKKyAgICB9CiAgICAg
CiAgICAgdm9pZCBzdG9yZUZsb2F0KEZQUmVnaXN0ZXJJRCBzcmMsIEJhc2VJbmRleCBhZGRyZXNz
KQogICAgIHsKQEAgLTI4ODIsNiArMjkzMiwxOCBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIHRl
bXBsYXRlPGludCBkYXRhc2l6ZT4KKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgbG9hZFNpZ25lZEFk
ZHJlc3NlZEJ5VW5zaWduZWRJbW1lZGlhdGUoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBybiwg
dW5zaWduZWQgcGltbSkKKyAgICB7CisgICAgICAgIGxvYWRVbnNpZ25lZEltbWVkaWF0ZTxkYXRh
c2l6ZT4ocnQsIHJuLCBwaW1tKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxpbnQgZGF0YXNpemU+
CisgICAgQUxXQVlTX0lOTElORSB2b2lkIGxvYWRTaWduZWRBZGRyZXNzZWRCeVVuc2NhbGVkSW1t
ZWRpYXRlKFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcm4sIGludCBzaW1tKQorICAgIHsKKyAg
ICAgICAgbG9hZFVuc2NhbGVkSW1tZWRpYXRlPGRhdGFzaXplPihydCwgcm4sIHNpbW0pOworICAg
IH0KKworICAgIHRlbXBsYXRlPGludCBkYXRhc2l6ZT4KICAgICBBTFdBWVNfSU5MSU5FIHZvaWQg
c3RvcmVVbnNpZ25lZEltbWVkaWF0ZShSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJuLCB1bnNp
Z25lZCBwaW1tKQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIuc3RyPGRhdGFzaXplPihydCwg
cm4sIHBpbW0pOwpAQCAtMzA2NCw2ICszMTI2LDIwIEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAg
dGVtcGxhdGU8aW50IGRhdGFzaXplPgorICAgIEFMV0FZU19JTkxJTkUgYm9vbCB0cnlMb2FkU2ln
bmVkV2l0aE9mZnNldChSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJuLCBpbnQzMl90IG9mZnNl
dCkKKyAgICB7CisgICAgICAgIGlmIChBUk02NEFzc2VtYmxlcjo6Y2FuRW5jb2RlU0ltbU9mZnNl
dChvZmZzZXQpKSB7CisgICAgICAgICAgICBsb2FkU2lnbmVkQWRkcmVzc2VkQnlVbnNjYWxlZElt
bWVkaWF0ZTxkYXRhc2l6ZT4ocnQsIHJuLCBvZmZzZXQpOworICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKEFSTTY0QXNzZW1ibGVyOjpjYW5FbmNvZGVQSW1t
T2Zmc2V0PGRhdGFzaXplPihvZmZzZXQpKSB7CisgICAgICAgICAgICBsb2FkU2lnbmVkQWRkcmVz
c2VkQnlVbnNpZ25lZEltbWVkaWF0ZTxkYXRhc2l6ZT4ocnQsIHJuLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4ob2Zmc2V0KSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgdGVtcGxhdGU8aW50IGRhdGFzaXplPgog
ICAgIEFMV0FZU19JTkxJTkUgYm9vbCB0cnlMb2FkV2l0aE9mZnNldChGUFJlZ2lzdGVySUQgcnQs
IFJlZ2lzdGVySUQgcm4sIGludDMyX3Qgb2Zmc2V0KQogICAgIHsKICAgICAgICAgaWYgKEFSTTY0
QXNzZW1ibGVyOjpjYW5FbmNvZGVTSW1tT2Zmc2V0KG9mZnNldCkpIHsKQEAgLTMxNTcsNiArMzIz
MywxOCBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgTWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZFVuc2ln
bmVkSW1tZWRpYXRlPDE2PihSZWdpc3RlcklEIHJ0LAogfQogCiB0ZW1wbGF0ZTw+CitBTFdBWVNf
SU5MSU5FIHZvaWQgTWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZFNpZ25lZEFkZHJlc3NlZEJ5VW5z
aWduZWRJbW1lZGlhdGU8OD4oUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBybiwgdW5zaWduZWQg
cGltbSkKK3sKKyAgICBtX2Fzc2VtYmxlci5sZHJzYjw2ND4ocnQsIHJuLCBwaW1tKTsKK30KKwor
dGVtcGxhdGU8PgorQUxXQVlTX0lOTElORSB2b2lkIE1hY3JvQXNzZW1ibGVyQVJNNjQ6OmxvYWRT
aWduZWRBZGRyZXNzZWRCeVVuc2lnbmVkSW1tZWRpYXRlPDE2PihSZWdpc3RlcklEIHJ0LCBSZWdp
c3RlcklEIHJuLCB1bnNpZ25lZCBwaW1tKQoreworICAgIG1fYXNzZW1ibGVyLmxkcnNoPDY0Pihy
dCwgcm4sIHBpbW0pOworfQorCit0ZW1wbGF0ZTw+CiBBTFdBWVNfSU5MSU5FIHZvaWQgTWFjcm9B
c3NlbWJsZXJBUk02NDo6bG9hZFVuc2NhbGVkSW1tZWRpYXRlPDg+KFJlZ2lzdGVySUQgcnQsIFJl
Z2lzdGVySUQgcm4sIGludCBzaW1tKQogewogICAgIG1fYXNzZW1ibGVyLmxkdXJiKHJ0LCBybiwg
c2ltbSk7CkBAIC0zMTY5LDYgKzMyNTcsMTggQEAgQUxXQVlTX0lOTElORSB2b2lkIE1hY3JvQXNz
ZW1ibGVyQVJNNjQ6OmxvYWRVbnNjYWxlZEltbWVkaWF0ZTwxNj4oUmVnaXN0ZXJJRCBydCwKIH0K
IAogdGVtcGxhdGU8PgorQUxXQVlTX0lOTElORSB2b2lkIE1hY3JvQXNzZW1ibGVyQVJNNjQ6Omxv
YWRTaWduZWRBZGRyZXNzZWRCeVVuc2NhbGVkSW1tZWRpYXRlPDg+KFJlZ2lzdGVySUQgcnQsIFJl
Z2lzdGVySUQgcm4sIGludCBzaW1tKQoreworICAgIG1fYXNzZW1ibGVyLmxkdXJzYjw2ND4ocnQs
IHJuLCBzaW1tKTsKK30KKwordGVtcGxhdGU8PgorQUxXQVlTX0lOTElORSB2b2lkIE1hY3JvQXNz
ZW1ibGVyQVJNNjQ6OmxvYWRTaWduZWRBZGRyZXNzZWRCeVVuc2NhbGVkSW1tZWRpYXRlPDE2PihS
ZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJuLCBpbnQgc2ltbSkKK3sKKyAgICBtX2Fzc2VtYmxl
ci5sZHVyc2g8NjQ+KHJ0LCBybiwgc2ltbSk7Cit9CisKK3RlbXBsYXRlPD4KIEFMV0FZU19JTkxJ
TkUgdm9pZCBNYWNyb0Fzc2VtYmxlckFSTTY0OjpzdG9yZVVuc2lnbmVkSW1tZWRpYXRlPDg+KFJl
Z2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcm4sIHVuc2lnbmVkIHBpbW0pCiB7CiAgICAgbV9hc3Nl
bWJsZXIuc3RyYihydCwgcm4sIHBpbW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvWDg2QXNzZW1ibGVyLmgKaW5kZXggNzgyNmI2MmViM2EwZmFmMTAxNDlhZGJkMmQ3ZmZj
YjVhMWI3MDlkNy4uNjc3MDJmZmRmOTAyNmExYTBiZjQyMzEwN2FhMzQ3MWI3YWMwZmI5MyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCkBAIC0y
OSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKEFTU0VNQkxFUikgJiYgKENQVShYODYpIHx8IENQVShY
ODZfNjQpKQogCiAjaW5jbHVkZSAiQXNzZW1ibGVyQnVmZmVyLmgiCisjaW5jbHVkZSAiQXNzZW1i
bGVyQ29tbW9uLmgiCiAjaW5jbHVkZSAiSklUQ29tcGlsYXRpb25FZmZvcnQuaCIKICNpbmNsdWRl
IDxsaW1pdHMuaD4KICNpbmNsdWRlIDxzdGRpbnQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzTG93ZXJUb0Fpci5jcHAKaW5kZXggZDA2MjBiYzhjNjFiNTQxZTQyMzdlYzlmNTViZjA0Yzg2
ZGQyNmY0NC4uNWU3YTBjNDg5MGZhZmQ3ODUyMTcyODEwOTFhOWFlODcyZGU2ODE2NiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKQEAgLTM1Niw3ICszNTYsNyBA
QCBwcml2YXRlOgogICAgICAgICAvLyB3b3JrLiBXZSBzb2x2ZSB0aGlzIGJ5IHJlcXVpcmluZyBh
IGp1c3QtYmVmb3JlLWxvd2VyaW5nIHBoYXNlIHRoYXQgbGVnYWxpemVzIG9mZnNldHMuCiAgICAg
ICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgc3VjaCBhIGxlZ2FsaXphdGlvbiBwaGFzZS4KICAgICAg
ICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MjUzMAotICAg
ICAgICBBU1NFUlQoQXJnOjppc1ZhbGlkQWRkckZvcm0ob2Zmc2V0KSk7CisgICAgICAgIEFTU0VS
VChBcmc6OmlzVmFsaWRBZGRyRm9ybShvZmZzZXQsIHdpZHRoKSk7CiAKICAgICAgICAgYXV0byBm
YWxsYmFjayA9IFsmXSAoKSAtPiBBcmcgewogICAgICAgICAgICAgcmV0dXJuIEFyZzo6YWRkcih0
bXAoYWRkcmVzcyksIG9mZnNldCk7CkBAIC0xNzEwLDYgKzE3MTAsMTIgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCisgICAgICAgIGNhc2UgQWJzOiB7CisgICAg
ICAgICAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX01FU1NBR0UoIWlzWDg2KCksICJBYnMgaXMgbm90
IHN1cHBvcnRlZCBuYXRpdmVseSBvbiB4ODYuIEl0IG11c3QgYmUgcmVwbGFjZWQgYmVmb3JlIGdl
bmVyYXRpb24uIik7CisgICAgICAgICAgICBhcHBlbmRVbk9wPEFpcjo6T29wcywgQWlyOjpPb3Bz
LCBBYnNEb3VibGUsIEFic0Zsb2F0PihtX3ZhbHVlLT5jaGlsZCgwKSk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKwogICAgICAgICBjYXNlIENlaWw6IHsKICAgICAgICAgICAgIGFw
cGVuZFVuT3A8QWlyOjpPb3BzLCBBaXI6Ok9vcHMsIENlaWxEb3VibGUsIENlaWxGbG9hdD4obV92
YWx1ZS0+Y2hpbGQoMCkpOwogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyQXJnLmgKaW5kZXggZWU1Y2MzMzhiY2ExMjQ5ZjQ2YWQ3YWZlMDIxMDI0Njc4OWVl
MGJmMC4uOWExYTgyNGQ2ZjA4ZGEyMzEyOWZhMjQ4MzAwYjkxMDc1MDAwYjdmZCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5oCkBAIC04ODgsMTggKzg4OCwzMyBAQCBwdWJsaWM6
CiAgICAgewogICAgICAgICBpZiAoaXNYODYoKSkKICAgICAgICAgICAgIHJldHVybiBCMzo6aXNS
ZXByZXNlbnRhYmxlQXM8aW50MzJfdD4odmFsdWUpOwotICAgICAgICAvLyBGSVhNRTogQVJNIGhh
cyBzb21lIHNwZWNpZmljIHJ1bGVzIGFib3V0IHdoYXQga2luZHMgb2YgaW1tZWRpYXRlcyBhcmUg
dmFsaWQuCi0gICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTI1MzAKKyAgICAgICAgaWYgKGlzQVJNNjQoKSkKKyAgICAgICAgICAgIHJldHVybiBpc1VJ
bnQxMih2YWx1ZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBzdGF0aWMg
Ym9vbCBpc1ZhbGlkQWRkckZvcm0oaW50MzJfdCBvZmZzZXQpCisgICAgc3RhdGljIGJvb2wgaXNW
YWxpZEFkZHJGb3JtKGludDMyX3Qgb2Zmc2V0LCBPcHRpb25hbDxXaWR0aD4gd2lkdGggPSBOdWxs
b3B0KQogICAgIHsKICAgICAgICAgaWYgKGlzWDg2KCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICAgICAgLy8gRklYTUU6IEFSTSBoYXMgc29tZSBzcGVjaWZpYyBydWxlcyBhYm91dCB3
aGF0IGtpbmRzIG9mIG9mZnNldHMgYXJlIHZhbGlkLgotICAgICAgICAvLyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUyNTMwCi0gICAgICAgIFVOVVNFRF9QQVJBTShv
ZmZzZXQpOworICAgICAgICBpZiAoaXNBUk02NCgpKSB7CisgICAgICAgICAgICBpZiAoIXdpZHRo
KQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgICAgICBpZiAoaXNWYWxp
ZFNpZ25lZEltbTkob2Zmc2V0KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAg
ICAgICAgICAgc3dpdGNoICgqd2lkdGgpIHsKKyAgICAgICAgICAgIGNhc2UgV2lkdGg4OgorICAg
ICAgICAgICAgICAgIHJldHVybiBpc1ZhbGlkU2NhbGVkVUltbTEyPDg+KG9mZnNldCk7CisgICAg
ICAgICAgICBjYXNlIFdpZHRoMTY6CisgICAgICAgICAgICAgICAgcmV0dXJuIGlzVmFsaWRTY2Fs
ZWRVSW1tMTI8MTY+KG9mZnNldCk7CisgICAgICAgICAgICBjYXNlIFdpZHRoMzI6CisgICAgICAg
ICAgICAgICAgcmV0dXJuIGlzVmFsaWRTY2FsZWRVSW1tMTI8MzI+KG9mZnNldCk7CisgICAgICAg
ICAgICBjYXNlIFdpZHRoNjQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIGlzVmFsaWRTY2FsZWRV
SW1tMTI8NjQ+KG9mZnNldCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KIApAQCAtOTMxLDcgKzk0Niw3IEBAIHB1YmxpYzoKICAgICAgICAg
Y2FzZSBBZGRyOgogICAgICAgICBjYXNlIFN0YWNrOgogICAgICAgICBjYXNlIENhbGxBcmc6Ci0g
ICAgICAgICAgICByZXR1cm4gaXNWYWxpZEFkZHJGb3JtKG9mZnNldCgpKTsKKyAgICAgICAgICAg
IHJldHVybiBpc1ZhbGlkQWRkckZvcm0ob2Zmc2V0KCksIHdpZHRoKTsKICAgICAgICAgY2FzZSBJ
bmRleDoKICAgICAgICAgICAgIHJldHVybiBpc1ZhbGlkSW5kZXhGb3JtKHNjYWxlKCksIG9mZnNl
dCgpLCB3aWR0aCk7CiAgICAgICAgIGNhc2UgUmVsQ29uZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCmluZGV4IDJjMWFlZjdkNTIzN2Q4YWQ3OTI0
NjIxY2Q4YmYzY2NiY2U4YzZkMzkuLjE1MTUxNjEwMDQzMTMwODIzYWUyMDdlM2U3ZDFiZDY4ZGFh
ZTk1ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2Rl
Lm9wY29kZXMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bj
b2RlcwpAQCAtMjg1LDcgKzI4NSw3IEBAIHg4Nl82NDogUnNoaWZ0NjQgVTpHOjY0LCBVRDpHOjY0
CiAgICAgVG1wKiwgVG1wCiAgICAgSW1tLCBUbXAKIAotYXJtNjQ6IHVyc2hpZnQzMiBVOkc6MzIs
IFU6RzozMiwgWkQ6RzozMgorYXJtNjQ6IFVyc2hpZnQzMiBVOkc6MzIsIFU6RzozMiwgWkQ6Rzoz
MgogICAgIFRtcCwgVG1wLCBUbXAKICAgICBUbXAsIEltbSwgVG1wCiAKQEAgLTMzOCw2ICszMzgs
MTIgQEAgeDg2OiBOb3Q2NCBVRDpHOjY0CiAgICAgVG1wCiAgICAgQWRkcgogCithcm02NDogQWJz
RG91YmxlIFU6Rjo2NCwgRDpGOjY0CisgICAgVG1wLCBUbXAKKworYXJtNjQ6IEFic0Zsb2F0IFU6
RjozMiwgRDpGOjMyCisgICAgVG1wLCBUbXAKKwogQ2VpbERvdWJsZSBVOkY6NjQsIFVEOkY6NjQK
ICAgICBUbXAsIFRtcAogICAgIHg4NjogQWRkciwgVG1wCkBAIC0zODUsMTcgKzM5MSwxNyBAQCBN
b3ZlIFU6RzpQdHIsIEQ6RzpQdHIKICAgICBUbXAsIFRtcAogICAgIEltbSwgVG1wIGFzIHNpZ25F
eHRlbmQzMlRvUHRyCiAgICAgSW1tNjQsIFRtcAotICAgIHg4NjogQWRkciwgVG1wIGFzIGxvYWRQ
dHIgIyBUaGlzIG1lYW5zIHRoYXQgIk1vdmUgQWRkciwgVG1wIiBpcyBjb2RlLWdlbmVyYXRlZCBh
cyAibG9hZCIgbm90ICJtb3ZlIi4KKyAgICBBZGRyLCBUbXAgYXMgbG9hZFB0ciAjIFRoaXMgbWVh
bnMgdGhhdCAiTW92ZSBBZGRyLCBUbXAiIGlzIGNvZGUtZ2VuZXJhdGVkIGFzICJsb2FkIiBub3Qg
Im1vdmUiLgogICAgIEluZGV4LCBUbXAgYXMgbG9hZFB0cgotICAgIHg4NjogVG1wLCBBZGRyIGFz
IHN0b3JlUHRyCisgICAgVG1wLCBBZGRyIGFzIHN0b3JlUHRyCiAgICAgVG1wLCBJbmRleCBhcyBz
dG9yZVB0cgogICAgIHg4NjogSW1tLCBBZGRyIGFzIHN0b3JlUHRyCiAKIE1vdmUzMiBVOkc6MzIs
IFpEOkc6MzIKICAgICBUbXAsIFRtcCBhcyB6ZXJvRXh0ZW5kMzJUb1B0cgotICAgIHg4NjogQWRk
ciwgVG1wIGFzIGxvYWQzMgorICAgIEFkZHIsIFRtcCBhcyBsb2FkMzIKICAgICBJbmRleCwgVG1w
IGFzIGxvYWQzMgotICAgIHg4NjogVG1wLCBBZGRyIGFzIHN0b3JlMzIKKyAgICBUbXAsIEFkZHIg
YXMgc3RvcmUzMgogICAgIFRtcCwgSW5kZXggYXMgc3RvcmUzMgogICAgIHg4NjogSW1tLCBBZGRy
IGFzIHN0b3JlMzIKICAgICB4ODY6IEltbSwgSW5kZXggYXMgc3RvcmUzMgpAQCAtNDA1LDM2ICs0
MTEsMzYgQEAgU2lnbkV4dGVuZDMyVG9QdHIgVTpHOjMyLCBEOkc6UHRyCiAKIFplcm9FeHRlbmQ4
VG8zMiBVOkc6OCwgWkQ6RzozMgogICAgIFRtcCwgVG1wCi0gICAgeDg2OiBBZGRyLCBUbXAgYXMg
bG9hZDgKKyAgICBBZGRyLCBUbXAgYXMgbG9hZDgKICAgICBJbmRleCwgVG1wIGFzIGxvYWQ4CiAK
IFNpZ25FeHRlbmQ4VG8zMiBVOkc6OCwgWkQ6RzozMgogICAgIFRtcCwgVG1wCi0gICAgeDg2OiBB
ZGRyLCBUbXAgYXMgbG9hZDhTaWduZWRFeHRlbmRUbzMyCisgICAgQWRkciwgVG1wIGFzIGxvYWQ4
U2lnbmVkRXh0ZW5kVG8zMgogICAgIEluZGV4LCBUbXAgYXMgbG9hZDhTaWduZWRFeHRlbmRUbzMy
CiAKIFplcm9FeHRlbmQxNlRvMzIgVTpHOjE2LCBaRDpHOjMyCiAgICAgVG1wLCBUbXAKLSAgICB4
ODY6IEFkZHIsIFRtcCBhcyBsb2FkMTYKKyAgICBBZGRyLCBUbXAgYXMgbG9hZDE2CiAgICAgSW5k
ZXgsIFRtcCBhcyBsb2FkMTYKIAogU2lnbkV4dGVuZDE2VG8zMiBVOkc6MTYsIFpEOkc6MzIKICAg
ICBUbXAsIFRtcAotICAgIHg4NjogQWRkciwgVG1wIGFzIGxvYWQxNlNpZ25lZEV4dGVuZFRvMzIK
KyAgICBBZGRyLCBUbXAgYXMgbG9hZDE2U2lnbmVkRXh0ZW5kVG8zMgogICAgIEluZGV4LCBUbXAg
YXMgbG9hZDE2U2lnbmVkRXh0ZW5kVG8zMgogCiBNb3ZlRmxvYXQgVTpGOjMyLCBEOkY6MzIKICAg
ICBUbXAsIFRtcCBhcyBtb3ZlRG91YmxlCi0gICAgeDg2OiBBZGRyLCBUbXAgYXMgbG9hZEZsb2F0
CisgICAgQWRkciwgVG1wIGFzIGxvYWRGbG9hdAogICAgIEluZGV4LCBUbXAgYXMgbG9hZEZsb2F0
Ci0gICAgeDg2OiBUbXAsIEFkZHIgYXMgc3RvcmVGbG9hdAorICAgIFRtcCwgQWRkciBhcyBzdG9y
ZUZsb2F0CiAgICAgVG1wLCBJbmRleCBhcyBzdG9yZUZsb2F0CiAKIE1vdmVEb3VibGUgVTpGOjY0
LCBEOkY6NjQKICAgICBUbXAsIFRtcAotICAgIHg4NjogQWRkciwgVG1wIGFzIGxvYWREb3VibGUK
KyAgICBBZGRyLCBUbXAgYXMgbG9hZERvdWJsZQogICAgIEluZGV4LCBUbXAgYXMgbG9hZERvdWJs
ZQotICAgIHg4NjogVG1wLCBBZGRyIGFzIHN0b3JlRG91YmxlCisgICAgVG1wLCBBZGRyIGFzIHN0
b3JlRG91YmxlCiAgICAgVG1wLCBJbmRleCBhcyBzdG9yZURvdWJsZQogCiBNb3ZlWmVyb1RvRG91
YmxlIEQ6Rjo2NApAQCAtNDUyLDM5ICs0NTgsMzkgQEAgTW92ZTMyVG9GbG9hdCBVOkc6MzIsIEQ6
RjozMgogCiA2NDogTW92ZURvdWJsZVRvNjQgVTpGOjY0LCBEOkc6NjQKICAgICBUbXAsIFRtcAot
ICAgIHg4NjogQWRkciwgVG1wIGFzIGxvYWQ2NAorICAgIEFkZHIsIFRtcCBhcyBsb2FkNjQKICAg
ICBJbmRleCwgVG1wIGFzIGxvYWQ2NAogCiBNb3ZlRmxvYXRUbzMyIFU6RjozMiwgRDpHOjMyCiAg
ICAgVG1wLCBUbXAKLSAgICB4ODY6IEFkZHIsIFRtcCBhcyBsb2FkMzIKKyAgICBBZGRyLCBUbXAg
YXMgbG9hZDMyCiAgICAgSW5kZXgsIFRtcCBhcyBsb2FkMzIKIAogTG9hZDggVTpHOjgsIFpEOkc6
MzIKLSAgICB4ODY6IEFkZHIsIFRtcAorICAgIEFkZHIsIFRtcAogICAgIEluZGV4LCBUbXAKIAog
U3RvcmU4IFU6Rzo4LCBEOkc6OAogICAgIFRtcCwgSW5kZXgKLSAgICB4ODY6IFRtcCwgQWRkcgor
ICAgIFRtcCwgQWRkcgogICAgIHg4NjogSW1tLCBJbmRleAogICAgIHg4NjogSW1tLCBBZGRyCiAK
IExvYWQ4U2lnbmVkRXh0ZW5kVG8zMiBVOkc6OCwgWkQ6RzozMgotICAgIHg4NjogQWRkciwgVG1w
CisgICAgQWRkciwgVG1wCiAgICAgSW5kZXgsIFRtcAogCiBMb2FkMTYgVTpHOjE2LCBaRDpHOjMy
Ci0gICAgeDg2OiBBZGRyLCBUbXAKKyAgICBBZGRyLCBUbXAKICAgICBJbmRleCwgVG1wCiAKIExv
YWQxNlNpZ25lZEV4dGVuZFRvMzIgVTpHOjE2LCBaRDpHOjMyCi0gICAgeDg2OiBBZGRyLCBUbXAK
KyAgICBBZGRyLCBUbXAKICAgICBJbmRleCwgVG1wCiAKIFN0b3JlMTYgVTpHOjE2LCBEOkc6MTYK
ICAgICBUbXAsIEluZGV4Ci0gICAgeDg2OiBUbXAsIEFkZHIKKyAgICBUbXAsIEFkZHIKIAogQ29t
cGFyZTMyIFU6RzozMiwgVTpHOjMyLCBVOkc6MzIsIFpEOkc6MzIKICAgICBSZWxDb25kLCBUbXAs
IFRtcCwgVG1wCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268319</attachid>
            <date>2016-01-05 13:38:10 -0800</date>
            <delta_ts>2016-01-06 02:43:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152737-20160105223736.patch</filename>
            <type>text/plain</type>
            <size>26214</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0NTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
ZmVjNzE3NzgyMjYxZWIxNTViMjI3Y2FhMTEzYzFkM2E1YmJlM2Q3Li41YjU3ZGZlMmI5ZmVkNWY4
MzYxMWU3N2YxZjlkNGQ3MmJjNTdjYzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OSBAQAorMjAxNi0wMS0wNSAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBbSlNDXSBHZXQgbW9yZSBvZiB0ZXN0YjMgdG8gcGFzcyBvbiBBUk02
NAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUyNzM3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQSBidW5j
aCBvZiBtaW5vciBidWdzIGFuZCBtaXNzaW5nIGZ1bmN0aW9uIHRvIG1ha2UgbW9zdCBvZiB0ZXN0
YjMKKyAgICAgICAgcnVuIG9uIEFSTTY0LgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBhc3NlbWJsZXIvQVJNNjRBc3NlbWJs
ZXIuaDoKKyAgICAgICAgKEpTQzo6QVJNNjRBc3NlbWJsZXI6OmNhbkVuY29kZVBJbW1PZmZzZXQp
OgorICAgICAgICAoSlNDOjpBUk02NEFzc2VtYmxlcjo6Y2FuRW5jb2RlU0ltbU9mZnNldCk6Cisg
ICAgICAgIChKU0M6OmlzSW50OSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmlzVUludDEyKTog
RGVsZXRlZC4KKyAgICAgICAgKiBhc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaDoKKyAgICAgICAg
KiBhc3NlbWJsZXIvQXNzZW1ibGVyQ29tbW9uLmg6IEFkZGVkLgorICAgICAgICAoSlNDOjppc0lu
dDkpOgorICAgICAgICAoSlNDOjppc1VJbnQxMik6CisgICAgICAgIChKU0M6OmlzVmFsaWRTY2Fs
ZWRVSW1tMTIpOgorICAgICAgICAoSlNDOjppc1ZhbGlkU2lnbmVkSW1tOSk6CisgICAgICAgICog
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3Nl
bWJsZXJBUk02NDo6bG9hZDE2U2lnbmVkRXh0ZW5kVG8zMik6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNNjQ6OmxvYWQ4U2lnbmVkRXh0ZW5kVG8zMik6CisgICAgICAgIChKU0M6Ok1h
Y3JvQXNzZW1ibGVyQVJNNjQ6OnN0b3JlMTYpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxl
ckFSTTY0OjphYnNGbG9hdCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6Omxv
YWRGbG9hdCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OnN0b3JlRmxvYXQp
OgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0Ojpsb2FkU2lnbmVkQWRkcmVzc2Vk
QnlVbnNpZ25lZEltbWVkaWF0ZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6
OmxvYWRTaWduZWRBZGRyZXNzZWRCeVVuc2NhbGVkSW1tZWRpYXRlKToKKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXJBUk02NDo6dHJ5TG9hZFNpZ25lZFdpdGhPZmZzZXQpOgorICAgICAgICAo
SlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0Ojpsb2FkU2lnbmVkQWRkcmVzc2VkQnlVbnNpZ25lZElt
bWVkaWF0ZTw4Pik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6OmxvYWRTaWdu
ZWRBZGRyZXNzZWRCeVVuc2lnbmVkSW1tZWRpYXRlPDE2Pik6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNNjQ6OmxvYWRTaWduZWRBZGRyZXNzZWRCeVVuc2NhbGVkSW1tZWRpYXRlPDg+
KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZFNpZ25lZEFkZHJlc3Nl
ZEJ5VW5zY2FsZWRJbW1lZGlhdGU8MTY+KToKKyAgICAgICAgKiBhc3NlbWJsZXIvWDg2QXNzZW1i
bGVyLmg6CisgICAgICAgICogYjMvQjNMb3dlclRvQWlyLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6
OkFpcjo6TG93ZXJUb0Fpcjo6ZWZmZWN0aXZlQWRkcik6CisgICAgICAgIChKU0M6OkIzOjpBaXI6
Okxvd2VyVG9BaXI6Omxvd2VyKToKKyAgICAgICAgKiBiMy9haXIvQWlyQXJnLmg6CisgICAgICAg
IChKU0M6OkIzOjpBaXI6OkFyZzo6aXNWYWxpZEltbUZvcm0pOgorICAgICAgICAoSlNDOjpCMzo6
QWlyOjpBcmc6OmlzVmFsaWRBZGRyRm9ybSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6
aXNWYWxpZEZvcm0pOgorICAgICAgICAqIGIzL2Fpci9BaXJPcGNvZGUub3Bjb2RlczoKKwogMjAx
Ni0wMS0wNCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBUdXJuIG9mZiBJbnRlcm5hbCBGdW5jdGlvbiBpbmxpbmluZyBpbiB0aGUgREZHIGZvciBzdXBl
ciBjYWxscy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjM2N2U4YmNlZmNkM2Y4
MzVjOWI1MDc2NTc5NGUzZGM2YjI5ZDU5OC4uZGM2NTI3NDFjMmFmMWFlYjYyNDlkM2YyZjBmNjM5
ODI1YjA1ZWM3NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTExNDksNiArMTE0
OSw3IEBACiAJCTQzNDIyQTY3MUMxNjI2NzgwMEUyRUI5OCAvKiBCM1JlZHVjZURvdWJsZVRvRmxv
YXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzNDIy
QTY1MUMxNjIyMUUwMEUyRUI5OCAvKiBCM1JlZHVjZURvdWJsZVRvRmxvYXQuaCAqLzsgfTsKIAkJ
NDNBQjI2QzYxQzFBNTM1OTAwRDgyQUU2IC8qIEIzTWF0aEV4dHJhcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDNBQjI2QzUxQzFBNTJGNzAwRDgyQUU2
IC8qIEIzTWF0aEV4dHJhcy5oICovOyB9OwogCQk0M0FCMjZDNzFDMUE1MzVDMDBEODJBRTYgLyog
QjNNYXRoRXh0cmFzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQzQUIyNkM0MUMxQTUyRjcwMEQ4MkFFNiAvKiBCM01hdGhFeHRyYXMuY3BwICovOyB9
OworCQk0M0MzOTJBQjFDM0JFQjA1MDAyNDFGNTMgLyogQXNzZW1ibGVyQ29tbW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0M0MzOTJBQTFDM0JFQjAw
MDAyNDFGNTMgLyogQXNzZW1ibGVyQ29tbW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDQ0M0FFMzMxNkUxODhEOTAwNzZGMTEwIC8qIEZvdW5k
YXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTFGMEVCNjEwNUM4NkM2QjAwRTZERjFCIC8qIEZvdW5kYXRpb24uZnJhbWV3b3Jr
ICovOyB9OwogCQk0NTE1MzlCOTEyREM5OTQ1MDBFRjdBQzQgLyogWWFyci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDUxNTM5QjgxMkRDOTk0NTAwRUY3
QUM0IC8qIFlhcnIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk1MjY3OEY4RTFBMDMxMDA5MDA2QTMwNkQgLyogQmFzaWNCbG9ja0xvY2F0aW9uLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyNjc4RjhD
MUEwMzEwMDkwMDZBMzA2RCAvKiBCYXNpY0Jsb2NrTG9jYXRpb24uY3BwICovOyB9OwpAQCAtMjA1
NSw4ICsyMDU2LDggQEAKIAkJRkU3QkE2MEYxQTFBN0NFQzAwRjFGN0I0IC8qIEhlYXBWZXJpZmll
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTdC
QTYwRDFBMUE3Q0VDMDBGMUY3QjQgLyogSGVhcFZlcmlmaWVyLmNwcCAqLzsgfTsKIAkJRkU3QkE2
MTAxQTFBN0NFQzAwRjFGN0I0IC8qIEhlYXBWZXJpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU3QkE2MEUxQTFBN0NFQzAwRjFGN0I0IC8qIEhl
YXBWZXJpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUZFN0M0MTk2MUI5N0ZDNEIwMEY0RDU5OCAvKiBQaW5nUG9uZ1N0YWNrT3ZlcmZsb3dU
ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZF
REE1MEQ0MUI5N0Y0NDIwMDlBM0I0RiAvKiBQaW5nUG9uZ1N0YWNrT3ZlcmZsb3dUZXN0LmNwcCAq
LzsgfTsKLQkJRkU5OUIyNDkxQzI0QzNEMzAwQzgyMTU5IC8qIEpJVE5lZ0dlbmVyYXRvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkU5OUIyNDgxQzI0
QjZEMzAwQzgyMTU5IC8qIEpJVE5lZ0dlbmVyYXRvci5oICovOyBzZXR0aW5ncyA9IHtBU1NFVF9U
QUdTID0gKCk7IH07IH07Ci0JCUZFOTlCMjRBMUMyNEMzRDcwMEM4MjE1OSAvKiBKSVROZWdHZW5l
cmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RkU5OUIyNDcxQzI0QjZEMzAwQzgyMTU5IC8qIEpJVE5lZ0dlbmVyYXRvci5jcHAgKi87IHNldHRp
bmdzID0ge0FTU0VUX1RBR1MgPSAoKTsgfTsgfTsKKwkJRkU5OUIyNDkxQzI0QzNEMzAwQzgyMTU5
IC8qIEpJVE5lZ0dlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRkU5OUIyNDgxQzI0QjZEMzAwQzgyMTU5IC8qIEpJVE5lZ0dlbmVyYXRvci5o
ICovOyB9OworCQlGRTk5QjI0QTFDMjRDM0Q3MDBDODIxNTkgLyogSklUTmVnR2VuZXJhdG9yLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFOTlCMjQ3
MUMyNEI2RDMwMEM4MjE1OSAvKiBKSVROZWdHZW5lcmF0b3IuY3BwICovOyB9OwogCQlGRUEwODYy
MDE4MkI3QTA0MDBGNkQ4NTEgLyogQnJlYWtwb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkVBMDg2MUUxODJCN0EwNDAwRjZEODUxIC8qIEJyZWFr
cG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlGRUEwODYyMTE4MkI3QTA0MDBGNkQ4NTEgLyogRGVidWdnZXJQcmltaXRpdmVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRUEwODYxRjE4MkI3QTA0
MDBGNkQ4NTEgLyogRGVidWdnZXJQcmltaXRpdmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkVBMUU0MzkxQzIxM0EyQjAwMjc3QTE2IC8qIFZh
bHVlUHJvZmlsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGRUExRTQzODFDMjEzQTI2MDAyNzdBMTYgLyogVmFsdWVQcm9maWxlLmNwcCAqLzsgfTsK
QEAgLTMyNDksNiArMzI1MCw3IEBACiAJCTQzNDIyQTY1MUMxNjIyMUUwMEUyRUI5OCAvKiBCM1Jl
ZHVjZURvdWJsZVRvRmxvYXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQjNS
ZWR1Y2VEb3VibGVUb0Zsb2F0Lmg7IHBhdGggPSBiMy9CM1JlZHVjZURvdWJsZVRvRmxvYXQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDNBQjI2QzQxQzFBNTJGNzAwRDgyQUU2IC8q
IEIzTWF0aEV4dHJhcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBC
M01hdGhFeHRyYXMuY3BwOyBwYXRoID0gYjMvQjNNYXRoRXh0cmFzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDNBQjI2QzUxQzFBNTJGNzAwRDgyQUU2IC8qIEIzTWF0aEV4dHJh
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM01hdGhFeHRyYXMuaDsgcGF0
aCA9IGIzL0IzTWF0aEV4dHJhcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0M0Mz
OTJBQTFDM0JFQjAwMDAyNDFGNTMgLyogQXNzZW1ibGVyQ29tbW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEFzc2VtYmxlckNvbW1vbi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0NDkwOTdFRTBGOEY4MUI1MDA3NkEzMjcgLyogRmVhdHVyZURlZmluZXMueGNj
b25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gRmVhdHVyZURlZmluZXMueGNj
b25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ1MTUzOUI4MTJEQzk5NDUwMEVG
N0FDNCAvKiBZYXJyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFlhcnIuaDsg
cGF0aCA9IHlhcnIvWWFyci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NUUxMkQ4
ODA2QTQ5QjBGMDBFOURGODQgLyoganNjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGpzYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHRhYldpZHRoID0gNDsgfTsKQEAgLTYzODIsNiArNjM4NCw3IEBACiAJCQkJODZBREQxNDMw
RkRERUE5ODAwMDZFRUMyIC8qIEFSTXY3QXNzZW1ibGVyLmggKi8sCiAJCQkJOTY4OENCMTMwRUQx
MkI0RTAwMUQ2NDlGIC8qIEFzc2VtYmxlckJ1ZmZlci5oICovLAogCQkJCTg2RDNCMkMxMTAxNTZC
REUwMDI4NjVFNyAvKiBBc3NlbWJsZXJCdWZmZXJXaXRoQ29uc3RhbnRQb29sLmggKi8sCisJCQkJ
NDNDMzkyQUExQzNCRUIwMDAwMjQxRjUzIC8qIEFzc2VtYmxlckNvbW1vbi5oICovLAogCQkJCTg2
RTExNkIwMEZFNzVBQzgwMEI1MTJCQyAvKiBDb2RlTG9jYXRpb24uaCAqLywKIAkJCQkwRjM3MzA4
RTFDMENENjg1MDAwNTJCRkEgLyogRGlzYWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlLmgg
Ki8sCiAJCQkJMEZGNDI3NTYxNTkxNEEyMDAwNENCOUZGIC8qIExpbmtCdWZmZXIuY3BwICovLApA
QCAtNzE5Nyw2ICs3MjAwLDcgQEAKIAkJCQkwRkE1ODFCQzE1MEU5NTMwMDBCOUEyRDkgLyogREZH
Tm9kZVR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkI5Q0U3MTlEMEJBN0QwMEIxRDFCNSAv
KiBERkdPYmplY3RBbGxvY2F0aW9uU2lua2luZ1BoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjJCOUNFOTE5RDBCQTdEMDBCMUQxQjUgLyogREZHT2JqZWN0TWF0ZXJpYWxpemF0aW9uRGF0YS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNDNDMzkyQUIxQzNCRUIwNTAwMjQxRjUzIC8qIEFzc2VtYmxl
ckNvbW1vbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZFQzlERDAxMzI4REY4MjAwMkIyQUQ3IC8q
IERGR09wZXJhdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3RDg5Q0ZFMTdBMEI4Q0MwMDc3
M0FEOCAvKiBERkdPU1JBdmFpbGFiaWxpdHlBbmFseXNpc1BoYXNlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkQ4MkU1NzE0MURBRjEwMDAxNzlDOTQgLyogREZHT1NSRW50cnkuaCBpbiBIZWFkZXJz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk02NEFz
c2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk02NEFzc2VtYmxl
ci5oCmluZGV4IDA4MGU3NjEwNWIzYjhhNWYwYTdjM2U3YjUwMDQzN2Q2ZGVkZDFjNGQuLjNjZTU0
YzI3ODU1OTNhYjY1MjQ4MzUzYzY2YjdkZDBiZmY4OTMxNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTTY0QXNzZW1ibGVyLmgKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpZiBFTkFCTEUoQVNTRU1CTEVSKSAmJiBDUFUoQVJNNjQpCiAKICNpbmNsdWRlICJBc3NlbWJs
ZXJCdWZmZXIuaCIKKyNpbmNsdWRlICJBc3NlbWJsZXJDb21tb24uaCIKICNpbmNsdWRlIDxsaW1p
dHMuaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KQEAgLTUyLDExICs1Myw2IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBpc0ludDcoaW50MzJfdCB2
YWx1ZSkKICAgICByZXR1cm4gdmFsdWUgPT0gKCh2YWx1ZSA8PCAyNSkgPj4gMjUpOwogfQogCi1B
TFdBWVNfSU5MSU5FIGJvb2wgaXNJbnQ5KGludDMyX3QgdmFsdWUpCi17Ci0gICAgcmV0dXJuIHZh
bHVlID09ICgodmFsdWUgPDwgMjMpID4+IDIzKTsKLX0KLQogQUxXQVlTX0lOTElORSBib29sIGlz
SW50MTEoaW50MzJfdCB2YWx1ZSkKIHsKICAgICByZXR1cm4gdmFsdWUgPT0gKCh2YWx1ZSA8PCAy
MSkgPj4gMjEpOwpAQCAtNjcsMTYgKzYzLDYgQEAgQUxXQVlTX0lOTElORSBib29sIGlzVUludDUo
aW50MzJfdCB2YWx1ZSkKICAgICByZXR1cm4gISh2YWx1ZSAmIH4weDFmKTsKIH0KIAotQUxXQVlT
X0lOTElORSBib29sIGlzVUludDEyKGludDMyX3QgdmFsdWUpCi17Ci0gICAgcmV0dXJuICEodmFs
dWUgJiB+MHhmZmYpOwotfQotCi1BTFdBWVNfSU5MSU5FIGJvb2wgaXNVSW50MTIoaW50cHRyX3Qg
dmFsdWUpCi17Ci0gICAgcmV0dXJuICEodmFsdWUgJiB+MHhmZmZMKTsKLX0KLQogY2xhc3MgVUlu
dDUgewogcHVibGljOgogICAgIGV4cGxpY2l0IFVJbnQ1KGludCB2YWx1ZSkKQEAgLTcxNywxOSAr
NzAzLDEyIEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTxpbnQgZGF0YXNpemU+CiAgICAgc3RhdGlj
IGJvb2wgY2FuRW5jb2RlUEltbU9mZnNldChpbnQzMl90IG9mZnNldCkKICAgICB7Ci0gICAgICAg
IGludDMyX3QgbWF4UEltbSA9IDQwOTUgKiAoZGF0YXNpemUgLyA4KTsKLSAgICAgICAgaWYgKG9m
ZnNldCA8IDApCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmIChvZmZzZXQg
PiBtYXhQSW1tKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAob2Zmc2V0
ICYgKChkYXRhc2l6ZSAvIDggKSAtIDEpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIGlzVmFsaWRTY2FsZWRVSW1tMTI8ZGF0
YXNpemU+KG9mZnNldCk7CiAgICAgfQogCiAgICAgc3RhdGljIGJvb2wgY2FuRW5jb2RlU0ltbU9m
ZnNldChpbnQzMl90IG9mZnNldCkKICAgICB7Ci0gICAgICAgIHJldHVybiBpc0ludDkob2Zmc2V0
KTsKKyAgICAgICAgcmV0dXJuIGlzVmFsaWRTaWduZWRJbW05KG9mZnNldCk7CiAgICAgfQogCiBw
cml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12
N0Fzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2Vt
Ymxlci5oCmluZGV4IGQ3MGEyZTdkZWFhYjdkNjNlYjE1YTM2NThiYWRjN2ZkNGFmYTk0ZTcuLjZi
OWYzMDVlOTI3NDY5ZjFiMjM1ZGJiZjdhMjVkMjMxODkzZmRmZGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgKQEAgLTMwLDYgKzMwLDcg
QEAKICNpZiBFTkFCTEUoQVNTRU1CTEVSKSAmJiBDUFUoQVJNX1RIVU1CMikKIAogI2luY2x1ZGUg
IkFzc2VtYmxlckJ1ZmZlci5oIgorI2luY2x1ZGUgIkFzc2VtYmxlckNvbW1vbi5oIgogI2luY2x1
ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9B
c3NlbWJsZXJDb21tb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQXNzZW1i
bGVyQ29tbW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjQ0YTYyNGEwZDExNDNhNmVkNmRiZjMzNzdkZjM1MTcz
ZDRjNWFkZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvQXNzZW1ibGVyQ29tbW9uLmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiwgMjAxNCwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQXNzZW1ibGVy
Q29tbW9uX2gKKyNkZWZpbmUgQXNzZW1ibGVyQ29tbW9uX2gKKworbmFtZXNwYWNlIEpTQyB7CisK
K0FMV0FZU19JTkxJTkUgYm9vbCBpc0ludDkoaW50MzJfdCB2YWx1ZSkKK3sKKyAgICByZXR1cm4g
dmFsdWUgPT0gKCh2YWx1ZSA8PCAyMykgPj4gMjMpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBU
eXBlPgorQUxXQVlTX0lOTElORSBib29sIGlzVUludDEyKFR5cGUgdmFsdWUpCit7CisgICAgcmV0
dXJuICEodmFsdWUgJiB+c3RhdGljX2Nhc3Q8VHlwZT4oMHhmZmYpKTsKK30KKwordGVtcGxhdGU8
aW50IGRhdGFzaXplPgorQUxXQVlTX0lOTElORSBib29sIGlzVmFsaWRTY2FsZWRVSW1tMTIoaW50
MzJfdCBvZmZzZXQpCit7CisgICAgaW50MzJfdCBtYXhQSW1tID0gNDA5NSAqIChkYXRhc2l6ZSAv
IDgpOworICAgIGlmIChvZmZzZXQgPCAwKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYg
KG9mZnNldCA+IG1heFBJbW0pCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAob2Zmc2V0
ICYgKChkYXRhc2l6ZSAvIDgpIC0gMSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKworQUxXQVlTX0lOTElORSBib29sIGlzVmFsaWRTaWduZWRJbW05KGludDMy
X3QgdmFsdWUpCit7CisgICAgcmV0dXJuIGlzSW50OSh2YWx1ZSk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIEpTQy4KKworI2VuZGlmIC8vIEFzc2VtYmxlckNvbW1vbl9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCmluZGV4IGFl
YTY2NmU4OGRkZjQyNDY4N2YwOTM2NTViM2ViODhhZDA5Y2ExZDYuLmUzNGYwMzRmN2I4MWFkZDZj
ZWQ5YTJjYTFkNWQ4NGY5MzY5ODhjNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCkBAIC05ODUsNiArOTg1LDE1IEBA
IHB1YmxpYzoKICAgICAgICAgbG9hZDE2KGFkZHJlc3MsIGRlc3QpOwogICAgIH0KIAorICAgIHZv
aWQgbG9hZDE2U2lnbmVkRXh0ZW5kVG8zMihJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0
ZXJJRCBkZXN0KQorICAgIHsKKyAgICAgICAgaWYgKHRyeUxvYWRTaWduZWRXaXRoT2Zmc2V0PDE2
PihkZXN0LCBhZGRyZXNzLmJhc2UsIGFkZHJlc3Mub2Zmc2V0KSkKKyAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICBzaWduRXh0ZW5kMzJUb1B0cihUcnVzdGVkSW1tMzIoYWRkcmVzcy5vZmZz
ZXQpLCBnZXRDYWNoZWRNZW1vcnlUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKSk7CisgICAg
ICAgIG1fYXNzZW1ibGVyLmxkcnNoPDMyPihkZXN0LCBhZGRyZXNzLmJhc2UsIG1lbW9yeVRlbXBS
ZWdpc3Rlcik7CisgICAgfQorCiAgICAgdm9pZCBsb2FkMTZTaWduZWRFeHRlbmRUbzMyKEJhc2VJ
bmRleCBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBpZiAoIWFkZHJl
c3Mub2Zmc2V0ICYmICghYWRkcmVzcy5zY2FsZSB8fCBhZGRyZXNzLnNjYWxlID09IDEpKSB7CkBA
IC0xMDM2LDYgKzEwNDUsMTUgQEAgcHVibGljOgogICAgICAgICAgICAgbV9jYWNoZWRNZW1vcnlU
ZW1wUmVnaXN0ZXIuaW52YWxpZGF0ZSgpOwogICAgIH0KIAorICAgIHZvaWQgbG9hZDhTaWduZWRF
eHRlbmRUbzMyKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCisgICAg
eworICAgICAgICBpZiAodHJ5TG9hZFNpZ25lZFdpdGhPZmZzZXQ8OD4oZGVzdCwgYWRkcmVzcy5i
YXNlLCBhZGRyZXNzLm9mZnNldCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgc2ln
bkV4dGVuZDMyVG9QdHIoVHJ1c3RlZEltbTMyKGFkZHJlc3Mub2Zmc2V0KSwgZ2V0Q2FjaGVkTWVt
b3J5VGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOworICAgICAgICBtX2Fzc2VtYmxlci5s
ZHJzYjwzMj4oZGVzdCwgYWRkcmVzcy5iYXNlLCBtZW1vcnlUZW1wUmVnaXN0ZXIpOworICAgIH0K
KwogICAgIHZvaWQgbG9hZDhTaWduZWRFeHRlbmRUbzMyKEJhc2VJbmRleCBhZGRyZXNzLCBSZWdp
c3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBpZiAoIWFkZHJlc3Mub2Zmc2V0ICYmICFhZGRy
ZXNzLnNjYWxlKSB7CkBAIC0xMTg2LDYgKzEyMDQsMTUgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gbGFiZWw7CiAgICAgfQogCisgICAgdm9pZCBzdG9yZTE2KFJlZ2lzdGVySUQgc3JjLCBJbXBs
aWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB7CisgICAgICAgIGlmICh0cnlTdG9yZVdpdGhPZmZz
ZXQ8MTY+KHNyYywgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLm9mZnNldCkpCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgc2lnbkV4dGVuZDMyVG9QdHIoVHJ1c3RlZEltbTMyKGFkZHJlc3Mu
b2Zmc2V0KSwgZ2V0Q2FjaGVkTWVtb3J5VGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOwor
ICAgICAgICBtX2Fzc2VtYmxlci5zdHI8MTY+KHNyYywgYWRkcmVzcy5iYXNlLCBtZW1vcnlUZW1w
UmVnaXN0ZXIpOworICAgIH0KKwogICAgIHZvaWQgc3RvcmUxNihSZWdpc3RlcklEIHNyYywgQmFz
ZUluZGV4IGFkZHJlc3MpCiAgICAgewogICAgICAgICBpZiAoIWFkZHJlc3Mub2Zmc2V0ICYmICgh
YWRkcmVzcy5zY2FsZSB8fCBhZGRyZXNzLnNjYWxlID09IDEpKSB7CkBAIC0xMjYyLDYgKzEyODks
MTEgQEAgcHVibGljOgogICAgICAgICBtX2Fzc2VtYmxlci5mYWJzPDY0PihkZXN0LCBzcmMpOwog
ICAgIH0KIAorICAgIHZvaWQgYWJzRmxvYXQoRlBSZWdpc3RlcklEIHNyYywgRlBSZWdpc3RlcklE
IGRlc3QpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci5mYWJzPDMyPihkZXN0LCBzcmMpOwor
ICAgIH0KKwogICAgIHZvaWQgYWRkRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJ
RCBkZXN0KQogICAgIHsKICAgICAgICAgYWRkRG91YmxlKGRlc3QsIHNyYywgZGVzdCk7CkBAIC0x
NDQ5LDYgKzE0ODEsMTUgQEAgcHVibGljOgogICAgICAgICBtX2Fzc2VtYmxlci5sZHI8NjQ+KGRl
c3QsIG1lbW9yeVRlbXBSZWdpc3RlciwgQVJNNjRSZWdpc3RlcnM6OnpyKTsKICAgICB9CiAKKyAg
ICB2b2lkIGxvYWRGbG9hdChJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgRlBSZWdpc3RlcklEIGRl
c3QpCisgICAgeworICAgICAgICBpZiAodHJ5TG9hZFdpdGhPZmZzZXQ8MzI+KGRlc3QsIGFkZHJl
c3MuYmFzZSwgYWRkcmVzcy5vZmZzZXQpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IHNpZ25FeHRlbmQzMlRvUHRyKFRydXN0ZWRJbW0zMihhZGRyZXNzLm9mZnNldCksIGdldENhY2hl
ZE1lbW9yeVRlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpKTsKKyAgICAgICAgbV9hc3NlbWJs
ZXIubGRyPDMyPihkZXN0LCBhZGRyZXNzLmJhc2UsIG1lbW9yeVRlbXBSZWdpc3Rlcik7CisgICAg
fQorCiAgICAgdm9pZCBsb2FkRmxvYXQoQmFzZUluZGV4IGFkZHJlc3MsIEZQUmVnaXN0ZXJJRCBk
ZXN0KQogICAgIHsKICAgICAgICAgaWYgKCFhZGRyZXNzLm9mZnNldCAmJiAoIWFkZHJlc3Muc2Nh
bGUgfHwgYWRkcmVzcy5zY2FsZSA9PSAyKSkgewpAQCAtMTU5Niw2ICsxNjM3LDE1IEBAIHB1Ymxp
YzoKICAgICAgICAgbV9hc3NlbWJsZXIuYWRkPDY0PihtZW1vcnlUZW1wUmVnaXN0ZXIsIG1lbW9y
eVRlbXBSZWdpc3RlciwgYWRkcmVzcy5pbmRleCwgQVJNNjRBc3NlbWJsZXI6OlVYVFgsIGFkZHJl
c3Muc2NhbGUpOwogICAgICAgICBtX2Fzc2VtYmxlci5zdHI8NjQ+KHNyYywgYWRkcmVzcy5iYXNl
LCBtZW1vcnlUZW1wUmVnaXN0ZXIpOwogICAgIH0KKworICAgIHZvaWQgc3RvcmVGbG9hdChGUFJl
Z2lzdGVySUQgc3JjLCBJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcykKKyAgICB7CisgICAgICAgIGlm
ICh0cnlTdG9yZVdpdGhPZmZzZXQ8MzI+KHNyYywgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLm9mZnNl
dCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgc2lnbkV4dGVuZDMyVG9QdHIoVHJ1
c3RlZEltbTMyKGFkZHJlc3Mub2Zmc2V0KSwgZ2V0Q2FjaGVkTWVtb3J5VGVtcFJlZ2lzdGVySURB
bmRJbnZhbGlkYXRlKCkpOworICAgICAgICBtX2Fzc2VtYmxlci5zdHI8MzI+KHNyYywgYWRkcmVz
cy5iYXNlLCBtZW1vcnlUZW1wUmVnaXN0ZXIpOworICAgIH0KICAgICAKICAgICB2b2lkIHN0b3Jl
RmxvYXQoRlBSZWdpc3RlcklEIHNyYywgQmFzZUluZGV4IGFkZHJlc3MpCiAgICAgewpAQCAtMjg4
Miw2ICsyOTMyLDE4IEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgdGVtcGxhdGU8aW50IGRhdGFz
aXplPgorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBsb2FkU2lnbmVkQWRkcmVzc2VkQnlVbnNpZ25l
ZEltbWVkaWF0ZShSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJuLCB1bnNpZ25lZCBwaW1tKQor
ICAgIHsKKyAgICAgICAgbG9hZFVuc2lnbmVkSW1tZWRpYXRlPGRhdGFzaXplPihydCwgcm4sIHBp
bW0pOworICAgIH0KKworICAgIHRlbXBsYXRlPGludCBkYXRhc2l6ZT4KKyAgICBBTFdBWVNfSU5M
SU5FIHZvaWQgbG9hZFNpZ25lZEFkZHJlc3NlZEJ5VW5zY2FsZWRJbW1lZGlhdGUoUmVnaXN0ZXJJ
RCBydCwgUmVnaXN0ZXJJRCBybiwgaW50IHNpbW0pCisgICAgeworICAgICAgICBsb2FkVW5zY2Fs
ZWRJbW1lZGlhdGU8ZGF0YXNpemU+KHJ0LCBybiwgc2ltbSk7CisgICAgfQorCisgICAgdGVtcGxh
dGU8aW50IGRhdGFzaXplPgogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzdG9yZVVuc2lnbmVkSW1t
ZWRpYXRlKFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcm4sIHVuc2lnbmVkIHBpbW0pCiAgICAg
ewogICAgICAgICBtX2Fzc2VtYmxlci5zdHI8ZGF0YXNpemU+KHJ0LCBybiwgcGltbSk7CkBAIC0z
MDY0LDYgKzMxMjYsMjAgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICB0ZW1wbGF0ZTxpbnQgZGF0
YXNpemU+CisgICAgQUxXQVlTX0lOTElORSBib29sIHRyeUxvYWRTaWduZWRXaXRoT2Zmc2V0KFJl
Z2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcm4sIGludDMyX3Qgb2Zmc2V0KQorICAgIHsKKyAgICAg
ICAgaWYgKEFSTTY0QXNzZW1ibGVyOjpjYW5FbmNvZGVTSW1tT2Zmc2V0KG9mZnNldCkpIHsKKyAg
ICAgICAgICAgIGxvYWRTaWduZWRBZGRyZXNzZWRCeVVuc2NhbGVkSW1tZWRpYXRlPGRhdGFzaXpl
PihydCwgcm4sIG9mZnNldCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQor
ICAgICAgICBpZiAoQVJNNjRBc3NlbWJsZXI6OmNhbkVuY29kZVBJbW1PZmZzZXQ8ZGF0YXNpemU+
KG9mZnNldCkpIHsKKyAgICAgICAgICAgIGxvYWRTaWduZWRBZGRyZXNzZWRCeVVuc2lnbmVkSW1t
ZWRpYXRlPGRhdGFzaXplPihydCwgcm4sIHN0YXRpY19jYXN0PHVuc2lnbmVkPihvZmZzZXQpKTsK
KyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxpbnQgZGF0YXNpemU+CiAgICAgQUxXQVlTX0lOTElO
RSBib29sIHRyeUxvYWRXaXRoT2Zmc2V0KEZQUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBybiwg
aW50MzJfdCBvZmZzZXQpCiAgICAgewogICAgICAgICBpZiAoQVJNNjRBc3NlbWJsZXI6OmNhbkVu
Y29kZVNJbW1PZmZzZXQob2Zmc2V0KSkgewpAQCAtMzE1Nyw2ICszMjMzLDE4IEBAIEFMV0FZU19J
TkxJTkUgdm9pZCBNYWNyb0Fzc2VtYmxlckFSTTY0Ojpsb2FkVW5zaWduZWRJbW1lZGlhdGU8MTY+
KFJlZ2lzdGVySUQgcnQsCiB9CiAKIHRlbXBsYXRlPD4KK0FMV0FZU19JTkxJTkUgdm9pZCBNYWNy
b0Fzc2VtYmxlckFSTTY0Ojpsb2FkU2lnbmVkQWRkcmVzc2VkQnlVbnNpZ25lZEltbWVkaWF0ZTw4
PihSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJuLCB1bnNpZ25lZCBwaW1tKQoreworICAgIG1f
YXNzZW1ibGVyLmxkcnNiPDY0PihydCwgcm4sIHBpbW0pOworfQorCit0ZW1wbGF0ZTw+CitBTFdB
WVNfSU5MSU5FIHZvaWQgTWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZFNpZ25lZEFkZHJlc3NlZEJ5
VW5zaWduZWRJbW1lZGlhdGU8MTY+KFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcm4sIHVuc2ln
bmVkIHBpbW0pCit7CisgICAgbV9hc3NlbWJsZXIubGRyc2g8NjQ+KHJ0LCBybiwgcGltbSk7Cit9
CisKK3RlbXBsYXRlPD4KIEFMV0FZU19JTkxJTkUgdm9pZCBNYWNyb0Fzc2VtYmxlckFSTTY0Ojps
b2FkVW5zY2FsZWRJbW1lZGlhdGU8OD4oUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBybiwgaW50
IHNpbW0pCiB7CiAgICAgbV9hc3NlbWJsZXIubGR1cmIocnQsIHJuLCBzaW1tKTsKQEAgLTMxNjks
NiArMzI1NywxOCBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgTWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9h
ZFVuc2NhbGVkSW1tZWRpYXRlPDE2PihSZWdpc3RlcklEIHJ0LAogfQogCiB0ZW1wbGF0ZTw+CitB
TFdBWVNfSU5MSU5FIHZvaWQgTWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9hZFNpZ25lZEFkZHJlc3Nl
ZEJ5VW5zY2FsZWRJbW1lZGlhdGU8OD4oUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBybiwgaW50
IHNpbW0pCit7CisgICAgbV9hc3NlbWJsZXIubGR1cnNiPDY0PihydCwgcm4sIHNpbW0pOworfQor
Cit0ZW1wbGF0ZTw+CitBTFdBWVNfSU5MSU5FIHZvaWQgTWFjcm9Bc3NlbWJsZXJBUk02NDo6bG9h
ZFNpZ25lZEFkZHJlc3NlZEJ5VW5zY2FsZWRJbW1lZGlhdGU8MTY+KFJlZ2lzdGVySUQgcnQsIFJl
Z2lzdGVySUQgcm4sIGludCBzaW1tKQoreworICAgIG1fYXNzZW1ibGVyLmxkdXJzaDw2ND4ocnQs
IHJuLCBzaW1tKTsKK30KKwordGVtcGxhdGU8PgogQUxXQVlTX0lOTElORSB2b2lkIE1hY3JvQXNz
ZW1ibGVyQVJNNjQ6OnN0b3JlVW5zaWduZWRJbW1lZGlhdGU8OD4oUmVnaXN0ZXJJRCBydCwgUmVn
aXN0ZXJJRCBybiwgdW5zaWduZWQgcGltbSkKIHsKICAgICBtX2Fzc2VtYmxlci5zdHJiKHJ0LCBy
biwgcGltbSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4
NkFzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJs
ZXIuaAppbmRleCA3ODI2YjYyZWIzYTBmYWYxMDE0OWFkYmQyZDdmZmNiNWExYjcwOWQ3Li42Nzcw
MmZmZGY5MDI2YTFhMGJmNDIzMTA3YWEzNDcxYjdhYzBmYjkzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNp
ZiBFTkFCTEUoQVNTRU1CTEVSKSAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkpCiAKICNpbmNs
dWRlICJBc3NlbWJsZXJCdWZmZXIuaCIKKyNpbmNsdWRlICJBc3NlbWJsZXJDb21tb24uaCIKICNp
bmNsdWRlICJKSVRDb21waWxhdGlvbkVmZm9ydC5oIgogI2luY2x1ZGUgPGxpbWl0cy5oPgogI2lu
Y2x1ZGUgPHN0ZGludC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
TG93ZXJUb0Fpci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNw
cAppbmRleCBkMDYyMGJjOGM2MWI1NDFlNDIzN2VjOWY1NWJmMDRjODZkZDI2ZjQ0Li41ZTdhMGM0
ODkwZmFmZDc4NTIxNzI4MTA5MWE5YWU4NzJkZTY4MTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNMb3dlclRvQWlyLmNwcApAQCAtMzU2LDcgKzM1Niw3IEBAIHByaXZhdGU6CiAgICAg
ICAgIC8vIHdvcmsuIFdlIHNvbHZlIHRoaXMgYnkgcmVxdWlyaW5nIGEganVzdC1iZWZvcmUtbG93
ZXJpbmcgcGhhc2UgdGhhdCBsZWdhbGl6ZXMgb2Zmc2V0cy4KICAgICAgICAgLy8gRklYTUU6IElt
cGxlbWVudCBzdWNoIGEgbGVnYWxpemF0aW9uIHBoYXNlLgogICAgICAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUyNTMwCi0gICAgICAgIEFTU0VSVChBcmc6
OmlzVmFsaWRBZGRyRm9ybShvZmZzZXQpKTsKKyAgICAgICAgQVNTRVJUKEFyZzo6aXNWYWxpZEFk
ZHJGb3JtKG9mZnNldCwgd2lkdGgpKTsKIAogICAgICAgICBhdXRvIGZhbGxiYWNrID0gWyZdICgp
IC0+IEFyZyB7CiAgICAgICAgICAgICByZXR1cm4gQXJnOjphZGRyKHRtcChhZGRyZXNzKSwgb2Zm
c2V0KTsKQEAgLTE3MTAsNiArMTcxMCwxMiBAQCBwcml2YXRlOgogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAKKyAgICAgICAgY2FzZSBBYnM6IHsKKyAgICAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUX1dJVEhfTUVTU0FHRSghaXNYODYoKSwgIkFicyBpcyBub3Qgc3VwcG9ydGVkIG5hdGl2
ZWx5IG9uIHg4Ni4gSXQgbXVzdCBiZSByZXBsYWNlZCBiZWZvcmUgZ2VuZXJhdGlvbi4iKTsKKyAg
ICAgICAgICAgIGFwcGVuZFVuT3A8QWlyOjpPb3BzLCBBaXI6Ok9vcHMsIEFic0RvdWJsZSwgQWJz
RmxvYXQ+KG1fdmFsdWUtPmNoaWxkKDApKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCiAgICAgICAgIGNhc2UgQ2VpbDogewogICAgICAgICAgICAgYXBwZW5kVW5PcDxBaXI6Ok9v
cHMsIEFpcjo6T29wcywgQ2VpbERvdWJsZSwgQ2VpbEZsb2F0PihtX3ZhbHVlLT5jaGlsZCgwKSk7
CiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL0FpckFyZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaApp
bmRleCBlZTVjYzMzOGJjYTEyNDlmNDZhZDdhZmUwMjEwMjQ2Nzg5ZWUwYmYwLi45YTFhODI0ZDZm
MDhkYTIzMTI5ZmEyNDgzMDBiOTEwNzUwMDBiN2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0FpckFyZy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyQXJnLmgKQEAgLTg4OCwxOCArODg4LDMzIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAg
IGlmIChpc1g4NigpKQogICAgICAgICAgICAgcmV0dXJuIEIzOjppc1JlcHJlc2VudGFibGVBczxp
bnQzMl90Pih2YWx1ZSk7Ci0gICAgICAgIC8vIEZJWE1FOiBBUk0gaGFzIHNvbWUgc3BlY2lmaWMg
cnVsZXMgYWJvdXQgd2hhdCBraW5kcyBvZiBpbW1lZGlhdGVzIGFyZSB2YWxpZC4KLSAgICAgICAg
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MjUzMAorICAgICAg
ICBpZiAoaXNBUk02NCgpKQorICAgICAgICAgICAgcmV0dXJuIGlzVUludDEyKHZhbHVlKTsKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIHN0YXRpYyBib29sIGlzVmFsaWRBZGRy
Rm9ybShpbnQzMl90IG9mZnNldCkKKyAgICBzdGF0aWMgYm9vbCBpc1ZhbGlkQWRkckZvcm0oaW50
MzJfdCBvZmZzZXQsIE9wdGlvbmFsPFdpZHRoPiB3aWR0aCA9IE51bGxvcHQpCiAgICAgewogICAg
ICAgICBpZiAoaXNYODYoKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAvLyBG
SVhNRTogQVJNIGhhcyBzb21lIHNwZWNpZmljIHJ1bGVzIGFib3V0IHdoYXQga2luZHMgb2Ygb2Zm
c2V0cyBhcmUgdmFsaWQuCi0gICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTI1MzAKLSAgICAgICAgVU5VU0VEX1BBUkFNKG9mZnNldCk7CisgICAgICAg
IGlmIChpc0FSTTY0KCkpIHsKKyAgICAgICAgICAgIGlmICghd2lkdGgpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgICAgIGlmIChpc1ZhbGlkU2lnbmVkSW1tOShvZmZz
ZXQpKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgICAgICBzd2l0Y2gg
KCp3aWR0aCkgeworICAgICAgICAgICAgY2FzZSBXaWR0aDg6CisgICAgICAgICAgICAgICAgcmV0
dXJuIGlzVmFsaWRTY2FsZWRVSW1tMTI8OD4ob2Zmc2V0KTsKKyAgICAgICAgICAgIGNhc2UgV2lk
dGgxNjoKKyAgICAgICAgICAgICAgICByZXR1cm4gaXNWYWxpZFNjYWxlZFVJbW0xMjwxNj4ob2Zm
c2V0KTsKKyAgICAgICAgICAgIGNhc2UgV2lkdGgzMjoKKyAgICAgICAgICAgICAgICByZXR1cm4g
aXNWYWxpZFNjYWxlZFVJbW0xMjwzMj4ob2Zmc2V0KTsKKyAgICAgICAgICAgIGNhc2UgV2lkdGg2
NDoKKyAgICAgICAgICAgICAgICByZXR1cm4gaXNWYWxpZFNjYWxlZFVJbW0xMjw2ND4ob2Zmc2V0
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQogCkBAIC05MzEsNyArOTQ2LDcgQEAgcHVibGljOgogICAgICAgICBjYXNlIEFkZHI6CiAgICAg
ICAgIGNhc2UgU3RhY2s6CiAgICAgICAgIGNhc2UgQ2FsbEFyZzoKLSAgICAgICAgICAgIHJldHVy
biBpc1ZhbGlkQWRkckZvcm0ob2Zmc2V0KCkpOworICAgICAgICAgICAgcmV0dXJuIGlzVmFsaWRB
ZGRyRm9ybShvZmZzZXQoKSwgd2lkdGgpOwogICAgICAgICBjYXNlIEluZGV4OgogICAgICAgICAg
ICAgcmV0dXJuIGlzVmFsaWRJbmRleEZvcm0oc2NhbGUoKSwgb2Zmc2V0KCksIHdpZHRoKTsKICAg
ICAgICAgY2FzZSBSZWxDb25kOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJPcGNvZGUub3Bjb2RlcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
T3Bjb2RlLm9wY29kZXMKaW5kZXggMmMxYWVmN2Q1MjM3ZDhhZDc5MjQ2MjFjZDhiZjNjY2JjZThj
NmQzOS4uMTUxNTE2MTAwNDMxMzA4MjNhZTIwN2UzZTdkMWJkNjhkYWFlOTVmYiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcworKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCkBAIC0yODUsNyAr
Mjg1LDcgQEAgeDg2XzY0OiBSc2hpZnQ2NCBVOkc6NjQsIFVEOkc6NjQKICAgICBUbXAqLCBUbXAK
ICAgICBJbW0sIFRtcAogCi1hcm02NDogdXJzaGlmdDMyIFU6RzozMiwgVTpHOjMyLCBaRDpHOjMy
Cithcm02NDogVXJzaGlmdDMyIFU6RzozMiwgVTpHOjMyLCBaRDpHOjMyCiAgICAgVG1wLCBUbXAs
IFRtcAogICAgIFRtcCwgSW1tLCBUbXAKIApAQCAtMzM4LDYgKzMzOCwxMiBAQCB4ODY6IE5vdDY0
IFVEOkc6NjQKICAgICBUbXAKICAgICBBZGRyCiAKK2FybTY0OiBBYnNEb3VibGUgVTpGOjY0LCBE
OkY6NjQKKyAgICBUbXAsIFRtcAorCithcm02NDogQWJzRmxvYXQgVTpGOjMyLCBEOkY6MzIKKyAg
ICBUbXAsIFRtcAorCiBDZWlsRG91YmxlIFU6Rjo2NCwgVUQ6Rjo2NAogICAgIFRtcCwgVG1wCiAg
ICAgeDg2OiBBZGRyLCBUbXAKQEAgLTM4NSwxNyArMzkxLDE3IEBAIE1vdmUgVTpHOlB0ciwgRDpH
OlB0cgogICAgIFRtcCwgVG1wCiAgICAgSW1tLCBUbXAgYXMgc2lnbkV4dGVuZDMyVG9QdHIKICAg
ICBJbW02NCwgVG1wCi0gICAgeDg2OiBBZGRyLCBUbXAgYXMgbG9hZFB0ciAjIFRoaXMgbWVhbnMg
dGhhdCAiTW92ZSBBZGRyLCBUbXAiIGlzIGNvZGUtZ2VuZXJhdGVkIGFzICJsb2FkIiBub3QgIm1v
dmUiLgorICAgIEFkZHIsIFRtcCBhcyBsb2FkUHRyICMgVGhpcyBtZWFucyB0aGF0ICJNb3ZlIEFk
ZHIsIFRtcCIgaXMgY29kZS1nZW5lcmF0ZWQgYXMgImxvYWQiIG5vdCAibW92ZSIuCiAgICAgSW5k
ZXgsIFRtcCBhcyBsb2FkUHRyCi0gICAgeDg2OiBUbXAsIEFkZHIgYXMgc3RvcmVQdHIKKyAgICBU
bXAsIEFkZHIgYXMgc3RvcmVQdHIKICAgICBUbXAsIEluZGV4IGFzIHN0b3JlUHRyCiAgICAgeDg2
OiBJbW0sIEFkZHIgYXMgc3RvcmVQdHIKIAogTW92ZTMyIFU6RzozMiwgWkQ6RzozMgogICAgIFRt
cCwgVG1wIGFzIHplcm9FeHRlbmQzMlRvUHRyCi0gICAgeDg2OiBBZGRyLCBUbXAgYXMgbG9hZDMy
CisgICAgQWRkciwgVG1wIGFzIGxvYWQzMgogICAgIEluZGV4LCBUbXAgYXMgbG9hZDMyCi0gICAg
eDg2OiBUbXAsIEFkZHIgYXMgc3RvcmUzMgorICAgIFRtcCwgQWRkciBhcyBzdG9yZTMyCiAgICAg
VG1wLCBJbmRleCBhcyBzdG9yZTMyCiAgICAgeDg2OiBJbW0sIEFkZHIgYXMgc3RvcmUzMgogICAg
IHg4NjogSW1tLCBJbmRleCBhcyBzdG9yZTMyCkBAIC00MDUsMzYgKzQxMSwzNiBAQCBTaWduRXh0
ZW5kMzJUb1B0ciBVOkc6MzIsIEQ6RzpQdHIKIAogWmVyb0V4dGVuZDhUbzMyIFU6Rzo4LCBaRDpH
OjMyCiAgICAgVG1wLCBUbXAKLSAgICB4ODY6IEFkZHIsIFRtcCBhcyBsb2FkOAorICAgIEFkZHIs
IFRtcCBhcyBsb2FkOAogICAgIEluZGV4LCBUbXAgYXMgbG9hZDgKIAogU2lnbkV4dGVuZDhUbzMy
IFU6Rzo4LCBaRDpHOjMyCiAgICAgVG1wLCBUbXAKLSAgICB4ODY6IEFkZHIsIFRtcCBhcyBsb2Fk
OFNpZ25lZEV4dGVuZFRvMzIKKyAgICBBZGRyLCBUbXAgYXMgbG9hZDhTaWduZWRFeHRlbmRUbzMy
CiAgICAgSW5kZXgsIFRtcCBhcyBsb2FkOFNpZ25lZEV4dGVuZFRvMzIKIAogWmVyb0V4dGVuZDE2
VG8zMiBVOkc6MTYsIFpEOkc6MzIKICAgICBUbXAsIFRtcAotICAgIHg4NjogQWRkciwgVG1wIGFz
IGxvYWQxNgorICAgIEFkZHIsIFRtcCBhcyBsb2FkMTYKICAgICBJbmRleCwgVG1wIGFzIGxvYWQx
NgogCiBTaWduRXh0ZW5kMTZUbzMyIFU6RzoxNiwgWkQ6RzozMgogICAgIFRtcCwgVG1wCi0gICAg
eDg2OiBBZGRyLCBUbXAgYXMgbG9hZDE2U2lnbmVkRXh0ZW5kVG8zMgorICAgIEFkZHIsIFRtcCBh
cyBsb2FkMTZTaWduZWRFeHRlbmRUbzMyCiAgICAgSW5kZXgsIFRtcCBhcyBsb2FkMTZTaWduZWRF
eHRlbmRUbzMyCiAKIE1vdmVGbG9hdCBVOkY6MzIsIEQ6RjozMgogICAgIFRtcCwgVG1wIGFzIG1v
dmVEb3VibGUKLSAgICB4ODY6IEFkZHIsIFRtcCBhcyBsb2FkRmxvYXQKKyAgICBBZGRyLCBUbXAg
YXMgbG9hZEZsb2F0CiAgICAgSW5kZXgsIFRtcCBhcyBsb2FkRmxvYXQKLSAgICB4ODY6IFRtcCwg
QWRkciBhcyBzdG9yZUZsb2F0CisgICAgVG1wLCBBZGRyIGFzIHN0b3JlRmxvYXQKICAgICBUbXAs
IEluZGV4IGFzIHN0b3JlRmxvYXQKIAogTW92ZURvdWJsZSBVOkY6NjQsIEQ6Rjo2NAogICAgIFRt
cCwgVG1wCi0gICAgeDg2OiBBZGRyLCBUbXAgYXMgbG9hZERvdWJsZQorICAgIEFkZHIsIFRtcCBh
cyBsb2FkRG91YmxlCiAgICAgSW5kZXgsIFRtcCBhcyBsb2FkRG91YmxlCi0gICAgeDg2OiBUbXAs
IEFkZHIgYXMgc3RvcmVEb3VibGUKKyAgICBUbXAsIEFkZHIgYXMgc3RvcmVEb3VibGUKICAgICBU
bXAsIEluZGV4IGFzIHN0b3JlRG91YmxlCiAKIE1vdmVaZXJvVG9Eb3VibGUgRDpGOjY0CkBAIC00
NTIsMzkgKzQ1OCwzOSBAQCBNb3ZlMzJUb0Zsb2F0IFU6RzozMiwgRDpGOjMyCiAKIDY0OiBNb3Zl
RG91YmxlVG82NCBVOkY6NjQsIEQ6Rzo2NAogICAgIFRtcCwgVG1wCi0gICAgeDg2OiBBZGRyLCBU
bXAgYXMgbG9hZDY0CisgICAgQWRkciwgVG1wIGFzIGxvYWQ2NAogICAgIEluZGV4LCBUbXAgYXMg
bG9hZDY0CiAKIE1vdmVGbG9hdFRvMzIgVTpGOjMyLCBEOkc6MzIKICAgICBUbXAsIFRtcAotICAg
IHg4NjogQWRkciwgVG1wIGFzIGxvYWQzMgorICAgIEFkZHIsIFRtcCBhcyBsb2FkMzIKICAgICBJ
bmRleCwgVG1wIGFzIGxvYWQzMgogCiBMb2FkOCBVOkc6OCwgWkQ6RzozMgotICAgIHg4NjogQWRk
ciwgVG1wCisgICAgQWRkciwgVG1wCiAgICAgSW5kZXgsIFRtcAogCiBTdG9yZTggVTpHOjgsIEQ6
Rzo4CiAgICAgVG1wLCBJbmRleAotICAgIHg4NjogVG1wLCBBZGRyCisgICAgVG1wLCBBZGRyCiAg
ICAgeDg2OiBJbW0sIEluZGV4CiAgICAgeDg2OiBJbW0sIEFkZHIKIAogTG9hZDhTaWduZWRFeHRl
bmRUbzMyIFU6Rzo4LCBaRDpHOjMyCi0gICAgeDg2OiBBZGRyLCBUbXAKKyAgICBBZGRyLCBUbXAK
ICAgICBJbmRleCwgVG1wCiAKIExvYWQxNiBVOkc6MTYsIFpEOkc6MzIKLSAgICB4ODY6IEFkZHIs
IFRtcAorICAgIEFkZHIsIFRtcAogICAgIEluZGV4LCBUbXAKIAogTG9hZDE2U2lnbmVkRXh0ZW5k
VG8zMiBVOkc6MTYsIFpEOkc6MzIKLSAgICB4ODY6IEFkZHIsIFRtcAorICAgIEFkZHIsIFRtcAog
ICAgIEluZGV4LCBUbXAKIAogU3RvcmUxNiBVOkc6MTYsIEQ6RzoxNgogICAgIFRtcCwgSW5kZXgK
LSAgICB4ODY6IFRtcCwgQWRkcgorICAgIFRtcCwgQWRkcgogCiBDb21wYXJlMzIgVTpHOjMyLCBV
Okc6MzIsIFU6RzozMiwgWkQ6RzozMgogICAgIFJlbENvbmQsIFRtcCwgVG1wLCBUbXAK
</data>

          </attachment>
      

    </bug>

</bugzilla>