<?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>115914</bug_id>
          
          <creation_ts>2013-05-10 09:31:33 -0700</creation_ts>
          <short_desc>[GTK] Remove unnecessary GTK_CHECK_VERSION #ifdefs</short_desc>
          <delta_ts>2013-05-12 02:05:28 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (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="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>jer.noble</cc>
    
    <cc>mrobinson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>887386</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-05-10 09:31:33 -0700</bug_when>
    <thetext>We already bumped to gtk+ 3.6, so we can get rid of most of the #ifdefed code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>887415</commentid>
    <comment_count>1</comment_count>
      <attachid>201360</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-05-10 10:35:45 -0700</bug_when>
    <thetext>Created attachment 201360
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>887418</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-10 10:37:10 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>887445</commentid>
    <comment_count>3</comment_count>
      <attachid>201360</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-05-10 11:25:27 -0700</bug_when>
    <thetext>Comment on attachment 201360
Patch

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

&gt; Source/WebCore/platform/graphics/gtk/FullscreenVideoControllerGtk.cpp:201
&gt; -    GdkCursor* cursor = blankCursor();
&gt; -    gdk_window_set_cursor(window, cursor);
&gt; +    GRefPtr&lt;GdkCursor&gt; cursor = adoptGRef(gdk_cursor_new(GDK_BLANK_CURSOR));
&gt; +    gdk_window_set_cursor(window, cursor.get());

Nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>887915</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-05-12 02:05:28 -0700</bug_when>
    <thetext>Committed r149952: &lt;http://trac.webkit.org/changeset/149952&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>201360</attachid>
            <date>2013-05-10 10:35:45 -0700</date>
            <delta_ts>2013-05-10 11:25:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk-remove-gtk-check-ifdefs.diff</filename>
            <type>text/plain</type>
            <size>51046</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjZDk3MjcwLi45MjA2ZDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjIg
QEAKIDIwMTMtMDUtMTAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCisgICAgICAgIFtHVEtdIFJlbW92ZSB1bm5lY2Vzc2FyeSBHVEtfQ0hFQ0tfVkVSU0lPTiAj
aWZkZWZzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTU5MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2d0ay9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyR3RrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXJHdGs6OmhpZGVIdWQp
OgorICAgICAgICAoV2ViQ29yZTo6RnVsbHNjcmVlblZpZGVvQ29udHJvbGxlckd0azo6aW5pdGlh
bGl6ZVdpbmRvdyk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0d0a1ZlcnNpb25pbmcuYzoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvR3RrVmVyc2lvbmluZy5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2d0ay9XaWRnZXRSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldpZGdl
dFJlbmRlcmluZ0NvbnRleHQ6OldpZGdldFJlbmRlcmluZ0NvbnRleHQpOgorICAgICAgICAqIHBs
dWdpbnMvZ3RrL2d0azJ4dGJpbi5jOgorICAgICAgICAoZ3RrX3h0YmluX3JlYWxpemUpOgorCisy
MDEzLTA1LTEwICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKwog
ICAgICAgICBbR1RLXSBSZW1vdmUgdW5uZWNlc3NhcnkgR0xJQl9DSEVDS19WRVJTSU9OICNpZmRl
ZnMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNTkw
NAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRnVs
bHNjcmVlblZpZGVvQ29udHJvbGxlckd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ndGsvRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlckd0ay5jcHAKaW5kZXggZTlkN2Yy
Zi4uNDY4MTNiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3RrL0Z1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXJHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyR3RrLmNwcApA
QCAtMTk3LDggKzE5Nyw4IEBAIHZvaWQgRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlckd0azo6aGlk
ZUh1ZCgpCiAgICAgfQogCiAgICAgR2RrV2luZG93KiB3aW5kb3cgPSBndGtfd2lkZ2V0X2dldF93
aW5kb3cobV93aW5kb3cpOwotICAgIEdka0N1cnNvciogY3Vyc29yID0gYmxhbmtDdXJzb3IoKTsK
LSAgICBnZGtfd2luZG93X3NldF9jdXJzb3Iod2luZG93LCBjdXJzb3IpOworICAgIEdSZWZQdHI8
R2RrQ3Vyc29yPiBjdXJzb3IgPSBhZG9wdEdSZWYoZ2RrX2N1cnNvcl9uZXcoR0RLX0JMQU5LX0NV
UlNPUikpOworICAgIGdka193aW5kb3dfc2V0X2N1cnNvcih3aW5kb3csIGN1cnNvci5nZXQoKSk7
CiAKICAgICBndGtfd2lkZ2V0X2hpZGUobV9odWRXaW5kb3cpOwogCkBAIC0yNTUsNyArMjU1LDcg
QEAgdm9pZCBGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyR3RrOjppbml0aWFsaXplV2luZG93KCkK
ICAgICBndGtfd2lkZ2V0X3Nob3dfYWxsKG1fd2luZG93KTsKIAogICAgIEdka1dpbmRvdyogd2lu
ZG93ID0gZ3RrX3dpZGdldF9nZXRfd2luZG93KG1fd2luZG93KTsKLSAgICBHUmVmUHRyPEdka0N1
cnNvcj4gY3Vyc29yKGFkb3B0R1JlZihibGFua0N1cnNvcigpKSk7CisgICAgR1JlZlB0cjxHZGtD
dXJzb3I+IGN1cnNvciA9IGFkb3B0R1JlZihnZGtfY3Vyc29yX25ldyhHREtfQkxBTktfQ1VSU09S
KSk7CiAgICAgZ2RrX3dpbmRvd19zZXRfY3Vyc29yKHdpbmRvdywgY3Vyc29yLmdldCgpKTsKIAog
ICAgIG1fbW90aW9uTm90aWZ5U2lnbmFsSWQgPSBnX3NpZ25hbF9jb25uZWN0KG1fd2luZG93LCAi
bW90aW9uLW5vdGlmeS1ldmVudCIsIEdfQ0FMTEJBQ0sob25GdWxsc2NyZWVuR3RrTW90aW9uTm90
aWZ5RXZlbnQpLCB0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9HdGtWZXJzaW9uaW5nLmMgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVmVyc2lv
bmluZy5jCmluZGV4IDJjOGY1ZDguLjY3OWE0MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9HdGtWZXJzaW9uaW5nLmMKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL0d0a1ZlcnNpb25pbmcuYwpAQCAtMjcsMzMgKzI3LDYgQEAKICNpbmNsdWRlIDxnZGsv
Z2RreC5oPgogI2VuZGlmCiAKLSNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMiwgMTQsIDApCi12b2lk
IGd0a19hZGp1c3RtZW50X3NldF92YWx1ZShHdGtBZGp1c3RtZW50KiBhZGp1c21lbnQsIGdkb3Vi
bGUgdmFsdWUpCi17Ci0gICAgICAgIG1fYWRqdXN0bWVudC0+dmFsdWUgPSBtX2N1cnJlbnRQb3M7
Ci0gICAgICAgIGd0a19hZGp1c3RtZW50X3ZhbHVlX2NoYW5nZWQobV9hZGp1c3RtZW50KTsKLX0K
LQotdm9pZCBndGtfYWRqdXN0bWVudF9jb25maWd1cmUoR3RrQWRqdXN0bWVudCogYWRqdXN0bWVu
dCwgZ2RvdWJsZSB2YWx1ZSwgZ2RvdWJsZSBsb3dlciwgZ2RvdWJsZSB1cHBlciwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdkb3VibGUgc3RlcEluY3JlbWVudCwgZ2RvdWJsZSBwYWdl
SW5jcmVtZW50LCBnZG91YmxlIHBhZ2VTaXplKQotewotICAgIGdfb2JqZWN0X2ZyZWV6ZV9ub3Rp
ZnkoR19PQkpFQ1QoYWRqdXN0bWVudCkpOwotCi0gICAgZ19vYmplY3Rfc2V0KGFkanVzdG1lbnQs
Ci0gICAgICAgICAgICAgICAgICJsb3dlciIsIGxvd2VyLAotICAgICAgICAgICAgICAgICAidXBw
ZXIiLCB1cHBlciwKLSAgICAgICAgICAgICAgICAgInN0ZXAtaW5jcmVtZW50Iiwgc3RlcEluY3Jl
bWVudCwKLSAgICAgICAgICAgICAgICAgInBhZ2UtaW5jcmVtZW50IiwgcGFnZUluY3JlbWVudCwK
LSAgICAgICAgICAgICAgICAgInBhZ2Utc2l6ZSIsIHBhZ2VTaXplLAotICAgICAgICAgICAgICAg
ICBOVUxMKTsKLQotICAgIGdfb2JqZWN0X3RoYXdfbm90aWZ5KEdfT0JKRUNUKGFkanVzdG1lbnQp
KTsKLQotICAgIGd0a19hZGp1c3RtZW50X2NoYW5nZWQoYWRqdXN0bWVudCk7Ci0gICAgZ3RrX2Fk
anVzdG1lbnRfdmFsdWVfY2hhbmdlZChhZGp1c3RtZW50KTsKLX0KLSNlbmRpZgotCiBHZGtEZXZp
Y2UgKmdldERlZmF1bHRHREtQb2ludGVyRGV2aWNlKEdka1dpbmRvdyogd2luZG93KQogewogI2lm
bmRlZiBHVEtfQVBJX1ZFUlNJT05fMgpAQCAtNjQsNDYgKzM3LDYgQEAgR2RrRGV2aWNlICpnZXRE
ZWZhdWx0R0RLUG9pbnRlckRldmljZShHZGtXaW5kb3cqIHdpbmRvdykKICNlbmRpZiAvLyBHVEtf
QVBJX1ZFUlNJT05fMgogfQogCi0jaWYgIUdUS19DSEVDS19WRVJTSU9OKDIsIDE3LCAzKQotdm9p
ZCBnZGtfd2luZG93X2dldF9yb290X2Nvb3JkcyhHZGtXaW5kb3cqIHdpbmRvdywgZ2ludCB4LCBn
aW50IHksIGdpbnQqIHJvb3RYLCBnaW50KiByb290WSkKLXsKLSAgICBnZGtfd2luZG93X2dldF9y
b290X29yaWdpbih3aW5kb3csIHJvb3RYLCByb290WSk7Ci0gICAgKnJvb3RYID0gKnJvb3RYICsg
eDsKLSAgICAqcm9vdFkgPSAqcm9vdFkgKyB5OwotfQotI2VuZGlmCi0KLUdka0N1cnNvciAqIGJs
YW5rQ3Vyc29yKCkKLXsKLSNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigyLCAxNiwgMCkKLSAgICByZXR1
cm4gZ2RrX2N1cnNvcl9uZXcoR0RLX0JMQU5LX0NVUlNPUik7Ci0jZWxzZQotICAgIEdka0N1cnNv
ciAqIGN1cnNvcjsKLSAgICBHZGtQaXhtYXAgKiBzb3VyY2U7Ci0gICAgR2RrUGl4bWFwICogbWFz
azsKLSAgICBHZGtDb2xvciBmb3JlZ3JvdW5kID0geyAwLCA2NTUzNSwgMCwgMCB9OyAvLyBSZWQu
Ci0gICAgR2RrQ29sb3IgYmFja2dyb3VuZCA9IHsgMCwgMCwgMCwgNjU1MzUgfTsgLy8gQmx1ZS4K
LSAgICBzdGF0aWMgZ2NoYXIgY3Vyc29yQml0c1tdID0gezB4MCwgMHgwLCAweDAsIDB4MCwgMHgw
LCAweDAsIDB4MCwgMHgwfTsKLQotICAgIHNvdXJjZSA9IGdka19iaXRtYXBfY3JlYXRlX2Zyb21f
ZGF0YSgwLCBjdXJzb3JCaXRzLCA4LCA4KTsKLSAgICBtYXNrID0gZ2RrX2JpdG1hcF9jcmVhdGVf
ZnJvbV9kYXRhKDAsIGN1cnNvckJpdHMsIDgsIDgpOwotICAgIGN1cnNvciA9IGdka19jdXJzb3Jf
bmV3X2Zyb21fcGl4bWFwKHNvdXJjZSwgbWFzaywgJmZvcmVncm91bmQsICZiYWNrZ3JvdW5kLCA4
LCA4KTsKLSAgICBnZGtfcGl4bWFwX3VucmVmKHNvdXJjZSk7Ci0gICAgZ2RrX3BpeG1hcF91bnJl
ZihtYXNrKTsKLSAgICByZXR1cm4gY3Vyc29yOwotI2VuZGlmIC8vIEdUS19DSEVDS19WRVJTSU9O
KDIsIDE2LCAwKQotfQotCi0jaWYgIUdUS19DSEVDS19WRVJTSU9OKDIsIDE2LCAwKQotY29uc3Qg
Z2NoYXIqIGd0a19tZW51X2l0ZW1fZ2V0X2xhYmVsKEd0a01lbnVJdGVtKiBtZW51SXRlbSkKLXsK
LSAgICBHdGtXaWRnZXQgKiBsYWJlbCA9IGd0a19iaW5fZ2V0X2NoaWxkKEdUS19CSU4obWVudUl0
ZW0pKTsKLSAgICBpZiAoR1RLX0lTX0xBQkVMKGxhYmVsKSkKLSAgICAgICAgcmV0dXJuIGd0a19s
YWJlbF9nZXRfdGV4dChHVEtfTEFCRUwobGFiZWwpKTsKLSAgICByZXR1cm4gMDsKLX0KLSNlbmRp
ZiAvLyBHVEtfQ0hFQ0tfVkVSU0lPTigyLCAxNiwgMCkKLQogI2lmZGVmIEdUS19BUElfVkVSU0lP
Tl8yCiBzdGF0aWMgY2Fpcm9fZm9ybWF0X3QKIGdka19jYWlyb19mb3JtYXRfZm9yX2NvbnRlbnQo
Y2Fpcm9fY29udGVudF90IGNvbnRlbnQpCkBAIC0yNjYsNDEgKzE5OSw2IEBAIGdka19waXhidWZf
Z2V0X2Zyb21fc3VyZmFjZShjYWlyb19zdXJmYWNlX3QgKiBzdXJmYWNlLAogICAgIHJldHVybiBk
ZXN0OwogfQogCi0jaWYgR1RLX0NIRUNLX1ZFUlNJT04oMiwgMjQsIDApCi12b2lkIGdldEdka0Ry
YXdhYmxlU2l6ZShHZGtEcmF3YWJsZSAqZHJhd2FibGUsIGludCAqd2lkdGgsIGludCAqaGVpZ2h0
KQotewotICAgIGdfcmV0dXJuX2lmX2ZhaWwoR0RLX0lTX1BJWE1BUChkcmF3YWJsZSkgfHwgR0RL
X0lTX1dJTkRPVyhkcmF3YWJsZSkpOwotCi0gICAgaWYgKEdES19JU19QSVhNQVAoZHJhd2FibGUp
KSB7Ci0gICAgICAgIGdka19waXhtYXBfZ2V0X3NpemUoR0RLX1BJWE1BUChkcmF3YWJsZSksIHdp
ZHRoLCBoZWlnaHQpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgR2RrV2luZG93ICp3
aW5kb3cgPSBHREtfV0lORE9XKGRyYXdhYmxlKTsKLSAgICAqd2lkdGggPSBnZGtfd2luZG93X2dl
dF93aWR0aCh3aW5kb3cpOwotICAgICpoZWlnaHQgPSBnZGtfd2luZG93X2dldF9oZWlnaHQod2lu
ZG93KTsKLX0KLSNlbHNlCi12b2lkIGdldEdka0RyYXdhYmxlU2l6ZShHZGtEcmF3YWJsZSAqZHJh
d2FibGUsIGludCAqd2lkdGgsIGludCAqaGVpZ2h0KQotewotICAgIGdka19kcmF3YWJsZV9nZXRf
c2l6ZShkcmF3YWJsZSwgd2lkdGgsIGhlaWdodCk7Ci19Ci0jZW5kaWYgLy8gR1RLX0NIRUNLX1ZF
UlNJT04oMiwgMjQsIDApCi0KLSNlbmRpZiAvLyBHVEtfQVBJX1ZFUlNJT05fMgotCi0jaWYgIUdU
S19DSEVDS19WRVJTSU9OKDIsIDIyLCAwKQotY2Fpcm9fc3VyZmFjZV90ICpnZGtfd2luZG93X2Ny
ZWF0ZV9zaW1pbGFyX3N1cmZhY2UoR2RrV2luZG93ICp3aW5kb3csIGNhaXJvX2NvbnRlbnRfdCBj
b250ZW50LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCi17Ci0gICAgY2Fpcm9fdCAqY2Fpcm9Db250
ZXh0ID0gZ2RrX2NhaXJvX2NyZWF0ZSh3aW5kb3cpOwotICAgIGNhaXJvX3N1cmZhY2VfdCAqY2Fp
cm9TdXJmYWNlID0gY2Fpcm9fZ2V0X3RhcmdldChjYWlyb0NvbnRleHQpOwotICAgIGNhaXJvX3N1
cmZhY2VfdCAqbmV3U3VyZmFjZSA9IGNhaXJvX3N1cmZhY2VfY3JlYXRlX3NpbWlsYXIoY2Fpcm9T
dXJmYWNlLCBjb250ZW50LCB3aWR0aCwgaGVpZ2h0KTsKLSAgICBjYWlyb19kZXN0cm95KGNhaXJv
Q29udGV4dCk7Ci0gICAgcmV0dXJuIG5ld1N1cmZhY2U7Ci19Ci0jZW5kaWYgLy8gR1RLX0NIRUNL
X1ZFUlNJT04oMiwgMjIsIDApCi0KLSNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgMywgNikKICNp
ZmRlZiBHREtfV0lORE9XSU5HX1gxMQogc3RhdGljIGludCBnZXRTY3JlZW5DdXJyZW50RGVza3Rv
cChHZGtTY3JlZW4gKnNjcmVlbikKIHsKQEAgLTM3MCw0ICsyNjgsNCBAQCB2b2lkIGdka19zY3Jl
ZW5fZ2V0X21vbml0b3Jfd29ya2FyZWEoR2RrU2NyZWVuICpzY3JlZW4sIGludCBtb25pdG9yLCBH
ZGtSZWN0YW5nbAogICAgIGdka19yZWN0YW5nbGVfaW50ZXJzZWN0KCZ3b3JrQXJlYSwgYXJlYSwg
YXJlYSk7CiAjZW5kaWYKIH0KLSNlbmRpZiAvLyBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAzLCA2KQor
I2VuZGlmIC8vIEdUS19BUElfVkVSU0lPTl8yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvR3RrVmVyc2lvbmluZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L0d0a1ZlcnNpb25pbmcuaAppbmRleCAyNTFhZGUyLi5lMGNkMWFkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVmVyc2lvbmluZy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9HdGtWZXJzaW9uaW5nLmgKQEAgLTM2LDg3ICszNiwxMCBAQCBHX0JF
R0lOX0RFQ0xTCiAjZWxzZQogR2RrUGl4YnVmKiBnZGtfcGl4YnVmX2dldF9mcm9tX3N1cmZhY2Uo
Y2Fpcm9fc3VyZmFjZV90KiBzdXJmYWNlLCBpbnQgc3JjWCwgaW50IHNyY1ksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgd2lkdGgsIGludCBoZWlnaHQpOwotdm9p
ZCBnZXRHZGtEcmF3YWJsZVNpemUoR2RrRHJhd2FibGUqIGRyYXdhYmxlLCBpbnQqIHdpZHRoLCBp
bnQqIGhlaWdodCk7Cit2b2lkIGdka19zY3JlZW5fZ2V0X21vbml0b3Jfd29ya2FyZWEoR2RrU2Ny
ZWVuICosIGludCBtb25pdG9yLCBHZGtSZWN0YW5nbGUgKmFyZWEpOwogI2VuZGlmCiAKLSNpZiAh
R1RLX0NIRUNLX1ZFUlNJT04oMiwgMjMsIDQpCi0jZGVmaW5lIGdka19waXhtYXBfZ2V0X3NpemUg
Z2RrX2RyYXdhYmxlX2dldF9zaXplCi0jZW5kaWYgLy8gR1RLX0NIRUNLX1ZFUlNJT04oMiwgMjMs
IDQpCi0KLSNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMiwgMjMsIDApCi0jZGVmaW5lIGdka193aW5k
b3dfZ2V0X2Rpc3BsYXkod2luZG93KSBnZGtfZHJhd2FibGVfZ2V0X2Rpc3BsYXkod2luZG93KQot
I2RlZmluZSBnZGtfd2luZG93X2dldF92aXN1YWwgZ2RrX2RyYXdhYmxlX2dldF92aXN1YWwKLSNl
bmRpZiAvLyBHVEtfQ0hFQ0tfVkVSU0lPTigyLCAyMywgMCkKLQotI2lmICFHVEtfQ0hFQ0tfVkVS
U0lPTigyLCAyMiwgMCkKLWNhaXJvX3N1cmZhY2VfdCogZ2RrX3dpbmRvd19jcmVhdGVfc2ltaWxh
cl9zdXJmYWNlKEdka1dpbmRvdyogd2luZG93LCBjYWlyb19jb250ZW50X3QgY29udGVudCwgaW50
IHdpZHRoLCBpbnQgaGVpZ2h0KTsKLSNlbmRpZiAvLyBHVEtfQ0hFQ0tfVkVSU0lPTigyLCAyMiwg
MCkKLQotI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigyLCAyMSwgMikKLSNkZWZpbmUgZ2RrX3Zpc3Vh
bF9nZXRfZGVwdGgodmlzdWFsKSAodmlzdWFsKS0+ZGVwdGgKLSNkZWZpbmUgZ2RrX3Zpc3VhbF9n
ZXRfYml0c19wZXJfcmdiKHZpc3VhbCkgKHZpc3VhbCktPmJpdHNfcGVyX3JnYgotI2RlZmluZSBn
ZGtfZHJhZ19jb250ZXh0X2dldF9zZWxlY3RlZF9hY3Rpb24oY29udGV4dCkgKGNvbnRleHQpLT5h
Y3Rpb24KLSNkZWZpbmUgZ2RrX2RyYWdfY29udGV4dF9nZXRfYWN0aW9ucyhjb250ZXh0KSAoY29u
dGV4dCktPmFjdGlvbnMKLSNlbmRpZiAvLyBHVEtfQ0hFQ0tfVkVSU0lPTigyLCAyMSwgMikKLQot
I2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigyLCAyMCwgMCkKLSNkZWZpbmUgZ3RrX3dpZGdldF9nZXRf
cmVhbGl6ZWQod2lkZ2V0KSBHVEtfV0lER0VUX1JFQUxJWkVEKHdpZGdldCkKLSNkZWZpbmUgZ3Rr
X3dpZGdldF9zZXRfcmVhbGl6ZWQod2lkZ2V0LCBUUlVFKSBHVEtfV0lER0VUX1NFVF9GTEFHUygo
d2lkZ2V0KSwgR1RLX1JFQUxJWkVEKQotI2RlZmluZSBndGtfcmFuZ2VfZ2V0X21pbl9zbGlkZXJf
c2l6ZShyYW5nZSkgKHJhbmdlKS0+bWluX3NsaWRlcl9zaXplCi0jZW5kaWYgLy8gR1RLX0NIRUNL
X1ZFUlNJT04oMiwgMjAsIDApCi0KLSNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMiwgMTksIDApCi0j
ZGVmaW5lIGd0a193aWRnZXRfaXNfdG9wbGV2ZWwod2lkZ2V0KSBHVEtfV0lER0VUX1RPUExFVkVM
KHdpZGdldCkKLSNkZWZpbmUgZ3RrX3dpZGdldF9nZXRfcmVhbGl6ZWQod2lkZ2V0KSBHVEtfV0lE
R0VUX1JFQUxJWkVEKHdpZGdldCkKLSNkZWZpbmUgZ3RrX3dpZGdldF9nZXRfaGFzX3dpbmRvdyh3
aWRnZXQpICFHVEtfV0lER0VUX05PX1dJTkRPVyh3aWRnZXQpCi0jZGVmaW5lIGd0a193aWRnZXRf
Z2V0X2Nhbl9mb2N1cyh3aWRnZXQpIEdUS19XSURHRVRfQ0FOX0ZPQ1VTKHdpZGdldCkKLSNkZWZp
bmUgZ3RrX3dpZGdldF9pc19zZW5zaXRpdmUod2lkZ2V0KSBHVEtfV0lER0VUX0lTX1NFTlNJVElW
RSh3aWRnZXQpCi0jZW5kaWYgLy8gR1RLX0NIRUNLX1ZFUlNJT04oMiwgMTksIDApCi0KLSNpZiAh
R1RLX0NIRUNLX1ZFUlNJT04oMiwgMTgsIDApCi0jZGVmaW5lIGd0a193aWRnZXRfc2V0X3Zpc2li
bGUod2lkZ2V0LCBGQUxTRSkgR1RLX1dJREdFVF9VTlNFVF9GTEFHUygod2lkZ2V0KSwgR1RLX1ZJ
U0lCTEUpCi0jZGVmaW5lIGd0a193aWRnZXRfZ2V0X3Zpc2libGUod2lkZ2V0KSAoR1RLX1dJREdF
VF9GTEFHUyh3aWRnZXQpICYgR1RLX1ZJU0lCTEUpCi0KLSNkZWZpbmUgZ3RrX3dpZGdldF9zZXRf
d2luZG93KHdpZGdldCwgbmV3X3dpbmRvdykgKHdpZGdldCktPndpbmRvdyA9IChuZXdfd2luZG93
KQotI2RlZmluZSBndGtfd2lkZ2V0X3NldF9jYW5fZm9jdXMod2lkZ2V0LCBUUlVFKSBHVEtfV0lE
R0VUX1NFVF9GTEFHUygod2lkZ2V0KSwgR1RLX0NBTl9GT0NVUykKLSNkZWZpbmUgZ3RrX3dpZGdl
dF9nZXRfYWxsb2NhdGlvbih3aWRnZXQsIGFsbG9jKSAoKihhbGxvYykgPSAod2lkZ2V0KS0+YWxs
b2NhdGlvbikKLSNkZWZpbmUgZ3RrX3dpZGdldF9zZXRfYWxsb2NhdGlvbih3aWRnZXQsIGFsbG9j
KSAoKHdpZGdldCktPmFsbG9jYXRpb24gPSAqKGFsbG9jKSkKLSNlbmRpZiAvLyBHVEtfQ0hFQ0tf
VkVSU0lPTigyLCAxOCwgMCkKLQotI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigyLCAxNywgMykKLXZv
aWQgZ2RrX3dpbmRvd19nZXRfcm9vdF9jb29yZHMoR2RrV2luZG93KiB3aW5kb3csIGdpbnQgeCwg
Z2ludCB5LCBnaW50KiByb290WCwgZ2ludCogcm9vdFkpOwotI2VuZGlmIC8vIEdUS19DSEVDS19W
RVJTSU9OKDIsIDE3LCAzKQotCi0jaWYgIUdUS19DSEVDS19WRVJTSU9OKDIsIDE2LCAwKQotY29u
c3QgZ2NoYXIqIGd0a19tZW51X2l0ZW1fZ2V0X2xhYmVsKEd0a01lbnVJdGVtKik7Ci0jZW5kaWYg
Ly8gR1RLX0NIRUNLX1ZFUlNJT04oMiwgMTYsIDApCi0KLQotI2lmICFHVEtfQ0hFQ0tfVkVSU0lP
TigyLCAxNCwgMCkKLSNkZWZpbmUgZ3RrX3dpZGdldF9nZXRfd2luZG93KHdpZGdldCkgKHdpZGdl
dCktPndpbmRvdwotI2RlZmluZSBndGtfYWRqdXN0bWVudF9nZXRfdmFsdWUoYWRqKSAoYWRqKS0+
dmFsdWUKLSNkZWZpbmUgZ3RrX2RpYWxvZ19nZXRfY29udGVudF9hcmVhKGRpYWxvZykgKGRpYWxv
ZyktPnZib3gKLSNkZWZpbmUgZ3RrX2RpYWxvZ19nZXRfYWN0aW9uX2FyZWEoZGlhbG9nKSAoZGlh
bG9nKS0+YWN0aW9uX2FyZWEKLSNkZWZpbmUgZ3RrX3NlbGVjdGlvbl9kYXRhX2dldF9sZW5ndGgo
ZGF0YSkgKGRhdGEpLT5sZW5ndGgKLSNkZWZpbmUgZ3RrX3NlbGVjdGlvbl9kYXRhX2dldF9kYXRh
KGRhdGEpIChkYXRhKS0+ZGF0YQotI2RlZmluZSBndGtfc2VsZWN0aW9uX2RhdGFfZ2V0X3Rhcmdl
dChkYXRhKSAoZGF0YSktPnRhcmdldAotI2RlZmluZSBndGtfYWRqdXN0bWVudF9zZXRfcGFnZV9z
aXplKGFkaiwgbmV3VmFsdWUpICgoYWRqKS0+cGFnZV9zaXplID0gbmV3VmFsdWUpCi0jZGVmaW5l
IGd0a19hZGp1c3RtZW50X3NldF92YWx1ZShhZGosIG5ld1ZhbHVlKSAoKGFkaiktPnZhbHVlID0g
bmV3VmFsdWUpCi0jZGVmaW5lIGd0a19hZGp1c3RtZW50X3NldF9sb3dlcihhZGosIG5ld1ZhbHVl
KSAoKGFkaiktPmxvd2VyID0gbmV3VmFsdWUpCi0jZGVmaW5lIGd0a19hZGp1c3RtZW50X3NldF91
cHBlcihhZGosIG5ld1ZhbHVlKSAoKGFkaiktPnVwcGVyID0gbmV3VmFsdWUpCi0KLXZvaWQgZ3Rr
X2FkanVzdG1lbnRfY29uZmlndXJlKEd0a0FkanVzdG1lbnQqIGFkanVzdG1lbnQsIGdkb3VibGUg
dmFsdWUsIGdkb3VibGUgbG93ZXIsIGdkb3VibGUgdXBwZXIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBnZG91YmxlIHN0ZXBJbmNyZW1lbnQsIGdkb3VibGUgcGFnZUluY3JlbWVudCwg
Z2RvdWJsZSBwYWdlU2l6ZSk7Ci0KLXZvaWQgZ3RrX2FkanVzdG1lbnRfc2V0X3ZhbHVlKEd0a0Fk
anVzdG1lbnQqIGFkanVzbWVudCwgZ2RvdWJsZSB2YWx1ZSk7Ci0jZW5kaWYgLy8gR1RLX0NIRUNL
X1ZFUlNJT04oMiwgMTQsIDApCi0KIEdka0RldmljZSogZ2V0RGVmYXVsdEdES1BvaW50ZXJEZXZp
Y2UoR2RrV2luZG93KiB3aW5kb3cpOwotR2RrQ3Vyc29yKiBibGFua0N1cnNvcigpOwotCi0jaWYg
IUdUS19DSEVDS19WRVJTSU9OKDMsIDMsIDYpCi12b2lkIGdka19zY3JlZW5fZ2V0X21vbml0b3Jf
d29ya2FyZWEoR2RrU2NyZWVuICosIGludCBtb25pdG9yLCBHZGtSZWN0YW5nbGUgKmFyZWEpOwot
I2VuZGlmCiAKIEdfRU5EX0RFQ0xTCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9XaWRnZXRSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9XaWRnZXRSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCAwMzZkNGFhLi42NzFhYWRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvV2lkZ2V0UmVuZGVyaW5n
Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1dpZGdldFJlbmRl
cmluZ0NvbnRleHQuY3BwCkBAIC04NSw5ICs4NSwxNSBAQCBXaWRnZXRSZW5kZXJpbmdDb250ZXh0
OjpXaWRnZXRSZW5kZXJpbmdDb250ZXh0KEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0
LAogICAgIC8vIFdlIG5ldmVyIHdhbnQgdG8gY3JlYXRlIGEgc2NyYXRjaCBidWZmZXIgbGFyZ2Vy
IHRoYW4gdGhlIHNpemUgb2Ygb3VyIHRhcmdldCBHZGtEcmF3YWJsZS4KICAgICAvLyBUaGlzIHBy
ZXZlbnRzIGdpYW50IHBpeG1hcCBhbGxvY2F0aW9ucyBmb3IgdmVyeSBsYXJnZSB3aWRnZXRzIGlu
IHNtYWxsZXIgdmlld3MuCiAgICAgLy8gRklYTUU6IFdlIG5lZWQgdG8gaW1wbGVtZW50IHRoaXMg
Y2hlY2sgZm9yIFdlYktpdDIgYXMgd2VsbC4KLSAgICBpZiAoZ3JhcGhpY3NDb250ZXh0LT5nZGtX
aW5kb3coKSkgeworICAgIGlmIChHZGtEcmF3YWJsZSogZHJhd2FibGUgPSBncmFwaGljc0NvbnRl
eHQtPmdka1dpbmRvdygpKSB7CiAgICAgICAgIGludCBtYXhXaWR0aCA9IDAsIG1heEhlaWdodCA9
IDA7Ci0gICAgICAgIGdldEdka0RyYXdhYmxlU2l6ZShncmFwaGljc0NvbnRleHQtPmdka1dpbmRv
dygpLCAmbWF4V2lkdGgsICZtYXhIZWlnaHQpOworCisgICAgICAgIGlmIChHREtfSVNfUElYTUFQ
KGRyYXdhYmxlKSkKKyAgICAgICAgICAgIGdka19waXhtYXBfZ2V0X3NpemUoR0RLX1BJWE1BUChk
cmF3YWJsZSksICZtYXhXaWR0aCwgJm1heEhlaWdodCk7CisgICAgICAgIGVsc2UgaWYgKEdES19J
U19XSU5ET1coZHJhd2FibGUpKSB7CisgICAgICAgICAgICBtYXhXaWR0aCA9IGdka193aW5kb3df
Z2V0X3dpZHRoKEdES19XSU5ET1coZHJhd2FibGUpKTsKKyAgICAgICAgICAgIG1heEhlaWdodCA9
IGdka193aW5kb3dfZ2V0X2hlaWdodChHREtfV0lORE9XKGRyYXdhYmxlKSk7CisgICAgICAgIH0K
ICAgICAgICAgbV90YXJnZXRSZWN0LnNldFNpemUobV90YXJnZXRSZWN0LnNpemUoKS5zaHJ1bmtU
byhJbnRTaXplKG1heFdpZHRoLCBtYXhIZWlnaHQpKSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbHVnaW5zL2d0ay9ndGsyeHRiaW4uYyBiL1NvdXJjZS9XZWJDb3JlL3Bs
dWdpbnMvZ3RrL2d0azJ4dGJpbi5jCmluZGV4IDdiY2ZhN2EuLjNkMmZlN2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvZ3RrL2d0azJ4dGJpbi5jCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsdWdpbnMvZ3RrL2d0azJ4dGJpbi5jCkBAIC0yNzMsOSArMjczLDcgQEAgZ3RrX3h0Ymlu
X3JlYWxpemUgKEd0a1dpZGdldCAqd2lkZ2V0KQogewogICBHdGtYdEJpbiAgICAgKnh0YmluOwog
ICBHdGtBbGxvY2F0aW9uIGFsbG9jYXRpb24gPSB7IDAsIDAsIDIwMCwgMjAwIH07Ci0jaWYgR1RL
X0NIRUNLX1ZFUlNJT04oMiwgMTgsIDApCiAgIEd0a0FsbG9jYXRpb24gd2lkZ2V0X2FsbG9jYXRp
b247Ci0jZW5kaWYKIAogI2lmZGVmIERFQlVHX1hUQklOCiAgIHByaW50ZigiZ3RrX3h0YmluX3Jl
YWxpemUoKVxuIik7CkBAIC0yODYsMjkgKzI4NCwxNyBAQCBndGtfeHRiaW5fcmVhbGl6ZSAoR3Rr
V2lkZ2V0ICp3aWRnZXQpCiAgIHh0YmluID0gR1RLX1hUQklOICh3aWRnZXQpOwogCiAgIC8qIGNh
Y3VsYXRlIHRoZSBhbGxvY2F0aW9uIGJlZm9yZSByZWFsaXplICovCi0jaWYgR1RLX0NIRUNLX1ZF
UlNJT04oMiwgMjQsIDApCiAgIGFsbG9jYXRpb24ud2lkdGggPSBnZGtfd2luZG93X2dldF93aWR0
aCh4dGJpbi0+cGFyZW50X3dpbmRvdyk7CiAgIGFsbG9jYXRpb24uaGVpZ2h0ID0gZ2RrX3dpbmRv
d19nZXRfaGVpZ2h0KHh0YmluLT5wYXJlbnRfd2luZG93KTsKLSNlbHNlCi0gIGdpbnQgIHgsIHks
IHcsIGgsIGQ7IC8qIGdlb21ldHJ5IG9mIHdpbmRvdyAqLwotICBnZGtfd2luZG93X2dldF9nZW9t
ZXRyeSh4dGJpbi0+cGFyZW50X3dpbmRvdywgJngsICZ5LCAmdywgJmgsICZkKTsKLSAgYWxsb2Nh
dGlvbi53aWR0aCA9IHc7Ci0gIGFsbG9jYXRpb24uaGVpZ2h0ID0gaDsKLSNlbmRpZgogICBndGtf
d2lkZ2V0X3NpemVfYWxsb2NhdGUgKHdpZGdldCwgJmFsbG9jYXRpb24pOwogCiAjaWZkZWYgREVC
VUdfWFRCSU4KICAgcHJpbnRmKCJpbml0aWFsIGFsbG9jYXRpb24gJWQgJWQgJWQgJWRcbiIsIHgs
IHksIHcsIGgpOwogI2VuZGlmCiAKLSNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigyLCAxOCwgMCkKICAg
Z3RrX3dpZGdldF9nZXRfYWxsb2NhdGlvbih3aWRnZXQsICZ3aWRnZXRfYWxsb2NhdGlvbik7CiAg
IHh0YmluLT53aWR0aCA9IHdpZGdldF9hbGxvY2F0aW9uLndpZHRoOwogICB4dGJpbi0+aGVpZ2h0
ID0gd2lkZ2V0X2FsbG9jYXRpb24uaGVpZ2h0OwotI2Vsc2UKLSAgeHRiaW4tPndpZHRoID0gd2lk
Z2V0LT5hbGxvY2F0aW9uLndpZHRoOwotICB4dGJpbi0+aGVpZ2h0ID0gd2lkZ2V0LT5hbGxvY2F0
aW9uLmhlaWdodDsKLSNlbmRpZgogCiAgIC8qIHVzZSBHdGtTb2NrZXQncyByZWFsaXplICovCiAg
ICgqR1RLX1dJREdFVF9DTEFTUyhwYXJlbnRfY2xhc3MpLT5yZWFsaXplKSh3aWRnZXQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsv
Q2hhbmdlTG9nCmluZGV4IGI4ZWU4ZDcuLjhlM2VmYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NiBAQAorMjAxMy0wNS0xMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gUmVtb3ZlIHVubmVjZXNzYXJ5IEdUS19DSEVDS19W
RVJTSU9OICNpZmRlZnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTExNTkxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6Q2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKToKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZy
YW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKToKKyAgICAg
ICAgKiB0ZXN0cy90ZXN0YXBwbGljYXRpb25jYWNoZS5jOgorICAgICAgICAqIHRlc3RzL3Rlc3Rh
dGsuYzoKKyAgICAgICAgKiB0ZXN0cy90ZXN0YXRrcm9sZXMuYzoKKyAgICAgICAgKG1haW4pOgor
ICAgICAgICAqIHRlc3RzL3Rlc3Rjb250ZXh0bWVudS5jOgorICAgICAgICAqIHRlc3RzL3Rlc3Rj
b3B5YW5kcGFzdGUuYzoKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIHRlc3RzL3Rlc3Rkb21k
b2N1bWVudC5jOgorICAgICAgICAqIHRlc3RzL3Rlc3Rkb21kb213aW5kb3cuYzoKKyAgICAgICAg
KiB0ZXN0cy90ZXN0ZG9tbm9kZS5jOgorICAgICAgICAqIHRlc3RzL3Rlc3Rkb3dubG9hZC5jOgor
ICAgICAgICAobWFpbik6CisgICAgICAgICogdGVzdHMvdGVzdGZhdmljb25kYXRhYmFzZS5jOgor
ICAgICAgICAobWFpbik6CisgICAgICAgICogdGVzdHMvdGVzdGdsb2JhbHMuYzoKKyAgICAgICAg
KiB0ZXN0cy90ZXN0aGl0dGVzdHJlc3VsdC5jOgorICAgICAgICAqIHRlc3RzL3Rlc3RodHRwYmFj
a2VuZC5jOgorICAgICAgICAobWFpbik6CisgICAgICAgICogdGVzdHMvdGVzdGtleWV2ZW50cy5j
OgorICAgICAgICAobWFpbik6CisgICAgICAgICogdGVzdHMvdGVzdGxvYWRpbmcuYzoKKyAgICAg
ICAgKiB0ZXN0cy90ZXN0bWltZWhhbmRsaW5nLmM6CisgICAgICAgIChtYWluKToKKyAgICAgICAg
KiB0ZXN0cy90ZXN0bmV0d29ya3JlcXVlc3QuYzoKKyAgICAgICAgKG1haW4pOgorICAgICAgICAq
IHRlc3RzL3Rlc3RuZXR3b3JrcmVzcG9uc2UuYzoKKyAgICAgICAgKG1haW4pOgorICAgICAgICAq
IHRlc3RzL3Rlc3R3ZWJiYWNrZm9yd2FyZGxpc3QuYzoKKyAgICAgICAgKG1haW4pOgorICAgICAg
ICAqIHRlc3RzL3Rlc3R3ZWJkYXRhc291cmNlLmM6CisgICAgICAgIChtYWluKToKKyAgICAgICAg
KiB0ZXN0cy90ZXN0d2ViZnJhbWUuYzoKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIHRlc3Rz
L3Rlc3R3ZWJoaXN0b3J5aXRlbS5jOgorICAgICAgICAobWFpbik6CisgICAgICAgICogdGVzdHMv
dGVzdHdlYmluc3BlY3Rvci5jOgorICAgICAgICAobWFpbik6CisgICAgICAgICogdGVzdHMvdGVz
dHdlYnBsdWdpbmRhdGFiYXNlLmM6CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiB0ZXN0cy90
ZXN0d2VicmVzb3VyY2UuYzoKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIHRlc3RzL3Rlc3R3
ZWJzZXR0aW5ncy5jOgorICAgICAgICAobWFpbik6CisgICAgICAgICogdGVzdHMvdGVzdHdlYnZp
ZXcuYzoKKyAgICAgICAgKiB0ZXN0cy90ZXN0d2luZG93LmM6CisgICAgICAgIChtYWluKToKKyAg
ICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX3Zp
ZXdfcmVhbGl6ZSk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2hvd19oZWxwKToKKyAgICAg
ICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmll
d19zZXRfdG9vbHRpcF90ZXh0KToKKwogMjAxMy0wNS0wNyAgVG9tYXMgUG9wZWxhICA8dHBvcGVs
YUByZWRoYXQuY29tPgogCiAgICAgICAgIFtHVEtdIEluaXRpYWxpemUgV2ViS2l0V2ViUGx1Z2lu
IHBhdGggdG8gcHJldmVudCBkb3VibGUtZnJlZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKaW5kZXggMWE3YTdkYy4uOWE1MmU3
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRHdGsuY3BwCkBAIC03MjAsMTEgKzcyMCw3IEBAIHZvaWQgQ2hyb21lQ2xpZW50Ojpjb250
ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiBmcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uc3QK
ICAgICAvLyBvdGhlcndpc2Ugd2UgZ2V0IGludG8gYW4gaW5maW5pdGUgbG9vcCEKICAgICBHdGtX
aWRnZXQqIHdpZGdldCA9IEdUS19XSURHRVQobV93ZWJWaWV3KTsKICAgICBHdGtSZXF1aXNpdGlv
biByZXF1aXNpdGlvbjsKLSNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigyLCAyMCwgMCkKICAgICBndGtf
d2lkZ2V0X2dldF9yZXF1aXNpdGlvbih3aWRnZXQsICZyZXF1aXNpdGlvbik7Ci0jZWxzZQotICAg
IHJlcXVpc2l0aW9uID0gd2lkZ2V0LT5yZXF1aXNpdGlvbjsKLSNlbmRpZgogICAgIGlmIChndGtf
d2lkZ2V0X2dldF9yZWFsaXplZCh3aWRnZXQpCiAgICAgICAgICYmIChyZXF1aXNpdGlvbi5oZWln
aHQgIT0gc2l6ZS5oZWlnaHQoKSkKICAgICAgICAgfHwgKHJlcXVpc2l0aW9uLndpZHRoICE9IHNp
emUud2lkdGgoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKaW5kZXggYmVlNGU3Mi4uZDNiY2VlNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmNwcApAQCAtMTI1MCwxMSArMTI1MCw3IEBAIHZvaWQgRnJhbWVMb2FkZXJD
bGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UoKQogewogICAgIFdlYktpdFdl
YlZpZXcqIGNvbnRhaW5pbmdXaW5kb3cgPSBnZXRWaWV3RnJvbUZyYW1lKG1fZnJhbWUpOwogICAg
IEd0a0FsbG9jYXRpb24gYWxsb2NhdGlvbjsKLSNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigyLCAxOCwg
MCkKICAgICBndGtfd2lkZ2V0X2dldF9hbGxvY2F0aW9uKEdUS19XSURHRVQoY29udGFpbmluZ1dp
bmRvdyksICZhbGxvY2F0aW9uKTsKLSNlbHNlCi0gICAgYWxsb2NhdGlvbiA9IEdUS19XSURHRVQo
Y29udGFpbmluZ1dpbmRvdyktPmFsbG9jYXRpb247Ci0jZW5kaWYKICAgICBJbnRTaXplIHNpemUg
PSBJbnRTaXplKGFsbG9jYXRpb24ud2lkdGgsIGFsbG9jYXRpb24uaGVpZ2h0KTsKICAgICBib29s
IHRyYW5zcGFyZW50ID0gd2Via2l0X3dlYl92aWV3X2dldF90cmFuc3BhcmVudChjb250YWluaW5n
V2luZG93KTsKICAgICBDb2xvciBiYWNrZ3JvdW5kQ29sb3IgPSB0cmFuc3BhcmVudCA/IFdlYkNv
cmU6OkNvbG9yOjp0cmFuc3BhcmVudCA6IFdlYkNvcmU6OkNvbG9yOjp3aGl0ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhcHBsaWNhdGlvbmNhY2hlLmMgYi9Tb3Vy
Y2UvV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXBwbGljYXRpb25jYWNoZS5jCmluZGV4IGUyYzRlOGQu
LjNhMjkwOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhcHBsaWNh
dGlvbmNhY2hlLmMKKysrIGIvU291cmNlL1dlYktpdC9ndGsvdGVzdHMvdGVzdGFwcGxpY2F0aW9u
Y2FjaGUuYwpAQCAtMjMsOCArMjMsNiBAQAogI2luY2x1ZGUgPGd0ay9ndGsuaD4KICNpbmNsdWRl
IDx3ZWJraXQvd2Via2l0Lmg+CiAKLSNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigyLCAxNCwgMCkKLQog
c3RhdGljIHZvaWQgdGVzdF9hcHBsaWNhdGlvbl9jYWNoZV9tYXhpbXVtX3NpemUoKQogewogICAg
IHVuc2lnbmVkIGxvbmcgbG9uZyBtYXhTaXplID0gODE5MjsKQEAgLTQ5LDExICs0NywzIEBAIGlu
dCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICByZXR1cm4gZ190ZXN0X3J1bigpOwog
fQogCi0jZWxzZQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQotewotICAgIGdfY3Jp
dGljYWwoIllvdSB3aWxsIG5lZWQgZ3RrLTIuMTQuMCB0byBydW4gdGhlIHVuaXQgdGVzdHMuIERv
aW5nIG5vdGhpbmcgbm93LiIpOwotICAgIHJldHVybiAwOwotfQotCi0jZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGsuYyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L3Rlc3RzL3Rlc3RhdGsuYwppbmRleCA0MmJjNDYxLi4xMDcxNjZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRrLmMKKysrIGIvU291cmNlL1dlYktpdC9ndGsvdGVz
dHMvdGVzdGF0ay5jCkBAIC0yNiw4ICsyNiw2IEBACiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAjaW5j
bHVkZSA8d2Via2l0L3dlYmtpdC5oPgogCi0jaWYgR1RLX0NIRUNLX1ZFUlNJT04oMiwgMTQsIDAp
Ci0KIHN0YXRpYyBjb25zdCBjaGFyKiBjZW50ZXJlZENvbnRlbnRzID0gIjxodG1sPjxib2R5Pjxw
IHN0eWxlPSd0ZXh0LWFsaWduOiBjZW50ZXI7Jz5TaG9ydCBsaW5lPC9wPjxwIHN0eWxlPSd0ZXh0
LWFsaWduOiBjZW50ZXI7Jz5Mb25nLXNpemUgbGluZSB3aXRoIHNvbWUgZm9vIGJhciBiYXogY29u
dGVudDwvcD48cCBzdHlsZT0ndGV4dC1hbGlnbjogY2VudGVyOyc+U2hvcnQgbGluZTwvcD48cCBz
dHlsZT0ndGV4dC1hbGlnbjogY2VudGVyOyc+VGhpcyBpcyBhIG11bHRpLWxpbmUgcGFyYWdyYXBo
PGJyIC8+d2hlcmUgdGhlIGZpcnN0IGxpbmU8YnIgLz5pcyB0aGUgYmlnZ2VzdCBvbmU8L3A+PC9i
b2R5PjwvaHRtbD4iOwogCiBzdGF0aWMgY29uc3QgY2hhciogY29udGVudHMgPSAiPGh0bWw+PGJv
ZHk+PHA+VGhpcyBpcyBhIHRlc3QuIFRoaXMgaXMgdGhlIHNlY29uZCBzZW50ZW5jZS4gQW5kIHRo
aXMgdGhlIHRoaXJkLjwvcD48L2JvZHk+PC9odG1sPiI7CkBAIC0yMDMwLDExICsyMDI4LDMgQEAg
aW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgIHJldHVybiBnX3Rlc3RfcnVuICgp
OwogfQogCi0jZWxzZQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQotewotICAgIGdf
Y3JpdGljYWwoIllvdSB3aWxsIG5lZWQgZ3RrLTIuMTQuMCB0byBydW4gdGhlIHVuaXQgdGVzdHMu
IERvaW5nIG5vdGhpbmcgbm93LiIpOwotICAgIHJldHVybiAwOwotfQotCi0jZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RhdGtyb2xlcy5jIGIvU291cmNlL1dl
YktpdC9ndGsvdGVzdHMvdGVzdGF0a3JvbGVzLmMKaW5kZXggNDk3MDQ4Mi4uZGE3ODMzZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvdGVzdHMvdGVzdGF0a3JvbGVzLmMKKysrIGIvU291
cmNlL1dlYktpdC9ndGsvdGVzdHMvdGVzdGF0a3JvbGVzLmMKQEAgLTI0LDggKzI0LDYgQEAKICNp
bmNsdWRlIDxndGsvZ3RrLmg+CiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdC5oPgogCi0jaWYgR1RL
X0NIRUNLX1ZFUlNJT04oMiwgMTQsIDApCi0KIC8qIE5vbiBmb3JtIHJvbGVzICovCiAjZGVmaW5l
IEhUTUxfRE9DVU1FTlRfRlJBTUUgIjxodG1sPjxib2R5PlRoaXMgaXMgYSB0ZXN0LjwvYm9keT48
L2h0bWw+IgogI2RlZmluZSBIVE1MX0hFQURJTkcgIjxodG1sPjxib2R5PjxoMT4xPC9oMT48aDI+
MjwvaDI+PGgzPjM8L2gzPjxoND40PC9oND48aDU+NTwvaDU+PGg2PjY8L2g2PjwvYm9keT48L2h0
bWw+IgpAQCAtNDI2LDEyICs0MjQsMyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3Yp
CiAKICAgICByZXR1cm4gZ190ZXN0X3J1bigpOwogfQotCi0jZWxzZQotaW50IG1haW4oaW50IGFy
Z2MsIGNoYXIqKiBhcmd2KQotewotICAgIGdfY3JpdGljYWwoIllvdSB3aWxsIG5lZWQgZ3RrLTIu
MTQuMCB0byBydW4gdGhlIHVuaXQgdGVzdHMuIERvaW5nIG5vdGhpbmcgbm93LiIpOwotICAgIHJl
dHVybiAwOwotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3Rz
L3Rlc3Rjb250ZXh0bWVudS5jIGIvU291cmNlL1dlYktpdC9ndGsvdGVzdHMvdGVzdGNvbnRleHRt
ZW51LmMKaW5kZXggZTNhZmQ4Yy4uZmJmNGVkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9n
dGsvdGVzdHMvdGVzdGNvbnRleHRtZW51LmMKKysrIGIvU291cmNlL1dlYktpdC9ndGsvdGVzdHMv
dGVzdGNvbnRleHRtZW51LmMKQEAgLTIwLDggKzIwLDYgQEAKICNpbmNsdWRlICJhdXRvdG9vbHNj
b25maWcuaCIKICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0Lmg+CiAKLSNpZiBHVEtfQ0hFQ0tfVkVS
U0lPTigyLCAxNCwgMCkKLQogdHlwZWRlZiBzdHJ1Y3QgewogICAgIGNoYXIgKmRhdGE7CiAgICAg
Z3VpbnQgZmxhZzsKQEAgLTMxNCwxMiArMzEyLDMgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIg
Kiphcmd2KQogICAgIHJldHVybiBnX3Rlc3RfcnVuKCk7CiB9CiAKLSNlbHNlCi0KLWludCBtYWlu
KGludCBhcmdjLCBjaGFyICoqYXJndikKLXsKLSAgICBnX2NyaXRpY2FsKCJZb3Ugd2lsbCBuZWVk
IGF0IGxlYXN0IEdUSysgMi4xNC4wIHRvIHJ1biB0aGUgdW5pdCB0ZXN0cy4iKTsKLSAgICByZXR1
cm4gMDsKLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay90ZXN0cy90
ZXN0Y29weWFuZHBhc3RlLmMgYi9Tb3VyY2UvV2ViS2l0L2d0ay90ZXN0cy90ZXN0Y29weWFuZHBh
c3RlLmMKaW5kZXggZTYxM2MzYS4uNTU1N2ZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9n
dGsvdGVzdHMvdGVzdGNvcHlhbmRwYXN0ZS5jCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3Rz
L3Rlc3Rjb3B5YW5kcGFzdGUuYwpAQCAtMjYsOCArMjYsNiBAQAogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0pTU3RyaW5nUmVmLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDb250ZXh0
UmVmLmg+CiAKLSNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigyLCAxNCwgMCkKLQogdHlwZWRlZiBzdHJ1
Y3QgewogICAgIGNoYXIqIHBhZ2U7CiAgICAgY2hhciogZXhwZWN0ZWRDb250ZW50OwpAQCAtMjY2
LDEzICsyNjQsMyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAKICAgICByZXR1
cm4gZ190ZXN0X3J1bigpOwogfQotCi0jZWxzZQotCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhcioq
IGFyZ3YpCi17Ci0gICAgZ19jcml0aWNhbCgiWW91IHdpbGwgbmVlZCBhdCBsZWFzdCBHVEsrIDIu
MTQuMCB0byBydW4gdGhlIHVuaXQgdGVzdHMuIik7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLSNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvdGVzdHMvdGVzdGRvbWRvY3VtZW50LmMg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay90ZXN0cy90ZXN0ZG9tZG9jdW1lbnQuYwppbmRleCBlZmZjZGJm
Li5lNDBhODk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay90ZXN0cy90ZXN0ZG9tZG9j
dW1lbnQuYworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay90ZXN0cy90ZXN0ZG9tZG9jdW1lbnQuYwpA
QCAtMjUsOCArMjUsNiBAQAogI2luY2x1ZGUgPGd0ay9ndGsuaD4KICNpbmNsdWRlIDx3ZWJraXQv
d2Via2l0Lmg+CiAKLSNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigyLCAxNCwgMCkKLQogI2RlZmluZSBI
VE1MX0RPQ1VNRU5UX1RJVExFICI8aHRtbD48aGVhZD48dGl0bGU+VGhpcyBpcyB0aGUgdGl0bGU8
L3RpdGxlPjwvaGVhZD48Ym9keT48L2JvZHk+PC9odG1sPiIKICNkZWZpbmUgSFRNTF9ET0NVTUVO
VF9FTEVNRU5UUyAiPGh0bWw+PGJvZHk+PHVsPjxsaT4xPC9saT48bGk+MjwvbGk+PGxpPjM8L2xp
PjwvdWw+PC9ib2R5PjwvaHRtbD4iCiAjZGVmaW5lIEhUTUxfRE9DVU1FTlRfRUxFTUVOVFNfQ0xB
U1MgIjxodG1sPjxib2R5PjxkaXYgY2xhc3M9XCJ0ZXN0XCI+PC9kaXY+PGRpdiBjbGFzcz1cInN0
cmFuZ2VcIj48L2Rpdj48ZGl2IGNsYXNzPVwidGVzdFwiPjwvZGl2PjwvYm9keT48L2h0bWw+IgpA
QCAtMzkxLDExICszODksMyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAg
cmV0dXJuIGdfdGVzdF9ydW4oKTsKIH0KIAotI2Vsc2UKLWludCBtYWluKGludCBhcmdjLCBjaGFy
KiogYXJndikKLXsKLSAgICBnX2NyaXRpY2FsKCJZb3Ugd2lsbCBndGstMi4xNC4wIHRvIHJ1biB0
aGUgdW5pdCB0ZXN0cy4gRG9pbmcgbm90aGluZyBub3cuIik7Ci0gICAgcmV0dXJuIDA7Ci19Ci0K
LSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvdGVzdHMvdGVzdGRvbWRvbXdp
bmRvdy5jIGIvU291cmNlL1dlYktpdC9ndGsvdGVzdHMvdGVzdGRvbWRvbXdpbmRvdy5jCmluZGV4
IGFjMmE3NjMuLjNkMzEyZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rl
c3Rkb21kb213aW5kb3cuYworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay90ZXN0cy90ZXN0ZG9tZG9t
d2luZG93LmMKQEAgLTI1LDggKzI1LDYgQEAKICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAjaW5jbHVk
ZSA8d2Via2l0L3dlYmtpdC5oPgogCi0jaWYgR1RLX0NIRUNLX1ZFUlNJT04oMiwgMTQsIDApCi0K
ICNkZWZpbmUgSFRNTF9ET0NVTUVOVCAiPGh0bWw+PGhlYWQ+PHRpdGxlPlRoaXMgaXMgdGhlIHRp
dGxlPC90aXRsZT48L2hlYWQ+PGJvZHk+PHAgaWQ9J3Rlc3QnPnRlc3Q8L3A+PC9ib2R5PjwvaHRt
bD4iCiAKIHR5cGVkZWYgc3RydWN0IHsKQEAgLTIxNywxMSArMjE1LDMgQEAgaW50IG1haW4oaW50
IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgIHJldHVybiBnX3Rlc3RfcnVuKCk7CiB9CiAKLSNlbHNl
Ci1pbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCi17Ci0gICAgZ19jcml0aWNhbCgiWW91
IHdpbGwgbmVlZCBndGstMi4xNC4wIHRvIHJ1biB0aGUgdW5pdCB0ZXN0cy4gRG9pbmcgbm90aGlu
ZyBub3cuIik7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9ndGsvdGVzdHMvdGVzdGRvbW5vZGUuYyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3Rz
L3Rlc3Rkb21ub2RlLmMKaW5kZXggNTY2NjlhOC4uNjYxMmRiZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9ndGsvdGVzdHMvdGVzdGRvbW5vZGUuYworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay90
ZXN0cy90ZXN0ZG9tbm9kZS5jCkBAIC0yNSw4ICsyNSw2IEBACiAjaW5jbHVkZSA8Z3RrL2d0ay5o
PgogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXQuaD4KIAotI2lmIEdUS19DSEVDS19WRVJTSU9OKDIs
IDE0LCAwKQotCiAjZGVmaW5lIEhUTUxfRE9DVU1FTlRfSElFUkFSQ0hZX05BVklHQVRJT04gIjxo
dG1sPjxoZWFkPjx0aXRsZT5UaGlzIGlzIHRoZSB0aXRsZTwvdGl0bGU+PC9oZWFkPjxib2R5Pjxw
PjE8L3A+PHA+MjwvcD48cD4zPC9wPjwvYm9keT48L2h0bWw+IgogI2RlZmluZSBIVE1MX0RPQ1VN
RU5UX05PREVfSU5TRVJUSU9OICI8aHRtbD48Ym9keT48L2JvZHk+PC9odG1sPiIKIApAQCAtMTk0
LDExICsxOTIsMyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgcmV0dXJu
IGdfdGVzdF9ydW4oKTsKIH0KIAotI2Vsc2UKLWludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJn
dikKLXsKLSAgICBnX2NyaXRpY2FsKCJZb3Ugd2lsbCBuZWVkIGd0ay0yLjE0LjAgdG8gcnVuIHRo
ZSB1bml0IHRlc3RzLiBEb2luZyBub3RoaW5nIG5vdy4iKTsKLSAgICByZXR1cm4gMDsKLX0KLQot
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay90ZXN0cy90ZXN0ZG93bmxvYWQu
YyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3Rkb3dubG9hZC5jCmluZGV4IGRjMjQyOWUu
LjEwNmMzNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3Rkb3dubG9h
ZC5jCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3Rkb3dubG9hZC5jCkBAIC0yMyw4
ICsyMyw2IEBACiAjaW5jbHVkZSA8Z2xpYi9nc3RkaW8uaD4KICNpbmNsdWRlIDx3ZWJraXQvd2Vi
a2l0Lmg+CiAKLSNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigyLCAxNCwgMCkKLQogR01haW5Mb29wKiBs
b29wOwogY2hhciogdGVtcG9yYXJ5RmlsZW5hbWUgPSBOVUxMOwogV2ViS2l0RG93bmxvYWQqIHRo
ZURvd25sb2FkID0gTlVMTDsKQEAgLTMyMiwxMyArMzIwLDMgQEAgaW50IG1haW4oaW50IGFyZ2Ms
IGNoYXIqKiBhcmd2KQogICAgIGdfdGVzdF9hZGRfZnVuYygiL3dlYmtpdC9kb3dubG9hZC9ub3Qt
Zm91bmQiLCB0ZXN0X3dlYmtpdF9kb3dubG9hZF9ub3RfZm91bmQpOwogICAgIHJldHVybiBnX3Rl
c3RfcnVuICgpOwogfQotCi0jZWxzZQotCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3Yp
Ci17Ci0gICAgZ19jcml0aWNhbCgiWW91IHdpbGwgbmVlZCBhdCBsZWFzdCBHVEsrIDIuMTQuMCB0
byBydW4gdGhlIHVuaXQgdGVzdHMuIik7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvdGVzdHMvdGVzdGZhdmljb25kYXRhYmFzZS5jIGIv
U291cmNlL1dlYktpdC9ndGsvdGVzdHMvdGVzdGZhdmljb25kYXRhYmFzZS5jCmluZGV4IDJlYzQ5
MjguLjk3MWE3ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RmYXZp
Y29uZGF0YWJhc2UuYworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay90ZXN0cy90ZXN0ZmF2aWNvbmRh
dGFiYXNlLmMKQEAgLTI2LDcgKzI2LDYgQEAKIAogY29uc3QgaW50IGdJY29uU2l6ZSA9IDE2Owog
Ci0jaWYgR1RLX0NIRUNLX1ZFUlNJT04oMiwgMTQsIDApCiBHTWFpbkxvb3AgKmxvb3A7CiBjaGFy
ICpiYXNlVVJJOwogCkBAIC0yNzUsMTEgKzI3NCwzIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFy
ICoqYXJndikKIAogICAgIHJldHVybiBnX3Rlc3RfcnVuKCk7CiB9Ci0jZWxzZQotaW50IG1haW4o
aW50IGFyZ2MsIGNoYXIgKiphcmd2KQotewotICAgIGdfY3JpdGljYWwoIllvdSB3aWxsIG5lZWQg
Z3RrLTIuMTQuMCB0byBydW4gdGhlIHVuaXQgdGVzdHMuIERvaW5nIG5vdGhpbmcgbm93LiIpOwot
ICAgIHJldHVybiAwOwotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L3Rlc3RzL3Rlc3RnbG9iYWxzLmMgYi9Tb3VyY2UvV2ViS2l0L2d0ay90ZXN0cy90ZXN0Z2xvYmFs
cy5jCmluZGV4IDY2YjU2N2QuLmQ3ZjMxNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L3Rlc3RzL3Rlc3RnbG9iYWxzLmMKKysrIGIvU291cmNlL1dlYktpdC9ndGsvdGVzdHMvdGVzdGds
b2JhbHMuYwpAQCAtMjIsOCArMjIsNiBAQAogI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgogI2lu
Y2x1ZGUgPHdlYmtpdC93ZWJraXQuaD4KIAotI2lmIEdUS19DSEVDS19WRVJTSU9OKDIsIDE0LCAw
KQotCiAvLyBNYWtlIHN1cmUgdGhlIHNlc3Npb24gaXMgaW5pdGlhbGl6ZWQgcHJvcGVybHkgd2hl
biB3ZWJraXRfZ2V0X2RlZmF1bHRfc2Vzc2lvbigpIGlzIGNhbGxlZC4KIHN0YXRpYyB2b2lkIHRl
c3RfZ2xvYmFsc19kZWZhdWx0X3Nlc3Npb24oKQogewpAQCAtMTEwLDExICsxMDgsMyBAQCBpbnQg
bWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgcmV0dXJuIGdfdGVzdF9ydW4oKTsKIH0K
IAotI2Vsc2UKLWludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKLXsKLSAgICBnX2NyaXRp
Y2FsKCJZb3Ugd2lsbCBuZWVkIGd0ay0yLjE0LjAgdG8gcnVuIHRoZSB1bml0IHRlc3RzLiBEb2lu
ZyBub3RoaW5nIG5vdy4iKTsKLSAgICByZXR1cm4gMDsKLX0KLQotI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2d0ay90ZXN0cy90ZXN0aGl0dGVzdHJlc3VsdC5jIGIvU291cmNlL1dl
YktpdC9ndGsvdGVzdHMvdGVzdGhpdHRlc3RyZXN1bHQuYwppbmRleCBiNDA4MGZkLi5hZGJmOThh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay90ZXN0cy90ZXN0aGl0dGVzdHJlc3VsdC5j
CisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RoaXR0ZXN0cmVzdWx0LmMKQEAgLTIz
LDggKzIzLDYgQEAKICNpbmNsdWRlIDxnbGliL2dzdGRpby5oPgogI2luY2x1ZGUgPHdlYmtpdC93
ZWJraXQuaD4KIAotI2lmIEdUS19DSEVDS19WRVJTSU9OKDIsIDE0LCAwKQotCiB0eXBlZGVmIHN0
cnVjdCB7CiAgIGNoYXIqIGRhdGE7CiAgIGd1aW50IGZsYWc7CkBAIC0xNjksMTIgKzE2NywzIEBA
IGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICByZXR1cm4gZ190ZXN0X3J1biAo
KTsKIH0KIAotI2Vsc2UKLQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQotewotICAg
IGdfY3JpdGljYWwoIllvdSB3aWxsIG5lZWQgYXQgbGVhc3QgR1RLKyAyLjE0LjAgdG8gcnVuIHRo
ZSB1bml0IHRlc3RzLiIpOwotICAgIHJldHVybiAwOwotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RodHRwYmFja2VuZC5jIGIvU291cmNlL1dlYktp
dC9ndGsvdGVzdHMvdGVzdGh0dHBiYWNrZW5kLmMKaW5kZXggMWE4NWJkNi4uZDUwYmU5NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvdGVzdHMvdGVzdGh0dHBiYWNrZW5kLmMKKysrIGIv
U291cmNlL1dlYktpdC9ndGsvdGVzdHMvdGVzdGh0dHBiYWNrZW5kLmMKQEAgLTI1LDggKzI1LDYg
QEAKICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdC5oPgogCi0j
aWYgR1RLX0NIRUNLX1ZFUlNJT04oMiwgMTQsIDApCi0KIC8vIE5vdCB5ZXQgcHVibGljIEFQSQog
U291cE1lc3NhZ2UqIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X21lc3NhZ2UoV2ViS2l0TmV0
d29ya1JlcXVlc3QqIHJlcXVlc3QpOwogCkBAIC03NSwxMiArNzMsMyBAQCBpbnQgbWFpbihpbnQg
YXJnYywgY2hhcioqIGFyZ3YpCiAgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L3NvdXBtZXNz
YWdlL2xpZmV0aW1lIiwgdGVzdF9zb3VwX21lc3NhZ2VfbGlmZXRpbWUpOwogICAgIHJldHVybiBn
X3Rlc3RfcnVuICgpOwogfQotCi0jZWxzZQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2
KQotewotICAgIGdfY3JpdGljYWwoIllvdSB3aWxsIG5lZWQgZ3RrLTIuMTQuMCB0byBydW4gdGhl
IHVuaXQgdGVzdHMuIERvaW5nIG5vdGhpbmcgbm93LiIpOwotICAgIHJldHVybiAwOwotfQotCi0j
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RrZXlldmVudHMu
YyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RrZXlldmVudHMuYwppbmRleCAyYWZkZWZm
Li5hZDhlMzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay90ZXN0cy90ZXN0a2V5ZXZl
bnRzLmMKKysrIGIvU291cmNlL1dlYktpdC9ndGsvdGVzdHMvdGVzdGtleWV2ZW50cy5jCkBAIC0y
Niw5ICsyNiw2IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNTdHJpbmdSZWYuaD4KICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NvbnRleHRSZWYuaD4KIAotCi0jaWYgR1RLX0NIRUNL
X1ZFUlNJT04oMiwgMTQsIDApCi0KIHR5cGVkZWYgc3RydWN0IHsKICAgICBjaGFyKiBwYWdlOwog
ICAgIGNoYXIqIHRleHQ7CkBAIC0yNTEsNyArMjQ4LDcgQEAgc3RhdGljIHZvaWQgdGVzdF9ibG9j
a2luZyhLZXlFdmVudEZpeHR1cmUqIGZpeHR1cmUsIGdjb25zdHBvaW50ZXIgZGF0YSkKICAgICBz
ZXR1cF9rZXlldmVudF90ZXN0KGZpeHR1cmUsIGRhdGEsIEdfQ0FMTEJBQ0sodGVzdF9ibG9ja2lu
Z19sb2FkX3N0YXR1c19jYikpOwogfQogCi0jaWYgZGVmaW5lZChHREtfV0lORE9XSU5HX1gxMSkg
JiYgR1RLX0NIRUNLX1ZFUlNJT04oMiwgMTYsIDApCisjaWYgZGVmaW5lZChHREtfV0lORE9XSU5H
X1gxMSkKIHN0YXRpYyB2b2lkIHRlc3RfeGltX2xvYWRfc3RhdHVzX2NiKFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcsIEdQYXJhbVNwZWMqIHNwZWMsIGdwb2ludGVyIGRhdGEpCiB7CiAgICAgS2V5RXZl
bnRGaXh0dXJlKiBmaXh0dXJlID0gKEtleUV2ZW50Rml4dHVyZSopZGF0YTsKQEAgLTM3NSw3ICsz
NzIsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgICAgICAgICAgICBr
ZXlfZXZlbnRfZml4dHVyZV9zZXR1cCwKICAgICAgICAgICAgICAgIHRlc3RfYmxvY2tpbmcsCiAg
ICAgICAgICAgICAgICBrZXlfZXZlbnRfZml4dHVyZV90ZWFyZG93bik7Ci0jaWYgZGVmaW5lZChH
REtfV0lORE9XSU5HX1gxMSkgJiYgR1RLX0NIRUNLX1ZFUlNJT04oMiwgMTYsIDApCisjaWYgZGVm
aW5lZChHREtfV0lORE9XSU5HX1gxMSkKICAgICBnX3Rlc3RfYWRkKCIvd2Via2l0L2tleWV2ZW50
L3hpbS10ZXh0aW5wdXQiLCBLZXlFdmVudEZpeHR1cmUsCiAgICAgICAgICAgICAgICB0ZXN0X2lu
Zm9fbmV3KHRleHRpbnB1dF9odG1sLCBUUlVFKSwKICAgICAgICAgICAgICAgIGtleV9ldmVudF9m
aXh0dXJlX3NldHVwLApAQCAtMzkxLDEyICszODgsMyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hh
cioqIGFyZ3YpCiAgICAgcmV0dXJuIGdfdGVzdF9ydW4oKTsKIH0KIAotI2Vsc2UKLQotaW50IG1h
aW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQotewotICAgIGdfY3JpdGljYWwoIllvdSB3aWxsIG5l
ZWQgYXQgbGVhc3QgR1RLKyAyLjE0LjAgdG8gcnVuIHRoZSB1bml0IHRlc3RzLiIpOwotICAgIHJl
dHVybiAwOwotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3Rz
L3Rlc3Rsb2FkaW5nLmMgYi9Tb3VyY2UvV2ViS2l0L2d0ay90ZXN0cy90ZXN0bG9hZGluZy5jCmlu
ZGV4IGY0ZmMxMzQuLjc5NDk5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3Rz
L3Rlc3Rsb2FkaW5nLmMKKysrIGIvU291cmNlL1dlYktpdC9ndGsvdGVzdHMvdGVzdGxvYWRpbmcu
YwpAQCAtMjQsOCArMjQsNiBAQAogI2luY2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgPHdlYmtp
dC93ZWJraXQuaD4KIAotI2lmIEdUS19DSEVDS19WRVJTSU9OKDIsIDE0LCAwKQotCiAvKiBUaGlz
IHN0cmluZyBoYXMgdG8gYmUgcmF0aGVyIGJpZyBiZWNhdXNlIG9mIHRoZSBjYW5jZWxsZWQgdGVz
dCAtIGl0CiAgKiBsb29rcyBsaWtlIHNvdXAgcmVmdXNlcyB0byBzZW5kIG9yIHJlY2VpdmUgYSB0
b28gc21hbGwgY2h1bmsgKi8KICNkZWZpbmUgSFRNTF9TVFJJTkcgIjxodG1sPjxib2R5PlRlc3Rp
bmchVGVzdGluZyFUZXN0aW5nIVRlc3RpbmchVGVzdGluZyFUZXN0aW5nIVRlc3RpbmchVGVzdGlu
ZyFUZXN0aW5nIVRlc3RpbmchVGVzdGluZyFUZXN0aW5nIVRlc3RpbmchVGVzdGluZyFUZXN0aW5n
IVRlc3RpbmchVGVzdGluZyFUZXN0aW5nIVRlc3RpbmchVGVzdGluZyFUZXN0aW5nIVRlc3Rpbmch
VGVzdGluZyFUZXN0aW5nIVRlc3RpbmchVGVzdGluZyFUZXN0aW5nIVRlc3RpbmchVGVzdGluZyFU
ZXN0aW5nIVRlc3RpbmchVGVzdGluZyFUZXN0aW5nIVRlc3RpbmchVGVzdGluZyFUZXN0aW5nIVRl
c3RpbmchVGVzdGluZyFUZXN0aW5nIVRlc3RpbmchVGVzdGluZyFUZXN0aW5nIVRlc3RpbmchVGVz
dGluZyFUZXN0aW5nIVRlc3RpbmchVGVzdGluZyFUZXN0aW5nIVRlc3RpbmchVGVzdGluZyFUZXN0
aW5nIVRlc3RpbmchVGVzdGluZyFUZXN0aW5nIVRlc3RpbmchVGVzdGluZyFUZXN0aW5nIVRlc3Rp
bmchVGVzdGluZyFUZXN0aW5nIVRlc3RpbmchVGVzdGluZyFUZXN0aW5nIVRlc3RpbmchVGVzdGlu
ZyFUZXN0aW5nIVRlc3RpbmchVGVzdGluZyFUZXN0aW5nIVRlc3RpbmchVGVzdGluZyFUZXN0aW5n
IVRlc3RpbmchVGVzdGluZyFUZXN0aW5nIVRlc3RpbmchVGVzdGluZyFUZXN0aW5nIVRlc3Rpbmch
VGVzdGluZyFUZXN0aW5nIVRlc3RpbmchVGVzdGluZyFUZXN0aW5nIVRlc3RpbmchVGVzdGluZyE8
L2JvZHk+PC9odG1sPiIKQEAgLTQzNSwxMSArNDMzLDMgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNo
YXIqKiBhcmd2KQogICAgIHJldHVybiBnX3Rlc3RfcnVuKCk7CiB9CiAKLSNlbHNlCi1pbnQgbWFp
bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCi17Ci0gICAgZ19jcml0aWNhbCgiWW91IHdpbGwgbmVl
ZCBndGstMi4xNC4wIHRvIHJ1biB0aGUgdW5pdCB0ZXN0cy4gRG9pbmcgbm90aGluZyBub3cuIik7
Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9n
dGsvdGVzdHMvdGVzdG1pbWVoYW5kbGluZy5jIGIvU291cmNlL1dlYktpdC9ndGsvdGVzdHMvdGVz
dG1pbWVoYW5kbGluZy5jCmluZGV4IDlhYTYyZjguLmZmYWE3MDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RtaW1laGFuZGxpbmcuYworKysgYi9Tb3VyY2UvV2ViS2l0
L2d0ay90ZXN0cy90ZXN0bWltZWhhbmRsaW5nLmMKQEAgLTI4LDggKzI4LDYgQEAKICNpbmNsdWRl
IDx3ZWJraXQvd2Via2l0Lmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAKLSNpZiBHVEtfQ0hFQ0tf
VkVSU0lPTigyLCAxNCwgMCkKLQogR01haW5Mb29wKiBsb29wOwogU291cFNlc3Npb24gKnNlc3Np
b247CiBjaGFyKiBiYXNlX3VyaTsKQEAgLTIwMywxMiArMjAxLDMgQEAgaW50IG1haW4oaW50IGFy
Z2MsIGNoYXIqKiBhcmd2KQogCiAgICAgcmV0dXJuIGdfdGVzdF9ydW4oKTsKIH0KLQotI2Vsc2UK
LWludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKLXsKLSAgICBnX2NyaXRpY2FsKCJZb3Ug
d2lsbCBuZWVkIGd0ay0yLjE0LjAgdG8gcnVuIHRoZSB1bml0IHRlc3RzLiBEb2luZyBub3RoaW5n
IG5vdy4iKTsKLSAgICByZXR1cm4gMDsKLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2d0ay90ZXN0cy90ZXN0bmV0d29ya3JlcXVlc3QuYyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L3Rlc3RzL3Rlc3RuZXR3b3JrcmVxdWVzdC5jCmluZGV4IGJmM2EyZGYuLjJhZjQ3MWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RuZXR3b3JrcmVxdWVzdC5jCisrKyBi
L1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RuZXR3b3JrcmVxdWVzdC5jCkBAIC0yNiw4ICsy
Niw2IEBACiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdC5oPgog
Ci0jaWYgR1RLX0NIRUNLX1ZFUlNJT04oMiwgMTQsIDApCi0KIHN0YXRpYyB2b2lkIHRlc3RfbmV0
d29ya19yZXF1ZXN0X2NyZWF0ZV9kZXN0cm95KCkKIHsKICAgICBXZWJLaXROZXR3b3JrUmVxdWVz
dCogcmVxdWVzdDsKQEAgLTk2LDEyICs5NCwzIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiog
YXJndikKICAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQvbmV0d29ya3JlcXVlc3QvcHJvcGVy
dGllcyIsIHRlc3RfbmV0d29ya19yZXF1ZXN0X3Byb3BlcnRpZXMpOwogICAgIHJldHVybiBnX3Rl
c3RfcnVuICgpOwogfQotCi0jZWxzZQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQot
ewotICAgIGdfY3JpdGljYWwoIllvdSB3aWxsIG5lZWQgZ3RrLTIuMTQuMCB0byBydW4gdGhlIHVu
aXQgdGVzdHMuIERvaW5nIG5vdGhpbmcgbm93LiIpOwotICAgIHJldHVybiAwOwotfQotCi0jZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RuZXR3b3JrcmVzcG9u
c2UuYyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3RuZXR3b3JrcmVzcG9uc2UuYwppbmRl
eCAzNWFjNDE0Li44YjEyZjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay90ZXN0cy90
ZXN0bmV0d29ya3Jlc3BvbnNlLmMKKysrIGIvU291cmNlL1dlYktpdC9ndGsvdGVzdHMvdGVzdG5l
dHdvcmtyZXNwb25zZS5jCkBAIC0yNyw4ICsyNyw2IEBACiAjaW5jbHVkZSA8c3RkbGliLmg+CiAj
aW5jbHVkZSA8d2Via2l0L3dlYmtpdC5oPgogCi0jaWYgR1RLX0NIRUNLX1ZFUlNJT04oMiwgMTQs
IDApCi0KIHN0YXRpYyB2b2lkIHRlc3RfbmV0d29ya19yZXNwb25zZV9jcmVhdGVfZGVzdHJveSgp
CiB7CiAgICAgV2ViS2l0TmV0d29ya1Jlc3BvbnNlKiByZXNwb25zZTsKQEAgLTk3LDEyICs5NSwz
IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICBnX3Rlc3RfYWRkX2Z1bmMo
Ii93ZWJraXQvbmV0d29ya3Jlc3BvbnNlL3Byb3BlcnRpZXMiLCB0ZXN0X25ldHdvcmtfcmVzcG9u
c2VfcHJvcGVydGllcyk7CiAgICAgcmV0dXJuIGdfdGVzdF9ydW4gKCk7CiB9Ci0KLSNlbHNlCi1p
bnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCi17Ci0gICAgZ19jcml0aWNhbCgiWW91IHdp
bGwgbmVlZCBndGstMi4xNC4wIHRvIHJ1biB0aGUgdW5pdCB0ZXN0cy4gRG9pbmcgbm90aGluZyBu
b3cuIik7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9ndGsvdGVzdHMvdGVzdHdlYmJhY2tmb3J3YXJkbGlzdC5jIGIvU291cmNlL1dlYktpdC9n
dGsvdGVzdHMvdGVzdHdlYmJhY2tmb3J3YXJkbGlzdC5jCmluZGV4IDlkNDlkZjYuLjIyYWNiNDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3R3ZWJiYWNrZm9yd2FyZGxp
c3QuYworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay90ZXN0cy90ZXN0d2ViYmFja2ZvcndhcmRsaXN0
LmMKQEAgLTIyLDggKzIyLDYgQEAKICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAjaW5jbHVkZSA8d2Vi
a2l0L3dlYmtpdC5oPgogCi0jaWYgR1RLX0NIRUNLX1ZFUlNJT04oMiwgMTQsIDApCi0KIHN0YXRp
YyB2b2lkIHRlc3Rfd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fbGlmZXRpbWUodm9pZCkKIHsKICAg
ICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3OwpAQCAtMzI2LDEyICszMjQsMyBAQCBpbnQgbWFpbihp
bnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L3dlYmJh
Y2tmb3J3YXJkbGlzdC9jbGVhciIsIHRlc3Rfd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9j
bGVhcik7CiAgICAgcmV0dXJuIGdfdGVzdF9ydW4gKCk7CiB9Ci0KLSNlbHNlCi1pbnQgbWFpbihp
bnQgYXJnYywgY2hhcioqIGFyZ3YpCi17Ci0gICAgZ19jcml0aWNhbCgiWW91IHdpbGwgbmVlZCBn
dGstMi4xNC4wIHRvIHJ1biB0aGUgdW5pdCB0ZXN0cy4gRG9pbmcgbm90aGluZyBub3cuIik7Ci0g
ICAgcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsv
dGVzdHMvdGVzdHdlYmRhdGFzb3VyY2UuYyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3R3
ZWJkYXRhc291cmNlLmMKaW5kZXggMzljNWE2Ni4uZWQ3M2JkYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9ndGsvdGVzdHMvdGVzdHdlYmRhdGFzb3VyY2UuYworKysgYi9Tb3VyY2UvV2ViS2l0
L2d0ay90ZXN0cy90ZXN0d2ViZGF0YXNvdXJjZS5jCkBAIC0yMiw4ICsyMiw2IEBACiAjaW5jbHVk
ZSA8Z3RrL2d0ay5oPgogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXQuaD4KIAotI2lmIEdUS19DSEVD
S19WRVJTSU9OKDIsIDE0LCAwKQotCiBzdGF0aWMgY29uc3QgZ3Nob3J0IGRlZmF1bHRUaW1lb3V0
ID0gMTA7CiBndWludCB3YWl0VGltZXI7CiBnYm9vbGVhbiBzaG91bGRXYWl0OwpAQCAtMjQyLDEy
ICsyNDAsMyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAKICAgICByZXR1cm4g
Z190ZXN0X3J1biAoKTsKIH0KLQotI2Vsc2UKLWludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJn
dikKLXsKLSAgICBnX2NyaXRpY2FsKCJZb3Ugd2lsbCBuZWVkIGd0ay0yLjE0LjAgdG8gcnVuIHRo
ZSB1bml0IHRlc3RzLiBEb2luZyBub3RoaW5nIG5vdy4iKTsKLSAgICByZXR1cm4gMDsKLX0KLQot
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay90ZXN0cy90ZXN0d2ViZnJhbWUu
YyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3R3ZWJmcmFtZS5jCmluZGV4IGE1MDZkMGIu
LjUzMWZhZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3R3ZWJmcmFt
ZS5jCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3R3ZWJmcmFtZS5jCkBAIC0yNiw4
ICsyNiw2IEBACiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXQu
aD4KIAotI2lmIEdUS19DSEVDS19WRVJTSU9OKDIsIDE0LCAwKQotCiBzdGF0aWMgaW50IG51bWJl
ck9mRnJhbWVzQ3JlYXRlZCA9IDA7CiAKIHN0YXRpYyB2b2lkIGNyZWF0ZUZyYW1lU2lnbmFsVGVz
dEZyYW1lQ3JlYXRlZENhbGxiYWNrKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdFdlYkZy
YW1lKiBmcmFtZSwgZ3BvaW50ZXIgZGF0YSkKQEAgLTIyMCwxMiArMjE4LDMgQEAgaW50IG1haW4o
aW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgIGdfdGVzdF9hZGRfZnVuYygiL3dlYmtpdC93ZWJ2
aWV3L3Jlc3BvbnNlIiwgdGVzdF93ZWJraXRfd2ViX2ZyYW1lX3Jlc3BvbnNlKTsKICAgICByZXR1
cm4gZ190ZXN0X3J1biAoKTsKIH0KLQotI2Vsc2UKLWludCBtYWluKGludCBhcmdjLCBjaGFyKiog
YXJndikKLXsKLSAgICBnX2NyaXRpY2FsKCJZb3Ugd2lsbCBuZWVkIGd0ay0yLjE0LjAgdG8gcnVu
IHRoZSB1bml0IHRlc3RzLiBEb2luZyBub3RoaW5nIG5vdy4iKTsKLSAgICByZXR1cm4gMDsKLX0K
LQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay90ZXN0cy90ZXN0d2ViaGlz
dG9yeWl0ZW0uYyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3R3ZWJoaXN0b3J5aXRlbS5j
CmluZGV4IGMxMjgzNmUuLjQwY2VkNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3Rl
c3RzL3Rlc3R3ZWJoaXN0b3J5aXRlbS5jCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rl
c3R3ZWJoaXN0b3J5aXRlbS5jCkBAIC0yMiw4ICsyMiw2IEBACiAjaW5jbHVkZSA8Z3RrL2d0ay5o
PgogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXQuaD4KIAotI2lmIEdUS19DSEVDS19WRVJTSU9OKDIs
IDE0LCAwKQotCiB0eXBlZGVmIHN0cnVjdCB7CiAgICAgV2ViS2l0V2ViSGlzdG9yeUl0ZW0qIGl0
ZW07CiB9IFdlYkhpc3RvcnlJdGVtRml4dHVyZTsKQEAgLTcwLDEyICs2OCwzIEBAIGludCBtYWlu
KGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICAgICAgICAgICAgIHRlc3Rfd2Via2l0X3dlYl9o
aXN0b3J5X2l0ZW1fYWx0ZXJuYXRlX3RpdGxlLCB3ZWJfaGlzdG9yeV9pdGVtX2ZpeHR1cmVfdGVh
cmRvd24pOwogICAgIHJldHVybiBnX3Rlc3RfcnVuICgpOwogfQotCi0jZWxzZQotaW50IG1haW4o
aW50IGFyZ2MsIGNoYXIqKiBhcmd2KQotewotICAgIGdfY3JpdGljYWwoIllvdSB3aWxsIG5lZWQg
Z3RrLTIuMTQuMCB0byBydW4gdGhlIHVuaXQgdGVzdHMuIERvaW5nIG5vdGhpbmcgbm93LiIpOwot
ICAgIHJldHVybiAwOwotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L3Rlc3RzL3Rlc3R3ZWJpbnNwZWN0b3IuYyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3R3
ZWJpbnNwZWN0b3IuYwppbmRleCBmZjA1ZWFmLi44ZGU2OTA0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2d0ay90ZXN0cy90ZXN0d2ViaW5zcGVjdG9yLmMKKysrIGIvU291cmNlL1dlYktpdC9n
dGsvdGVzdHMvdGVzdHdlYmluc3BlY3Rvci5jCkBAIC0yNSw4ICsyNSw2IEBACiAjaW5jbHVkZSA8
Z3RrL2d0ay5oPgogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXQuaD4KIAotI2lmIEdUS19DSEVDS19W
RVJTSU9OKDIsIDE0LCAwKQotCiBHTWFpbkxvb3AgKmxvb3A7CiBHdGtXaWRnZXQgKndpbmRvdzsK
IApAQCAtMTcyLDEyICsxNzAsMyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAK
ICAgICByZXR1cm4gZ190ZXN0X3J1bigpOwogfQotCi0jZWxzZQotaW50IG1haW4oaW50IGFyZ2Ms
IGNoYXIqKiBhcmd2KQotewotICAgIGdfY3JpdGljYWwoIllvdSB3aWxsIG5lZWQgZ3RrLTIuMTQu
MCB0byBydW4gdGhlIHVuaXQgdGVzdHMuIERvaW5nIG5vdGhpbmcgbm93LiIpOwotICAgIHJldHVy
biAwOwotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rl
c3R3ZWJwbHVnaW5kYXRhYmFzZS5jIGIvU291cmNlL1dlYktpdC9ndGsvdGVzdHMvdGVzdHdlYnBs
dWdpbmRhdGFiYXNlLmMKaW5kZXggMjFiNjNlOC4uN2ExZjdlYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9ndGsvdGVzdHMvdGVzdHdlYnBsdWdpbmRhdGFiYXNlLmMKKysrIGIvU291cmNlL1dl
YktpdC9ndGsvdGVzdHMvdGVzdHdlYnBsdWdpbmRhdGFiYXNlLmMKQEAgLTI0LDggKzI0LDYgQEAK
ICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdC5oPgogCi0jaWYg
R1RLX0NIRUNLX1ZFUlNJT04oMiwgMTQsIDApCi0KIC8qIFRoaXMgZnVuY3Rpb24gaXMgbm90IHB1
YmxpYywgc28gd2UgbmVlZCBhbiBleHRlcm4gZGVjbGFyYXRpb24gKi8KIGV4dGVybiB2b2lkIHdl
YmtpdF93ZWJfc2V0dGluZ3NfYWRkX2V4dHJhX3BsdWdpbl9kaXJlY3RvcnkoV2ViS2l0V2ViVmll
dyogdmlldywgY29uc3QgZ2NoYXIqIGRpcmVjdG9yeSk7CiAKQEAgLTc4LDEyICs3NiwzIEBAIGlu
dCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJr
aXQvd2VicGx1Z2luZGF0YWJhc2UvZ2V0cGx1Z2lucyIsIHRlc3Rfd2Via2l0X3dlYl9wbHVnaW5f
ZGF0YWJhc2VfZ2V0X3BsdWdpbnMpOwogICAgIHJldHVybiBnX3Rlc3RfcnVuICgpOwogfQotCi0j
ZWxzZQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQotewotICAgIGdfY3JpdGljYWwo
IllvdSB3aWxsIG5lZWQgYXQgbGVhc3QgZ3RrLTIuMTQuMCB0byBydW4gdGhlIHVuaXQgdGVzdHMu
IERvaW5nIG5vdGhpbmcgbm93LiIpOwotICAgIHJldHVybiAwOwotfQotCi0jZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3R3ZWJyZXNvdXJjZS5jIGIvU291cmNl
L1dlYktpdC9ndGsvdGVzdHMvdGVzdHdlYnJlc291cmNlLmMKaW5kZXggMDBjZGQzZS4uYjkxZWIy
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvdGVzdHMvdGVzdHdlYnJlc291cmNlLmMK
KysrIGIvU291cmNlL1dlYktpdC9ndGsvdGVzdHMvdGVzdHdlYnJlc291cmNlLmMKQEAgLTI0LDgg
KzI0LDYgQEAKICNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0Lmg+
CiAKLSNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigyLCAxNCwgMCkKLQogI2RlZmluZSBJTkRFWF9IVE1M
ICI8aHRtbD48L2h0bWw+IgogI2RlZmluZSBNQUlOX0hUTUwgIjxodG1sPjxoZWFkPjxzY3JpcHQg
bGFuZ3VhZ2U9XCJqYXZhc2NyaXB0XCIgc3JjPVwiL2phdmFzY3JpcHQuanNcIj48L3NjcmlwdD48
L2hlYWQ+PGJvZHk+PGgxPmhhaDwvaDE+PC9odG1sPiIKICNkZWZpbmUgSkFWQVNDUklQVCAiZnVu
Y3Rpb24gYmxhaCAoKSB7IHZhciBhID0gMTsgfSIKQEAgLTMzMSwxMiArMzI5LDMgQEAgaW50IG1h
aW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogCiAgICAgcmV0dXJuIGdfdGVzdF9ydW4gKCk7CiB9
Ci0KLSNlbHNlCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCi17Ci0gICAgZ19jcml0
aWNhbCgiWW91IHdpbGwgbmVlZCBndGstMi4xNC4wIHRvIHJ1biB0aGUgdW5pdCB0ZXN0cy4gRG9p
bmcgbm90aGluZyBub3cuIik7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ndGsvdGVzdHMvdGVzdHdlYnNldHRpbmdzLmMgYi9Tb3VyY2UvV2Vi
S2l0L2d0ay90ZXN0cy90ZXN0d2Vic2V0dGluZ3MuYwppbmRleCAzOTc5NDZjLi41ZWQ1YjE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay90ZXN0cy90ZXN0d2Vic2V0dGluZ3MuYworKysg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay90ZXN0cy90ZXN0d2Vic2V0dGluZ3MuYwpAQCAtMjIsOCArMjIs
NiBAQAogI2luY2x1ZGUgPGd0ay9ndGsuaD4KICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0Lmg+CiAK
LSNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigyLCAxNCwgMCkKLQogLyogUHJpdmF0ZSBBUEkgKi8KIGNo
YXIqIHdlYmtpdFdlYlNldHRpbmdzVXNlckFnZW50Rm9yVVJJKFdlYktpdFdlYlNldHRpbmdzICpz
ZXR0aW5ncywgY29uc3QgY2hhciAqdXJpKTsKIApAQCAtMTUzLDEyICsxNTEsMyBAQCBpbnQgbWFp
bihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L3dl
YnNldHRpbmdzL2NvcHkiLCB0ZXN0X3dlYmtpdF93ZWJfc2V0dGluZ3NfY29weSk7CiAgICAgcmV0
dXJuIGdfdGVzdF9ydW4gKCk7CiB9Ci0KLSNlbHNlCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhciAq
KmFyZ3YpCi17Ci0gICAgZ19jcml0aWNhbCgiWW91IHdpbGwgbmVlZCBndGstMi4xNC4wIHRvIHJ1
biB0aGUgdW5pdCB0ZXN0cy4gRG9pbmcgbm90aGluZyBub3cuIik7Ci0gICAgcmV0dXJuIDA7Ci19
Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvdGVzdHMvdGVzdHdlYnZp
ZXcuYyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3R3ZWJ2aWV3LmMKaW5kZXggNzg2YTEx
Zi4uOTBlNmNjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvdGVzdHMvdGVzdHdlYnZp
ZXcuYworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay90ZXN0cy90ZXN0d2Vidmlldy5jCkBAIC0zMyw4
ICszMyw2IEBACiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXQu
aD4KIAotI2lmIEdUS19DSEVDS19WRVJTSU9OKDIsIDE0LCAwKQotCiBHTWFpbkxvb3AqIGxvb3A7
CiBTb3VwU2Vzc2lvbiAqc2Vzc2lvbjsKIGNoYXIqIGJhc2VfdXJpOwpAQCAtNzI0LDEyICs3MjIs
MyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAKICAgICByZXR1cm4gZ190ZXN0
X3J1biAoKTsKIH0KLQotI2Vsc2UKLWludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKLXsK
LSAgICBnX2NyaXRpY2FsKCJZb3Ugd2lsbCBuZWVkIGd0ay0yLjE0LjAgdG8gcnVuIHRoZSB1bml0
IHRlc3RzLiBEb2luZyBub3RoaW5nIG5vdy4iKTsKLSAgICByZXR1cm4gMDsKLX0KLQotI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay90ZXN0cy90ZXN0d2luZG93LmMgYi9Tb3Vy
Y2UvV2ViS2l0L2d0ay90ZXN0cy90ZXN0d2luZG93LmMKaW5kZXggZmFkODZmYi4uY2U2NmQ0NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvdGVzdHMvdGVzdHdpbmRvdy5jCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL3Rlc3RzL3Rlc3R3aW5kb3cuYwpAQCAtMjEsOCArMjEsNiBAQAogI2lu
Y2x1ZGUgPGd0ay9ndGsuaD4KICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0Lmg+CiAKLSNpZiBHVEtf
Q0hFQ0tfVkVSU0lPTigyLCAxNCwgMCkKLQogc3RhdGljIHZvaWQgbm90aWZ5X2xvYWRfc3RhdHVz
X2NiKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3LCBHUGFyYW1TcGVjKiBwc3BlYywgZ3BvaW50ZXIg
ZGF0YSkKIHsKICAgICBpZiAod2Via2l0X3dlYl92aWV3X2dldF9sb2FkX3N0YXR1cyh3ZWJfdmll
dykgPT0gV0VCS0lUX0xPQURfRklOSVNIRUQpIHsKQEAgLTExOSwxMiArMTE3LDMgQEAgaW50IG1h
aW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgIGdfdGVzdF9hZGRfZnVuYygiL3dlYmtpdC93
aW5kb3cvc2Nyb2xsYmFyX3BvbGljeSIsIHRlc3Rfd2Via2l0X3dpbmRvd19zY3JvbGxiYXJfcG9s
aWN5KTsKICAgICByZXR1cm4gZ190ZXN0X3J1biAoKTsKIH0KLQotI2Vsc2UKLWludCBtYWluKGlu
dCBhcmdjLCBjaGFyKiogYXJndikKLXsKLSAgICBnX2NyaXRpY2FsKCJZb3Ugd2lsbCBuZWVkIGd0
ay0yLjE0LjAgdG8gcnVuIHRoZSB1bml0IHRlc3RzLiBEb2luZyBub3RoaW5nIG5vdy4iKTsKLSAg
ICByZXR1cm4gMDsKLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0d2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
d2Vidmlldy5jcHAKaW5kZXggYzBiNzcxYy4uMDc2NjZiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcApAQCAtOTYzLDExICs5NjMsNyBAQCBzdGF0aWMgdm9p
ZCB3ZWJraXRfd2ViX3ZpZXdfcmVhbGl6ZShHdGtXaWRnZXQqIHdpZGdldCkKICAgICBndGtfd2lk
Z2V0X3NldF9yZWFsaXplZCh3aWRnZXQsIFRSVUUpOwogCiAgICAgR3RrQWxsb2NhdGlvbiBhbGxv
Y2F0aW9uOwotI2lmIEdUS19DSEVDS19WRVJTSU9OKDIsIDE4LCAwKQogICAgIGd0a193aWRnZXRf
Z2V0X2FsbG9jYXRpb24od2lkZ2V0LCAmYWxsb2NhdGlvbik7Ci0jZWxzZQotICAgIGFsbG9jYXRp
b24gPSB3aWRnZXQtPmFsbG9jYXRpb247Ci0jZW5kaWYKIAogICAgIEdka1dpbmRvd0F0dHIgYXR0
cmlidXRlczsKICAgICBhdHRyaWJ1dGVzLndpbmRvd190eXBlID0gR0RLX1dJTkRPV19DSElMRDsK
QEAgLTEwMDYsMTEgKzEwMDIsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfcmVhbGl6
ZShHdGtXaWRnZXQqIHdpZGdldCkKICAgICBnZGtfd2luZG93X3NldF91c2VyX2RhdGEod2luZG93
LCB3aWRnZXQpOwogCiAjaWZkZWYgR1RLX0FQSV9WRVJTSU9OXzIKLSNpZiBHVEtfQ0hFQ0tfVkVS
U0lPTigyLCAyMCwgMCkKICAgICBndGtfd2lkZ2V0X3N0eWxlX2F0dGFjaCh3aWRnZXQpOwotI2Vs
c2UKLSAgICB3aWRnZXQtPnN0eWxlID0gZ3RrX3N0eWxlX2F0dGFjaChndGtfd2lkZ2V0X2dldF9z
dHlsZSh3aWRnZXQpLCB3aW5kb3cpOwotI2VuZGlmCiAgICAgZ3RrX3N0eWxlX3NldF9iYWNrZ3Jv
dW5kKGd0a193aWRnZXRfZ2V0X3N0eWxlKHdpZGdldCksIHdpbmRvdywgR1RLX1NUQVRFX05PUk1B
TCk7CiAjZWxzZQogICAgIGd0a19zdHlsZV9jb250ZXh0X3NldF9iYWNrZ3JvdW5kKGd0a193aWRn
ZXRfZ2V0X3N0eWxlX2NvbnRleHQod2lkZ2V0KSwgd2luZG93KTsKQEAgLTE1ODcsNyArMTU3OSw2
IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfZHJhZ19kcm9wKEd0a1dpZGdldCog
d2lkZ2V0LCBHZGtEcmFnQ29udGV4dCogY29uCiB9CiAjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQ
UE9SVCkKIAotI2lmIEdUS19DSEVDS19WRVJTSU9OKDIsIDEyLCAwKQogc3RhdGljIGdib29sZWFu
IHdlYmtpdF93ZWJfdmlld19xdWVyeV90b29sdGlwKEd0a1dpZGdldCAqd2lkZ2V0LCBnaW50IHgs
IGdpbnQgeSwgZ2Jvb2xlYW4ga2V5Ym9hcmRfbW9kZSwgR3RrVG9vbHRpcCAqdG9vbHRpcCkKIHsK
ICAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSogcHJpdiA9IFdFQktJVF9XRUJfVklFVyh3aWRnZXQp
LT5wcml2OwpAQCAtMTY0NCw3ICsxNjM1LDYgQEAgc3RhdGljIGdib29sZWFuIHdlYmtpdF93ZWJf
dmlld19zaG93X2hlbHAoR3RrV2lkZ2V0KiB3aWRnZXQsIEd0a1dpZGdldEhlbHBUeXBlIGgKIAog
ICAgIHJldHVybiBHVEtfV0lER0VUX0NMQVNTKHdlYmtpdF93ZWJfdmlld19wYXJlbnRfY2xhc3Mp
LT5zaG93X2hlbHAod2lkZ2V0LCBoZWxwX3R5cGUpOwogfQotI2VuZGlmCiAKIHN0YXRpYyB2b2lk
IHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFdlYktpdFdlYlZpZXdDbGFzcyogd2ViVmlld0Ns
YXNzKQogewpAQCAtMzExNywxMCArMzEwNyw4IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmll
d19jbGFzc19pbml0KFdlYktpdFdlYlZpZXdDbGFzcyogd2ViVmlld0NsYXNzKQogICAgIHdpZGdl
dENsYXNzLT5kcmFnX2Ryb3AgPSBOVUxMOwogICAgIHdpZGdldENsYXNzLT5kcmFnX2RhdGFfcmVj
ZWl2ZWQgPSBOVUxMOwogI2VuZGlmCi0jaWYgR1RLX0NIRUNLX1ZFUlNJT04oMiwgMTIsIDApCiAg
ICAgd2lkZ2V0Q2xhc3MtPnF1ZXJ5X3Rvb2x0aXAgPSB3ZWJraXRfd2ViX3ZpZXdfcXVlcnlfdG9v
bHRpcDsKICAgICB3aWRnZXRDbGFzcy0+c2hvd19oZWxwID0gd2Via2l0X3dlYl92aWV3X3Nob3df
aGVscDsKLSNlbmRpZgogICAgIHdpZGdldENsYXNzLT5tYXAgPSB3ZWJraXRXZWJWaWV3TWFwOwog
CiAgICAgR3RrQ29udGFpbmVyQ2xhc3MqIGNvbnRhaW5lckNsYXNzID0gR1RLX0NPTlRBSU5FUl9D
TEFTUyh3ZWJWaWV3Q2xhc3MpOwpAQCAtNTI5MSw3ICs1Mjc5LDYgQEAgc3RhdGljIEludFBvaW50
IGRvY3VtZW50UG9pbnRGb3JXaW5kb3dQb2ludChGcmFtZSogZnJhbWUsIGNvbnN0IEludFBvaW50
JiB3aW5kb3cKIAogdm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0X3Rvb2x0aXBfdGV4dChXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3LCBjb25zdCBjaGFyKiB0b29sdGlwKQogewotI2lmIEdUS19DSEVDS19W
RVJTSU9OKDIsIDEyLCAwKQogICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiBwcml2ID0gd2ViVmll
dy0+cHJpdjsKICAgICBpZiAodG9vbHRpcCAmJiAqdG9vbHRpcCAhPSAnXDAnKSB7CiAgICAgICAg
IHByaXYtPnRvb2x0aXBUZXh0ID0gdG9vbHRpcDsKQEAgLTUzMDIsMTEgKzUyODksNiBAQCB2b2lk
IHdlYmtpdF93ZWJfdmlld19zZXRfdG9vbHRpcF90ZXh0KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcs
IGNvbnN0IGNoYXIqIHRvb2x0aQogICAgIH0KIAogICAgIGd0a193aWRnZXRfdHJpZ2dlcl90b29s
dGlwX3F1ZXJ5KEdUS19XSURHRVQod2ViVmlldykpOwotI2Vsc2UKLSAgICAvLyBUT0RPOiBTdXBw
b3J0IG9sZGVyIEdUSysgdmVyc2lvbnMKLSAgICAvLyBTZWUgaHR0cDovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTU3OTMKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotI2VuZGlmCiB9
CiAKIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCmluZGV4IDZiOWNiOTUuLmEyZTkzNjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwxNSBAQAogMjAxMy0wNS0xMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKKyAgICAgICAgW0dUS10gUmVtb3ZlIHVubmVjZXNzYXJ5IEdUS19DSEVDS19W
RVJTSU9OICNpZmRlZnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTExNTkxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwOgorICAgICAg
ICAod2Via2l0V2ViVmlld0Jhc2VSZWFsaXplKToKKworMjAxMy0wNS0xMCAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKICAgICAgICAgW0dUS10gUmVtb3ZlIHVu
bmVjZXNzYXJ5IEdMSUJfQ0hFQ0tfVkVSU0lPTiAjaWZkZWZzCiAgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTU5MDQKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCmluZGV4IDk0
YzM0MjUuLmRjZjMzNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKQEAgLTI0NSw5ICsyNDUsNyBAQCBzdGF0aWMg
dm9pZCB3ZWJraXRXZWJWaWV3QmFzZVJlYWxpemUoR3RrV2lkZ2V0KiB3aWRnZXQpCiAgICAgICAg
IHwgR0RLX0JVVFRPTl9QUkVTU19NQVNLCiAgICAgICAgIHwgR0RLX0JVVFRPTl9SRUxFQVNFX01B
U0sKICAgICAgICAgfCBHREtfU0NST0xMX01BU0sKLSNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAz
LCAxOCkKICAgICAgICAgfCBHREtfU01PT1RIX1NDUk9MTF9NQVNLCi0jZW5kaWYKICAgICAgICAg
fCBHREtfUE9JTlRFUl9NT1RJT05fTUFTSwogICAgICAgICB8IEdES19LRVlfUFJFU1NfTUFTSwog
ICAgICAgICB8IEdES19LRVlfUkVMRUFTRV9NQVNLCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNjE1MTNlNC4uYmRlNmFkZCAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI2IEBACiAy
MDEzLTA1LTEwICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAor
ICAgICAgICBbR1RLXSBSZW1vdmUgdW5uZWNlc3NhcnkgR1RLX0NIRUNLX1ZFUlNJT04gI2lmZGVm
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE1OTE0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHdGtM
YXVuY2hlci9tYWluLmM6CisgICAgICAgIChjcmVhdGVUb29sYmFyKToKKyAgICAgICAgKiBNaW5p
QnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jOgorICAgICAgICAoX0Jyb3dzZXJXaW5kb3cpOgor
ICAgICAgICAoYnJvd3NlcldpbmRvd1NldFN0YXR1c1RleHQpOgorICAgICAgICAoZnVsbFNjcmVl
bk1lc3NhZ2VUaW1lb3V0Q2FsbGJhY2spOgorICAgICAgICAod2ViVmlld0VudGVyRnVsbFNjcmVl
bik6CisgICAgICAgICh3ZWJWaWV3TGVhdmVGdWxsU2NyZWVuKToKKyAgICAgICAgKGJyb3dzZXJX
aW5kb3dGaW5hbGl6ZSk6CisgICAgICAgIChicm93c2VyV2luZG93Q29uc3RydWN0ZWQpOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvZ3RrL0V2ZW50U2VuZGVyUHJveHlHdGsuY3BwOgorICAg
ICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5Ojptb3VzZVNjcm9sbEJ5KToKKyAgICAgICAgKFdU
Ujo6RXZlbnRTZW5kZXJQcm94eTo6Y29udGludW91c01vdXNlU2Nyb2xsQnkpOgorCisyMDEzLTA1
LTEwICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKwogICAgICAg
ICBbR1RLXSBSZW1vdmUgdW5uZWNlc3NhcnkgR0xJQl9DSEVDS19WRVJTSU9OICNpZmRlZnMKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNTkwNAogCmRp
ZmYgLS1naXQgYS9Ub29scy9HdGtMYXVuY2hlci9tYWluLmMgYi9Ub29scy9HdGtMYXVuY2hlci9t
YWluLmMKaW5kZXggYjZjNWJhZS4uY2VmN2NkMyAxMDA2NDQKLS0tIGEvVG9vbHMvR3RrTGF1bmNo
ZXIvbWFpbi5jCisrKyBiL1Rvb2xzL0d0a0xhdW5jaGVyL21haW4uYwpAQCAtMjY0LDExICsyNjQs
NyBAQCBzdGF0aWMgR3RrV2lkZ2V0KiBjcmVhdGVUb29sYmFyKEd0a1dpZGdldCogd2luZG93LCBH
dGtXaWRnZXQqIHVyaUVudHJ5LCBXZWJLaXRXZQogewogICAgIEd0a1dpZGdldCAqdG9vbGJhciA9
IGd0a190b29sYmFyX25ldygpOwogCi0jaWYgR1RLX0NIRUNLX1ZFUlNJT04oMiwgMTUsIDApCiAg
ICAgZ3RrX29yaWVudGFibGVfc2V0X29yaWVudGF0aW9uKEdUS19PUklFTlRBQkxFKHRvb2xiYXIp
LCBHVEtfT1JJRU5UQVRJT05fSE9SSVpPTlRBTCk7Ci0jZWxzZQotICAgIGd0a190b29sYmFyX3Nl
dF9vcmllbnRhdGlvbihHVEtfVE9PTEJBUih0b29sYmFyKSwgR1RLX09SSUVOVEFUSU9OX0hPUkla
T05UQUwpOwotI2VuZGlmCiAgICAgZ3RrX3Rvb2xiYXJfc2V0X3N0eWxlKEdUS19UT09MQkFSKHRv
b2xiYXIpLCBHVEtfVE9PTEJBUl9CT1RIX0hPUklaKTsKIAogICAgIEd0a1Rvb2xJdGVtICppdGVt
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYyBiL1Rv
b2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmMKaW5kZXggZWJjZTUwNS4uZTBjZWU2
MiAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYworKysg
Yi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jCkBAIC01MiwxMCArNTIsOCBA
QCBzdHJ1Y3QgX0Jyb3dzZXJXaW5kb3cgewogICAgIFdlYktpdFdlYlZpZXcgKndlYlZpZXc7CiAg
ICAgR3RrV2lkZ2V0ICpkb3dubG9hZHNCYXI7CiAgICAgR2RrUGl4YnVmICpmYXZpY29uOwotI2lm
IEdUS19DSEVDS19WRVJTSU9OKDMsIDIsIDApCiAgICAgR3RrV2lkZ2V0ICpmdWxsU2NyZWVuTWVz
c2FnZUxhYmVsOwogICAgIGd1aW50IGZ1bGxTY3JlZW5NZXNzYWdlTGFiZWxJZDsKLSNlbmRpZgog
fTsKIAogc3RydWN0IF9Ccm93c2VyV2luZG93Q2xhc3MgewpAQCAtOTEsMTAgKzg5LDggQEAgc3Rh
dGljIGNoYXIgKmdldEV4dGVybmFsVVJJKGNvbnN0IGNoYXIgKnVyaSkKIAogc3RhdGljIHZvaWQg
YnJvd3NlcldpbmRvd1NldFN0YXR1c1RleHQoQnJvd3NlcldpbmRvdyAqd2luZG93LCBjb25zdCBj
aGFyICp0ZXh0KQogewotI2lmIEdUS19DSEVDS19WRVJTSU9OKDMsIDIsIDApCiAgICAgZ3RrX2xh
YmVsX3NldF90ZXh0KEdUS19MQUJFTCh3aW5kb3ctPnN0YXR1c0xhYmVsKSwgdGV4dCk7CiAgICAg
Z3RrX3dpZGdldF9zZXRfdmlzaWJsZSh3aW5kb3ctPnN0YXR1c0xhYmVsLCAhIXRleHQpOwotI2Vu
ZGlmCiB9CiAKIHN0YXRpYyB2b2lkIHJlc2V0U3RhdHVzVGV4dChHdGtXaWRnZXQgKndpZGdldCwg
QnJvd3NlcldpbmRvdyAqd2luZG93KQpAQCAtMjg2LDE4ICsyODIsMTUgQEAgc3RhdGljIHZvaWQg
d2ViVmlld1JlYWR5VG9TaG93KFdlYktpdFdlYlZpZXcgKndlYlZpZXcsIEJyb3dzZXJXaW5kb3cg
KndpbmRvdykKICAgICBndGtfd2lkZ2V0X3Nob3coR1RLX1dJREdFVCh3aW5kb3cpKTsKIH0KIAot
I2lmIEdUS19DSEVDS19WRVJTSU9OKDMsIDIsIDApCiBzdGF0aWMgZ2Jvb2xlYW4gZnVsbFNjcmVl
bk1lc3NhZ2VUaW1lb3V0Q2FsbGJhY2soQnJvd3NlcldpbmRvdyAqd2luZG93KQogewogICAgIGd0
a193aWRnZXRfaGlkZSh3aW5kb3ctPmZ1bGxTY3JlZW5NZXNzYWdlTGFiZWwpOwogICAgIHdpbmRv
dy0+ZnVsbFNjcmVlbk1lc3NhZ2VMYWJlbElkID0gMDsKICAgICByZXR1cm4gRkFMU0U7CiB9Ci0j
ZW5kaWYKIAogc3RhdGljIGdib29sZWFuIHdlYlZpZXdFbnRlckZ1bGxTY3JlZW4oV2ViS2l0V2Vi
VmlldyAqd2ViVmlldywgQnJvd3NlcldpbmRvdyAqd2luZG93KQogewotI2lmIEdUS19DSEVDS19W
RVJTSU9OKDMsIDIsIDApCiAgICAgZ2NoYXIgKnRpdGxlT3JVUkkgPSBnX3N0cmR1cCh3ZWJraXRf
d2ViX3ZpZXdfZ2V0X3RpdGxlKHdpbmRvdy0+d2ViVmlldykpOwogICAgIGlmICghdGl0bGVPclVS
SSkKICAgICAgICAgdGl0bGVPclVSSSA9IGdldEV4dGVybmFsVVJJKHdlYmtpdF93ZWJfdmlld19n
ZXRfdXJpKHdpbmRvdy0+d2ViVmlldykpOwpAQCAtMzA5LDggKzMwMiw2IEBAIHN0YXRpYyBnYm9v
bGVhbiB3ZWJWaWV3RW50ZXJGdWxsU2NyZWVuKFdlYktpdFdlYlZpZXcgKndlYlZpZXcsIEJyb3dz
ZXJXaW5kb3cgKndpCiAgICAgZ3RrX3dpZGdldF9zaG93KHdpbmRvdy0+ZnVsbFNjcmVlbk1lc3Nh
Z2VMYWJlbCk7CiAKICAgICB3aW5kb3ctPmZ1bGxTY3JlZW5NZXNzYWdlTGFiZWxJZCA9IGdfdGlt
ZW91dF9hZGRfc2Vjb25kcygyLCAoR1NvdXJjZUZ1bmMpZnVsbFNjcmVlbk1lc3NhZ2VUaW1lb3V0
Q2FsbGJhY2ssIHdpbmRvdyk7Ci0jZW5kaWYKLQogICAgIGd0a193aWRnZXRfaGlkZSh3aW5kb3ct
PnRvb2xiYXIpOwogCiAgICAgcmV0dXJuIEZBTFNFOwpAQCAtMzE4LDE0ICszMDksMTEgQEAgc3Rh
dGljIGdib29sZWFuIHdlYlZpZXdFbnRlckZ1bGxTY3JlZW4oV2ViS2l0V2ViVmlldyAqd2ViVmll
dywgQnJvd3NlcldpbmRvdyAqd2kKIAogc3RhdGljIGdib29sZWFuIHdlYlZpZXdMZWF2ZUZ1bGxT
Y3JlZW4oV2ViS2l0V2ViVmlldyAqd2ViVmlldywgQnJvd3NlcldpbmRvdyAqd2luZG93KQogewot
I2lmIEdUS19DSEVDS19WRVJTSU9OKDMsIDIsIDApCiAgICAgaWYgKHdpbmRvdy0+ZnVsbFNjcmVl
bk1lc3NhZ2VMYWJlbElkKSB7CiAgICAgICAgIGdfc291cmNlX3JlbW92ZSh3aW5kb3ctPmZ1bGxT
Y3JlZW5NZXNzYWdlTGFiZWxJZCk7CiAgICAgICAgIHdpbmRvdy0+ZnVsbFNjcmVlbk1lc3NhZ2VM
YWJlbElkID0gMDsKICAgICB9CiAgICAgZ3RrX3dpZGdldF9oaWRlKHdpbmRvdy0+ZnVsbFNjcmVl
bk1lc3NhZ2VMYWJlbCk7Ci0jZW5kaWYKLQogICAgIGd0a193aWRnZXRfc2hvdyh3aW5kb3ctPnRv
b2xiYXIpOwogCiAgICAgcmV0dXJuIEZBTFNFOwpAQCAtNDY2LDEwICs0NTQsOCBAQCBzdGF0aWMg
dm9pZCBicm93c2VyV2luZG93RmluYWxpemUoR09iamVjdCAqZ09iamVjdCkKICAgICAgICAgd2lu
ZG93LT5mYXZpY29uID0gTlVMTDsKICAgICB9CiAKLSNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAy
LCAwKQogICAgIGlmICh3aW5kb3ctPmZ1bGxTY3JlZW5NZXNzYWdlTGFiZWxJZCkKICAgICAgICAg
Z19zb3VyY2VfcmVtb3ZlKHdpbmRvdy0+ZnVsbFNjcmVlbk1lc3NhZ2VMYWJlbElkKTsKLSNlbmRp
ZgogCiAgICAgR19PQkpFQ1RfQ0xBU1MoYnJvd3Nlcl93aW5kb3dfcGFyZW50X2NsYXNzKS0+Zmlu
YWxpemUoZ09iamVjdCk7CiAKQEAgLTU5Niw3ICs1ODIsNiBAQCBzdGF0aWMgdm9pZCBicm93c2Vy
V2luZG93Q29uc3RydWN0ZWQoR09iamVjdCAqZ09iamVjdCkKICAgICBXZWJLaXRCYWNrRm9yd2Fy
ZExpc3QgKmJhY2tGb3J3YWRsaXN0ID0gd2Via2l0X3dlYl92aWV3X2dldF9iYWNrX2ZvcndhcmRf
bGlzdCh3aW5kb3ctPndlYlZpZXcpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3QoYmFja0ZvcndhZGxp
c3QsICJjaGFuZ2VkIiwgR19DQUxMQkFDSyhiYWNrRm9yd2FkbGlzdENoYW5nZWQpLCB3aW5kb3cp
OwogCi0jaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMiwgMCkKICAgICBHdGtXaWRnZXQgKm92ZXJs
YXkgPSBndGtfb3ZlcmxheV9uZXcoKTsKICAgICBndGtfYm94X3BhY2tfc3RhcnQoR1RLX0JPWCh3
aW5kb3ctPm1haW5Cb3gpLCBvdmVybGF5LCBUUlVFLCBUUlVFLCAwKTsKICAgICBndGtfd2lkZ2V0
X3Nob3cob3ZlcmxheSk7CkBAIC02MTcsOSArNjAyLDYgQEAgc3RhdGljIHZvaWQgYnJvd3Nlcldp
bmRvd0NvbnN0cnVjdGVkKEdPYmplY3QgKmdPYmplY3QpCiAgICAgZ3RrX3dpZGdldF9zZXRfdmFs
aWduKHdpbmRvdy0+ZnVsbFNjcmVlbk1lc3NhZ2VMYWJlbCwgR1RLX0FMSUdOX0NFTlRFUik7CiAg
ICAgZ3RrX3dpZGdldF9zZXRfbm9fc2hvd19hbGwod2luZG93LT5mdWxsU2NyZWVuTWVzc2FnZUxh
YmVsLCBUUlVFKTsKICAgICBndGtfb3ZlcmxheV9hZGRfb3ZlcmxheShHVEtfT1ZFUkxBWShvdmVy
bGF5KSwgd2luZG93LT5mdWxsU2NyZWVuTWVzc2FnZUxhYmVsKTsKLSNlbHNlCi0gICAgZ3RrX2Jv
eF9wYWNrX3N0YXJ0KEdUS19CT1god2luZG93LT5tYWluQm94KSwgR1RLX1dJREdFVCh3aW5kb3ct
PndlYlZpZXcpLCBUUlVFLCBUUlVFLCAwKTsKLSNlbmRpZgogICAgIGd0a193aWRnZXRfc2hvdyhH
VEtfV0lER0VUKHdpbmRvdy0+d2ViVmlldykpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL2d0ay9FdmVudFNlbmRlclByb3h5R3RrLmNwcCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvZ3RrL0V2ZW50U2VuZGVyUHJveHlHdGsuY3BwCmluZGV4IGNkYmFlYzUuLjNkY2Iw
M2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL0V2ZW50U2VuZGVyUHJv
eHlHdGsuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL0V2ZW50U2VuZGVyUHJv
eHlHdGsuY3BwCkBAIC0zODcsNyArMzg3LDYgQEAgdm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3Vz
ZVNjcm9sbEJ5KGludCBob3Jpem9udGFsLCBpbnQgdmVydGljYWwpCiAgICAgZ2RrX2V2ZW50X3Nl
dF9kZXZpY2UoZXZlbnQsIGdka19kZXZpY2VfbWFuYWdlcl9nZXRfY2xpZW50X3BvaW50ZXIoZ2Rr
X2Rpc3BsYXlfZ2V0X2RldmljZV9tYW5hZ2VyKGdka193aW5kb3dfZ2V0X2Rpc3BsYXkoZXZlbnQt
PnNjcm9sbC53aW5kb3cpKSkpOwogCiAgICAgLy8gRm9yIG1vcmUgdGhhbiBvbmUgdGljayBpbiBh
IHNjcm9sbCwgd2UgbmVlZCBzbW9vdGggc2Nyb2xsIGV2ZW50Ci0jaWYgR1RLX0NIRUNLX1ZFUlNJ
T04oMywgMywgMTgpCiAgICAgaWYgKChob3Jpem9udGFsICYmIHZlcnRpY2FsKSB8fCBob3Jpem9u
dGFsID4gMSB8fCBob3Jpem9udGFsIDwgLTEgfHwgdmVydGljYWwgPiAxIHx8IHZlcnRpY2FsIDwg
LTEpIHsKICAgICAgICAgZXZlbnQtPnNjcm9sbC5kaXJlY3Rpb24gPSBHREtfU0NST0xMX1NNT09U
SDsKICAgICAgICAgZXZlbnQtPnNjcm9sbC5kZWx0YV94ID0gLWhvcml6b250YWw7CkBAIC0zOTYs
NyArMzk1LDYgQEAgdm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZVNjcm9sbEJ5KGludCBob3Jp
em9udGFsLCBpbnQgdmVydGljYWwpCiAgICAgICAgIHNlbmRPclF1ZXVlRXZlbnQoZXZlbnQpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQotI2VuZGlmCiAKICAgICBpZiAoaG9yaXpvbnRhbCA8IDAp
CiAgICAgICAgIGV2ZW50LT5zY3JvbGwuZGlyZWN0aW9uID0gR0RLX1NDUk9MTF9SSUdIVDsKQEAg
LTQxNyw3ICs0MTUsNiBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmNvbnRpbnVvdXNNb3VzZVNj
cm9sbEJ5KGludCBob3Jpem9udGFsLCBpbnQgdmVydGljYWwsIGJvbwogICAgIC8vIEd0aysgZG9l
cyBub3Qgc3VwcG9ydCBwYWdlZCBzY3JvbGwgZXZlbnRzLgogICAgIGdfcmV0dXJuX2lmX2ZhaWwo
IXBhZ2VkKTsKIAotI2lmIEdUS19DSEVDS19WRVJTSU9OKDMsIDMsIDE4KQogICAgIEdka0V2ZW50
KiBldmVudCA9IGdka19ldmVudF9uZXcoR0RLX1NDUk9MTCk7CiAgICAgZXZlbnQtPnNjcm9sbC54
ID0gbV9wb3NpdGlvbi54OwogICAgIGV2ZW50LT5zY3JvbGwueSA9IG1fcG9zaXRpb24ueTsKQEAg
LTQzMSw3ICs0MjgsNiBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmNvbnRpbnVvdXNNb3VzZVNj
cm9sbEJ5KGludCBob3Jpem9udGFsLCBpbnQgdmVydGljYWwsIGJvbwogICAgIGV2ZW50LT5zY3Jv
bGwuZGVsdGFfeSA9IC12ZXJ0aWNhbCAvIHBpeGVsc1BlclNjcm9sbFRpY2s7CiAKICAgICBzZW5k
T3JRdWV1ZUV2ZW50KGV2ZW50KTsKLSNlbmRpZgogfQogCiB2b2lkIEV2ZW50U2VuZGVyUHJveHk6
OmxlYXBGb3J3YXJkKGludCBtaWxsaXNlY29uZHMpCg==
</data>
<flag name="review"
          id="222699"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>