<?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>139370</bug_id>
          
          <creation_ts>2014-12-07 10:28:52 -0800</creation_ts>
          <short_desc>[GStreamer] Major cleanups of AudioDestination implementation</short_desc>
          <delta_ts>2014-12-08 01:33:55 -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>Media</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>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sebastian Dröge (slomo)">slomo</reporter>
          <assigned_to name="Sebastian Dröge (slomo)">slomo</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1053180</commentid>
    <comment_count>0</comment_count>
    <who name="Sebastian Dröge (slomo)">slomo</who>
    <bug_when>2014-12-07 10:28:52 -0800</bug_when>
    <thetext>Patch coming in a second.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053181</commentid>
    <comment_count>1</comment_count>
      <attachid>242753</attachid>
    <who name="Sebastian Dröge (slomo)">slomo</who>
    <bug_when>2014-12-07 10:30:18 -0800</bug_when>
    <thetext>Created attachment 242753
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053182</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-07 10:32:38 -0800</bug_when>
    <thetext>Attachment 242753 did not pass style-queue:


ERROR: Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:83:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 1 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053185</commentid>
    <comment_count>3</comment_count>
    <who name="Sebastian Dröge (slomo)">slomo</who>
    <bug_when>2014-12-07 10:33:55 -0800</bug_when>
    <thetext>This style error was there before, what do you suggest for fixing this? It&apos;s not clear to me what the style guide recommends for cases like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053187</commentid>
    <comment_count>4</comment_count>
      <attachid>242756</attachid>
    <who name="Sebastian Dröge (slomo)">slomo</who>
    <bug_when>2014-12-07 10:39:24 -0800</bug_when>
    <thetext>Created attachment 242756
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053210</commentid>
    <comment_count>5</comment_count>
      <attachid>242763</attachid>
    <who name="Sebastian Dröge (slomo)">slomo</who>
    <bug_when>2014-12-07 11:52:59 -0800</bug_when>
    <thetext>Created attachment 242763
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053225</commentid>
    <comment_count>6</comment_count>
      <attachid>242767</attachid>
    <who name="Sebastian Dröge (slomo)">slomo</who>
    <bug_when>2014-12-07 13:17:29 -0800</bug_when>
    <thetext>Created attachment 242767
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053294</commentid>
    <comment_count>7</comment_count>
      <attachid>242763</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-12-08 00:31:59 -0800</bug_when>
    <thetext>Comment on attachment 242763
Patch

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

&gt; Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:66
&gt; +    guint64 numSamples;

We usually try to avoid abbreviations in variable names. I don&apos;t have many suggestions, I&apos;m bad at naming stuff :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053296</commentid>
    <comment_count>8</comment_count>
    <who name="Sebastian Dröge (slomo)">slomo</who>
    <bug_when>2014-12-08 00:50:49 -0800</bug_when>
    <thetext>I could call it numberOfSamples if you prefer that :) Should I change it or is it ok like that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053297</commentid>
    <comment_count>9</comment_count>
      <attachid>242789</attachid>
    <who name="Sebastian Dröge (slomo)">slomo</who>
    <bug_when>2014-12-08 00:54:42 -0800</bug_when>
    <thetext>Created attachment 242789
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053320</commentid>
    <comment_count>10</comment_count>
      <attachid>242789</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-08 01:33:52 -0800</bug_when>
    <thetext>Comment on attachment 242789
Patch

Clearing flags on attachment: 242789

Committed r176943: &lt;http://trac.webkit.org/changeset/176943&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053321</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-08 01:33:55 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242753</attachid>
            <date>2014-12-07 10:30:18 -0800</date>
            <delta_ts>2014-12-07 10:39:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139370-20141207193141.patch</filename>
            <type>text/plain</type>
            <size>16098</size>
            <attacher name="Sebastian Dröge (slomo)">slomo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2OTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODMzOWQ3Y2ViOTVjMDRh
ZmMwNTVhMzFkNDY0ZjA3NTFjOGM2ZTk0MC4uNTQ1ODdkNTNiZGFlMTQyMjZmMmU2ODczZjdkMzgy
OWYyMTc4MzVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE0LTEyLTA3ICBTZWJh
c3RpYW4gRHLDtmdlICA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KKworICAgICAgICBbR1N0
cmVhbWVyXSBNYWpvciBjbGVhbnVwIG9mIEF1ZGlvRGVzdGluYXRpb24gaW1wbGVtZW50YXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTM3MAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZv
cm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6QXVkaW9EZXN0aW5hdGlvbkdT
dHJlYW1lcik6CisgICAgICAgIEFkZCBhbiBhdWRpb3Jlc2FtcGxlIGVsZW1lbnQgYmVmb3JlIHRo
ZSBhdWRpbyBzaW5rLiBUaGUgYXVkaW8gc2luaworICAgICAgICBtaWdodCBub3QgYmUgYWJsZSB0
byBoYW5kbGUgb3VyIHNhbXBsaW5nIHJhdGUuCisKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVz
dGluYXRpb25HU3RyZWFtZXI6OkF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6fkF1ZGlvRGVzdGluYXRpb25HU3Ry
ZWFtZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6c3Rv
cCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpmaW5pc2hC
dWlsZGluZ1BpcGVsaW5lQWZ0ZXJXYXZQYXJzZXJQYWRSZWFkeSk6IERlbGV0ZWQuCisgICAgICAg
IERvbid0IHVzZSBhIHdhdnBhcnNlIGVsZW1lbnQgYnV0IGRpcmVjdGx5IGxpbmsgdGhlIHJhdyBh
dWRpbyBmcm9tCisgICAgICAgIHRoZSBzb3VyY2UgdG8gdGhlIGF1ZGlvIHNpbmsuCisKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI6OnN0YXJ0KToKKyAgICAgICAg
Q2F0Y2ggZXJyb3JzIHdoZW4gZ29pbmcgdG8gUExBWUlORyBlYXJseSwgd2UgbWlnaHQgbm90IGdl
dCBhbiBlcnJvcgorICAgICAgICBtZXNzYWdlLgorCisgICAgICAgICogcGxhdGZvcm0vYXVkaW8v
Z3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwOgorICAg
ICAgICAoZ2V0R1N0cmVhbWVyTW9ub0F1ZGlvQ2Fwcyk6CisgICAgICAgICh3ZWJLaXRXZWJBdWRp
b1NyY0NvbnN0cnVjdGVkKToKKyAgICAgICAgKHdlYktpdFdlYkF1ZGlvU3JjQ2hhbmdlU3RhdGUp
OgorICAgICAgICBEb24ndCB1c2UgYSBXQVYgZW5jb2RlciBidXQgZGlyZWN0bHkgb3V0cHV0IHJh
dyBhdWRpby4gQWxzbyBkb24ndAorICAgICAgICBpbmNsdWRlIGEgdW5uZWVkZWQgYXVkaW9jb252
ZXJ0IGVsZW1lbnQgYmVmb3JlIHRoZSBpbnRlcmxlYXZlLgorCisgICAgICAgICh3ZWJLaXRXZWJB
dWRpb1NyY0xvb3ApOgorICAgICAgICBBZGQgdGltZXN0YW1wcyBhbmQgZHVyYXRpb25zIHRvIHRo
ZSBvdXRwdXQgYnVmZmVycywgbWFwIHRoZW0gaW4KKyAgICAgICAgUkVBRFdSSVRFIG1vZGUgYW5k
IGFjdHVhbGx5IGtlZXAgdGhlbSBtYXBwZWQgdW50aWwgd2UncmUgc3VyZQorICAgICAgICBub3Ro
aW5nIGlzIGFjdHVhbGx5IHdyaXRpbmcgaW50byB0aGVtLgorCisgICAgICAgICh3ZWJLaXRXZWJB
dWRpb1NyY0xvb3ApOgorICAgICAgICBQYXVzZSB0aGUgdGFzayBvbiBlcnJvcnMgaW5zdGVhZCBv
ZiBjb250aW51b3VzbHkgY2FsbGluZyBpdCBhZ2FpbgorICAgICAgICBpbW1lZGlhdGVseS4KKwog
MjAxNC0xMi0wNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW0dUS10gTWlzc2luZyBBUEkgZGV0ZWN0ZWQgaW4gR09iamVjdCBET00gYmluZGlu
Z3MgYWZ0ZXIgcjE3NjYzMApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3Bw
CmluZGV4IDI1ZGRjYjlmYTA1NzMzM2ViZDQ2NWVhZGM0NmQ0ZjMwOGNkYmI2ZDcuLjkxMjVhMTRi
NDE4MmM0MDA5NDcyNDVkZjdlY2Y4OTIwYWVlMmNlOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lci5jcHAKQEAgLTg3LDM4ICs4NywxMCBAQCBBdWRpb0Rlc3RpbmF0aW9u
R1N0cmVhbWVyOjpBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyKEF1ZGlvSU9DYWxsYmFjayYgY2Fs
bGJhY2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInByb3ZpZGVyIiwgJm1fY2FsbGJhY2ssCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImZyYW1lcyIsIGZyYW1lc1RvUHVsbCwgTlVMTCkpOwogCi0gICAgR3N0
RWxlbWVudCogd2F2UGFyc2VyID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJ3YXZwYXJzZSIs
IDApOwotCi0gICAgbV93YXZQYXJzZXJBdmFpbGFibGUgPSB3YXZQYXJzZXI7Ci0gICAgQVNTRVJU
X1dJVEhfTUVTU0FHRShtX3dhdlBhcnNlckF2YWlsYWJsZSwgIkZhaWxlZCB0byBjcmVhdGUgR1N0
cmVhbWVyIHdhdnBhcnNlIGVsZW1lbnQiKTsKLSAgICBpZiAoIW1fd2F2UGFyc2VyQXZhaWxhYmxl
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBnc3RfYmluX2FkZF9tYW55KEdTVF9CSU4obV9waXBl
bGluZSksIHdlYmtpdEF1ZGlvU3JjLCB3YXZQYXJzZXIsIE5VTEwpOwotICAgIGdzdF9lbGVtZW50
X2xpbmtfcGFkc19mdWxsKHdlYmtpdEF1ZGlvU3JjLCAic3JjIiwgd2F2UGFyc2VyLCAic2luayIs
IEdTVF9QQURfTElOS19DSEVDS19OT1RISU5HKTsKLQotICAgIEdSZWZQdHI8R3N0UGFkPiBzcmNQ
YWQgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQod2F2UGFyc2VyLCAic3Jj
IikpOwotICAgIGZpbmlzaEJ1aWxkaW5nUGlwZWxpbmVBZnRlcldhdlBhcnNlclBhZFJlYWR5KHNy
Y1BhZC5nZXQoKSk7Ci19Ci0KLUF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI6On5BdWRpb0Rlc3Rp
bmF0aW9uR1N0cmVhbWVyKCkKLXsKLSAgICBHUmVmUHRyPEdzdEJ1cz4gYnVzID0gYWRvcHRHUmVm
KGdzdF9waXBlbGluZV9nZXRfYnVzKEdTVF9QSVBFTElORShtX3BpcGVsaW5lKSkpOwotICAgIEFT
U0VSVChidXMpOwotICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZnVuYyhidXMu
Z2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8Z3BvaW50ZXI+KG1lc3NhZ2VDYWxsYmFjayksIHRoaXMp
OwotICAgIGdzdF9idXNfcmVtb3ZlX3NpZ25hbF93YXRjaChidXMuZ2V0KCkpOwotCi0gICAgZ3N0
X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGlwZWxpbmUsIEdTVF9TVEFURV9OVUxMKTsKLSAgICBnc3Rf
b2JqZWN0X3VucmVmKG1fcGlwZWxpbmUpOwotfQotCi12b2lkIEF1ZGlvRGVzdGluYXRpb25HU3Ry
ZWFtZXI6OmZpbmlzaEJ1aWxkaW5nUGlwZWxpbmVBZnRlcldhdlBhcnNlclBhZFJlYWR5KEdzdFBh
ZCogcGFkKQotewotICAgIEFTU0VSVChtX3dhdlBhcnNlckF2YWlsYWJsZSk7CisgICAgR1JlZlB0
cjxHc3RQYWQ+IHNyY1BhZCA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZCh3
ZWJraXRBdWRpb1NyYywgInNyYyIpKTsKIAogICAgIEdSZWZQdHI8R3N0RWxlbWVudD4gYXVkaW9T
aW5rID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJhdXRvYXVkaW9zaW5rIiwgMCk7CiAgICAg
bV9hdWRpb1NpbmtBdmFpbGFibGUgPSBhdWRpb1Npbms7Ci0KICAgICBpZiAoIWF1ZGlvU2luaykg
ewogICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgR1N0cmVhbWVyIGF1dG9hdWRp
b3NpbmsgZWxlbWVudCIpOwogICAgICAgICByZXR1cm47CkBAIC0xMzYsMTYgKzEwOCwyNyBAQCB2
b2lkIEF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI6OmZpbmlzaEJ1aWxkaW5nUGlwZWxpbmVBZnRl
cldhdlBhcnNlclBhZFJlYWR5KEdzdAogICAgIH0KIAogICAgIEdzdEVsZW1lbnQqIGF1ZGlvQ29u
dmVydCA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiYXVkaW9jb252ZXJ0IiwgMCk7Ci0gICAg
Z3N0X2Jpbl9hZGRfbWFueShHU1RfQklOKG1fcGlwZWxpbmUpLCBhdWRpb0NvbnZlcnQsIGF1ZGlv
U2luay5nZXQoKSwgTlVMTCk7CisgICAgR3N0RWxlbWVudCogYXVkaW9SZXNhbXBsZSA9IGdzdF9l
bGVtZW50X2ZhY3RvcnlfbWFrZSgiYXVkaW9yZXNhbXBsZSIsIDApOworICAgIGdzdF9iaW5fYWRk
X21hbnkoR1NUX0JJTihtX3BpcGVsaW5lKSwgd2Via2l0QXVkaW9TcmMsIGF1ZGlvQ29udmVydCwg
YXVkaW9SZXNhbXBsZSwgYXVkaW9TaW5rLmdldCgpLCBOVUxMKTsKIAogICAgIC8vIExpbmsgd2F2
cGFyc2UncyBzcmMgcGFkIHRvIGF1ZGlvY29udmVydCBzaW5rIHBhZC4KICAgICBHUmVmUHRyPEdz
dFBhZD4gc2lua1BhZCA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZChhdWRp
b0NvbnZlcnQsICJzaW5rIikpOwotICAgIGdzdF9wYWRfbGlua19mdWxsKHBhZCwgc2lua1BhZC5n
ZXQoKSwgR1NUX1BBRF9MSU5LX0NIRUNLX05PVEhJTkcpOworICAgIGdzdF9wYWRfbGlua19mdWxs
KHNyY1BhZC5nZXQoKSwgc2lua1BhZC5nZXQoKSwgR1NUX1BBRF9MSU5LX0NIRUNLX05PVEhJTkcp
OwogCiAgICAgLy8gTGluayBhdWRpb2NvbnZlcnQgdG8gYXVkaW9zaW5rIGFuZCByb2xsIHN0YXRl
cy4KLSAgICBnc3RfZWxlbWVudF9saW5rX3BhZHNfZnVsbChhdWRpb0NvbnZlcnQsICJzcmMiLCBh
dWRpb1NpbmsuZ2V0KCksICJzaW5rIiwgR1NUX1BBRF9MSU5LX0NIRUNLX05PVEhJTkcpOwotICAg
IGdzdF9lbGVtZW50X3N5bmNfc3RhdGVfd2l0aF9wYXJlbnQoYXVkaW9Db252ZXJ0KTsKLSAgICBn
c3RfZWxlbWVudF9zeW5jX3N0YXRlX3dpdGhfcGFyZW50KGF1ZGlvU2luay5sZWFrUmVmKCkpOwor
ICAgIGdzdF9lbGVtZW50X2xpbmtfcGFkc19mdWxsKGF1ZGlvQ29udmVydCwgInNyYyIsIGF1ZGlv
UmVzYW1wbGUsICJzaW5rIiwgR1NUX1BBRF9MSU5LX0NIRUNLX05PVEhJTkcpOworICAgIGdzdF9l
bGVtZW50X2xpbmtfcGFkc19mdWxsKGF1ZGlvUmVzYW1wbGUsICJzcmMiLCBhdWRpb1NpbmsuZ2V0
KCksICJzaW5rIiwgR1NUX1BBRF9MSU5LX0NIRUNLX05PVEhJTkcpOworfQorCitBdWRpb0Rlc3Rp
bmF0aW9uR1N0cmVhbWVyOjp+QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcigpCit7CisgICAgR1Jl
ZlB0cjxHc3RCdXM+IGJ1cyA9IGFkb3B0R1JlZihnc3RfcGlwZWxpbmVfZ2V0X2J1cyhHU1RfUElQ
RUxJTkUobV9waXBlbGluZSkpKTsKKyAgICBBU1NFUlQoYnVzKTsKKyAgICBnX3NpZ25hbF9oYW5k
bGVyc19kaXNjb25uZWN0X2J5X2Z1bmMoYnVzLmdldCgpLCByZWludGVycHJldF9jYXN0PGdwb2lu
dGVyPihtZXNzYWdlQ2FsbGJhY2spLCB0aGlzKTsKKyAgICBnc3RfYnVzX3JlbW92ZV9zaWduYWxf
d2F0Y2goYnVzLmdldCgpKTsKKworICAgIGdzdF9lbGVtZW50X3NldF9zdGF0ZShtX3BpcGVsaW5l
LCBHU1RfU1RBVEVfTlVMTCk7CisgICAgZ3N0X29iamVjdF91bnJlZihtX3BpcGVsaW5lKTsKIH0K
IAogZ2Jvb2xlYW4gQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RN
ZXNzYWdlKiBtZXNzYWdlKQpAQCAtMTcyLDE4ICsxNTUsMjMgQEAgZ2Jvb2xlYW4gQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogCiB2
b2lkIEF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI6OnN0YXJ0KCkKIHsKLSAgICBBU1NFUlQobV93
YXZQYXJzZXJBdmFpbGFibGUpOwotICAgIGlmICghbV93YXZQYXJzZXJBdmFpbGFibGUpCisgICAg
QVNTRVJUKG1fYXVkaW9TaW5rQXZhaWxhYmxlKTsKKyAgICBpZiAoIW1fYXVkaW9TaW5rQXZhaWxh
YmxlKQogICAgICAgICByZXR1cm47CiAKLSAgICBnc3RfZWxlbWVudF9zZXRfc3RhdGUobV9waXBl
bGluZSwgR1NUX1NUQVRFX1BMQVlJTkcpOworICAgIGlmIChnc3RfZWxlbWVudF9zZXRfc3RhdGUo
bV9waXBlbGluZSwgR1NUX1NUQVRFX1BMQVlJTkcpID09IEdTVF9TVEFURV9DSEFOR0VfRkFJTFVS
RSkgeworICAgICAgICBnX3dhcm5pbmcoIkVycm9yOiBGYWlsZWQgdG8gc2V0IHBpcGVsaW5lIHRv
IHBsYXlpbmciKTsKKyAgICAgICAgbV9pc1BsYXlpbmcgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKwogICAgIG1faXNQbGF5aW5nID0gdHJ1ZTsKIH0KIAogdm9pZCBBdWRpb0Rlc3Rp
bmF0aW9uR1N0cmVhbWVyOjpzdG9wKCkKIHsKLSAgICBBU1NFUlQobV93YXZQYXJzZXJBdmFpbGFi
bGUgJiYgbV9hdWRpb1NpbmtBdmFpbGFibGUpOwotICAgIGlmICghbV93YXZQYXJzZXJBdmFpbGFi
bGUgfHwgIW1fYXVkaW9TaW5rQXZhaWxhYmxlKQorICAgIEFTU0VSVChtX2F1ZGlvU2lua0F2YWls
YWJsZSk7CisgICAgaWYgKCFtX2F1ZGlvU2lua0F2YWlsYWJsZSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGlwZWxpbmUsIEdTVF9TVEFURV9QQVVTRUQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1
ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmgKaW5kZXggOWRjOWE5YmVhZDZk
NDg0M2I4Yzc4MWM3NzhjNDlkNjdkYWI4NjBmNS4uZmEwNjYyMjVmNTJmMDRlMDAyNGMyNDAxNjAw
YWM4NDZhYzI1MzNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Z3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5oCkBA
IC00MSw3ICs0MSw2IEBAIHB1YmxpYzoKICAgICBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3QgeyBy
ZXR1cm4gbV9zYW1wbGVSYXRlOyB9CiAgICAgQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaygpIGNv
bnN0IHsgcmV0dXJuIG1fY2FsbGJhY2s7IH0KIAotICAgIHZvaWQgZmluaXNoQnVpbGRpbmdQaXBl
bGluZUFmdGVyV2F2UGFyc2VyUGFkUmVhZHkoR3N0UGFkKik7CiAgICAgZ2Jvb2xlYW4gaGFuZGxl
TWVzc2FnZShHc3RNZXNzYWdlKik7CiAKIHByaXZhdGU6CkBAIC01MCw3ICs0OSw2IEBAIHByaXZh
dGU6CiAKICAgICBmbG9hdCBtX3NhbXBsZVJhdGU7CiAgICAgYm9vbCBtX2lzUGxheWluZzsKLSAg
ICBib29sIG1fd2F2UGFyc2VyQXZhaWxhYmxlOwogICAgIGJvb2wgbV9hdWRpb1NpbmtBdmFpbGFi
bGU7CiAgICAgR3N0RWxlbWVudCogbV9waXBlbGluZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3Ry
ZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktp
dFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCA0OGRkZWU1ODBkM2JlYTlhYjA2ZWUx
ZmRjNDcxNjgzMTEzNTdiNjYyLi4zZmFmNGRhNGNhNTY1YjBlZGRmZTJkNGIwNWY3MmI1NTlhOTkz
YzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIv
V2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAK
QEAgLTUzLDcgKzUzLDYgQEAgc3RydWN0IF9XZWJLaXRXZWJBdWRpb1NvdXJjZVByaXZhdGUgewog
ICAgIGd1aW50IGZyYW1lc1RvUHVsbDsKIAogICAgIEdSZWZQdHI8R3N0RWxlbWVudD4gaW50ZXJs
ZWF2ZTsKLSAgICBHUmVmUHRyPEdzdEVsZW1lbnQ+IHdhdkVuY29kZXI7CiAKICAgICBHUmVmUHRy
PEdzdFRhc2s+IHRhc2s7CiAgICAgR1JlY011dGV4IG11dGV4OwpAQCAtNjMsNiArNjIsNyBAQCBz
dHJ1Y3QgX1dlYktpdFdlYkF1ZGlvU291cmNlUHJpdmF0ZSB7CiAKICAgICBib29sIG5ld1N0cmVh
bUV2ZW50UGVuZGluZzsKICAgICBHc3RTZWdtZW50IHNlZ21lbnQ7CisgICAgZ3VpbnQ2NCBudW1T
YW1wbGVzOwogfTsKIAogZW51bSB7CkBAIC03MiwxMCArNzIsMTUgQEAgZW51bSB7CiAgICAgUFJP
UF9GUkFNRVMKIH07CiAKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBHc3RCdWZmZXIqIGJ1ZmZlcjsK
KyAgICBHc3RNYXBJbmZvIGluZm87Cit9IEF1ZGlvU3JjQnVmZmVyOworCiBzdGF0aWMgR3N0U3Rh
dGljUGFkVGVtcGxhdGUgc3JjVGVtcGxhdGUgPSBHU1RfU1RBVElDX1BBRF9URU1QTEFURSgic3Jj
IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdTVF9QQURfU1JDLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1NUX1BBRF9BTFdBWVMsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBHU1RfU1RBVElDX0NBUFMoImF1ZGlvL3gtd2F2IikpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1NUX1NUQVRJ
Q19DQVBTKEdTVF9BVURJT19DQVBTX01BS0UoR1NUX0FVRElPX05FKEYzMikpKSk7CiAKIEdTVF9E
RUJVR19DQVRFR09SWV9TVEFUSUMod2Via2l0X3dlYl9hdWRpb19zcmNfZGVidWcpOwogI2RlZmlu
ZSBHU1RfQ0FUX0RFRkFVTFQgd2Via2l0X3dlYl9hdWRpb19zcmNfZGVidWcKQEAgLTkxLDcgKzk2
LDcgQEAgc3RhdGljIEdzdENhcHMqIGdldEdTdHJlYW1lck1vbm9BdWRpb0NhcHMoZmxvYXQgc2Ft
cGxlUmF0ZSkKIHsKICAgICByZXR1cm4gZ3N0X2NhcHNfbmV3X3NpbXBsZSgiYXVkaW8veC1yYXci
LCAicmF0ZSIsIEdfVFlQRV9JTlQsIHN0YXRpY19jYXN0PGludD4oc2FtcGxlUmF0ZSksCiAgICAg
ICAgICJjaGFubmVscyIsIEdfVFlQRV9JTlQsIDEsCi0gICAgICAgICJmb3JtYXQiLCBHX1RZUEVf
U1RSSU5HLCBnc3RfYXVkaW9fZm9ybWF0X3RvX3N0cmluZyhHU1RfQVVESU9fRk9STUFUX0YzMiks
CisgICAgICAgICJmb3JtYXQiLCBHX1RZUEVfU1RSSU5HLCBHU1RfQVVESU9fTkUoRjMyKSwKICAg
ICAgICAgImxheW91dCIsIEdfVFlQRV9TVFJJTkcsICJpbnRlcmxlYXZlZCIsIG51bGxwdHIpOwog
fQogCkBAIC0yMDMsMjggKzIwOCwyMCBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJBdWRpb1NyY0Nv
bnN0cnVjdGVkKEdPYmplY3QqIG9iamVjdCkKICAgICBBU1NFUlQocHJpdi0+c2FtcGxlUmF0ZSk7
CiAKICAgICBwcml2LT5pbnRlcmxlYXZlID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJpbnRl
cmxlYXZlIiwgMCk7Ci0gICAgcHJpdi0+d2F2RW5jb2RlciA9IGdzdF9lbGVtZW50X2ZhY3Rvcnlf
bWFrZSgid2F2ZW5jIiwgMCk7CiAKICAgICBpZiAoIXByaXYtPmludGVybGVhdmUpIHsKICAgICAg
ICAgR1NUX0VSUk9SX09CSkVDVChzcmMsICJGYWlsZWQgdG8gY3JlYXRlIGludGVybGVhdmUiKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghcHJpdi0+d2F2RW5jb2Rlcikgewot
ICAgICAgICBHU1RfRVJST1JfT0JKRUNUKHNyYywgIkZhaWxlZCB0byBjcmVhdGUgd2F2ZW5jIik7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBnc3RfYmluX2FkZF9tYW55KEdTVF9CSU4o
c3JjKSwgcHJpdi0+aW50ZXJsZWF2ZS5nZXQoKSwgcHJpdi0+d2F2RW5jb2Rlci5nZXQoKSwgTlVM
TCk7Ci0gICAgZ3N0X2VsZW1lbnRfbGlua19wYWRzX2Z1bGwocHJpdi0+aW50ZXJsZWF2ZS5nZXQo
KSwgInNyYyIsIHByaXYtPndhdkVuY29kZXIuZ2V0KCksICJzaW5rIiwgR1NUX1BBRF9MSU5LX0NI
RUNLX05PVEhJTkcpOworICAgIGdzdF9iaW5fYWRkKEdTVF9CSU4oc3JjKSwgcHJpdi0+aW50ZXJs
ZWF2ZS5nZXQoKSk7CiAKICAgICAvLyBGb3IgZWFjaCBjaGFubmVsIG9mIHRoZSBidXMgY3JlYXRl
IGEgbmV3IHVwc3RyZWFtIGJyYW5jaCBmb3IgaW50ZXJsZWF2ZSwgbGlrZToKLSAgICAvLyBxdWV1
ZSAhIGNhcHNmaWx0ZXIgISBhdWRpb2NvbnZlcnQuIHdoaWNoIGlzIHBsdWdnZWQgdG8gYSBuZXcg
aW50ZXJsZWF2ZSByZXF1ZXN0IHNpbmtwYWQuCisgICAgLy8gcXVldWUgISBjYXBzZmlsdGVyLiB3
aGljaCBpcyBwbHVnZ2VkIHRvIGEgbmV3IGludGVybGVhdmUgcmVxdWVzdCBzaW5rcGFkLgogICAg
IGZvciAodW5zaWduZWQgY2hhbm5lbEluZGV4ID0gMDsgY2hhbm5lbEluZGV4IDwgcHJpdi0+YnVz
LT5udW1iZXJPZkNoYW5uZWxzKCk7IGNoYW5uZWxJbmRleCsrKSB7CiAgICAgICAgIEdVbmlxdWVQ
dHI8Z2NoYXI+IHF1ZXVlTmFtZShnX3N0cmR1cF9wcmludGYoIndlYmF1ZGlvUXVldWUldSIsIGNo
YW5uZWxJbmRleCkpOwogICAgICAgICBHc3RFbGVtZW50KiBxdWV1ZSA9IGdzdF9lbGVtZW50X2Zh
Y3RvcnlfbWFrZSgicXVldWUiLCBxdWV1ZU5hbWUuZ2V0KCkpOwogICAgICAgICBHc3RFbGVtZW50
KiBjYXBzZmlsdGVyID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJjYXBzZmlsdGVyIiwgMCk7
Ci0gICAgICAgIEdzdEVsZW1lbnQqIGF1ZGlvY29udmVydCA9IGdzdF9lbGVtZW50X2ZhY3Rvcnlf
bWFrZSgiYXVkaW9jb252ZXJ0IiwgMCk7CiAKICAgICAgICAgR1JlZlB0cjxHc3RDYXBzPiBtb25v
Q2FwcyA9IGFkb3B0R1JlZihnZXRHU3RyZWFtZXJNb25vQXVkaW9DYXBzKHByaXYtPnNhbXBsZVJh
dGUpKTsKIApAQCAtMjQwLDE2ICsyMzcsMTUgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViQXVkaW9T
cmNDb25zdHJ1Y3RlZChHT2JqZWN0KiBvYmplY3QpCiAgICAgICAgIEdzdFBhZCogcGFkID0gZ3N0
X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQocXVldWUsICJzaW5rIik7CiAgICAgICAgIHByaXYtPnBh
ZHMgPSBnX3NsaXN0X3ByZXBlbmQocHJpdi0+cGFkcywgcGFkKTsKIAotICAgICAgICBnc3RfYmlu
X2FkZF9tYW55KEdTVF9CSU4oc3JjKSwgcXVldWUsIGNhcHNmaWx0ZXIsIGF1ZGlvY29udmVydCwg
TlVMTCk7CisgICAgICAgIGdzdF9iaW5fYWRkX21hbnkoR1NUX0JJTihzcmMpLCBxdWV1ZSwgY2Fw
c2ZpbHRlciwgTlVMTCk7CiAgICAgICAgIGdzdF9lbGVtZW50X2xpbmtfcGFkc19mdWxsKHF1ZXVl
LCAic3JjIiwgY2Fwc2ZpbHRlciwgInNpbmsiLCBHU1RfUEFEX0xJTktfQ0hFQ0tfTk9USElORyk7
Ci0gICAgICAgIGdzdF9lbGVtZW50X2xpbmtfcGFkc19mdWxsKGNhcHNmaWx0ZXIsICJzcmMiLCBh
dWRpb2NvbnZlcnQsICJzaW5rIiwgR1NUX1BBRF9MSU5LX0NIRUNLX05PVEhJTkcpOwotICAgICAg
ICBnc3RfZWxlbWVudF9saW5rX3BhZHNfZnVsbChhdWRpb2NvbnZlcnQsICJzcmMiLCBwcml2LT5p
bnRlcmxlYXZlLmdldCgpLCAwLCBHU1RfUEFEX0xJTktfQ0hFQ0tfTk9USElORyk7CisgICAgICAg
IGdzdF9lbGVtZW50X2xpbmtfcGFkc19mdWxsKGNhcHNmaWx0ZXIsICJzcmMiLCBwcml2LT5pbnRl
cmxlYXZlLmdldCgpLCAic2lua18ldSIsIEdTVF9QQURfTElOS19DSEVDS19OT1RISU5HKTsKIAog
ICAgIH0KICAgICBwcml2LT5wYWRzID0gZ19zbGlzdF9yZXZlcnNlKHByaXYtPnBhZHMpOwogCiAg
ICAgLy8gd2F2ZW5jJ3Mgc3JjIHBhZCBpcyB0aGUgb25seSB2aXNpYmxlIHBhZCBvZiBvdXIgZWxl
bWVudC4KLSAgICBHUmVmUHRyPEdzdFBhZD4gdGFyZ2V0UGFkID0gYWRvcHRHUmVmKGdzdF9lbGVt
ZW50X2dldF9zdGF0aWNfcGFkKHByaXYtPndhdkVuY29kZXIuZ2V0KCksICJzcmMiKSk7CisgICAg
R1JlZlB0cjxHc3RQYWQ+IHRhcmdldFBhZCA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9nZXRfc3Rh
dGljX3BhZChwcml2LT5pbnRlcmxlYXZlLmdldCgpLCAic3JjIikpOwogICAgIGdzdF9naG9zdF9w
YWRfc2V0X3RhcmdldChHU1RfR0hPU1RfUEFEKHByaXYtPnNvdXJjZVBhZCksIHRhcmdldFBhZC5n
ZXQoKSk7CiB9CiAKQEAgLTMyMCwyMCArMzE2LDI4IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYkF1
ZGlvU3JjTG9vcChXZWJLaXRXZWJBdWRpb1NyYyogc3JjKQogCiAgICAgQVNTRVJUKHByaXYtPmJ1
cyk7CiAgICAgQVNTRVJUKHByaXYtPnByb3ZpZGVyKTsKLSAgICBpZiAoIXByaXYtPnByb3ZpZGVy
IHx8ICFwcml2LT5idXMpCisgICAgaWYgKCFwcml2LT5wcm92aWRlciB8fCAhcHJpdi0+YnVzKSB7
CisgICAgICAgIGdzdF90YXNrX3BhdXNlKHNyYy0+cHJpdi0+dGFzay5nZXQoKSk7CiAgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBHc3RDbG9ja1RpbWUgdGltZXN0YW1wID0gZ3N0X3V0aWxf
dWludDY0X3NjYWxlKHByaXYtPm51bVNhbXBsZXMsIEdTVF9TRUNPTkQsIHByaXYtPnNhbXBsZVJh
dGUpOworICAgIHByaXYtPm51bVNhbXBsZXMgKz0gcHJpdi0+ZnJhbWVzVG9QdWxsOworICAgIEdz
dENsb2NrVGltZSBkdXJhdGlvbiA9IGdzdF91dGlsX3VpbnQ2NF9zY2FsZShwcml2LT5udW1TYW1w
bGVzLCBHU1RfU0VDT05ELCBwcml2LT5zYW1wbGVSYXRlKSAtIHRpbWVzdGFtcDsKIAogICAgIEdT
TGlzdCogY2hhbm5lbEJ1ZmZlckxpc3QgPSAwOwogICAgIHJlZ2lzdGVyIGludCBpOwogICAgIHVu
c2lnbmVkIGJ1ZmZlclNpemUgPSBwcml2LT5mcmFtZXNUb1B1bGwgKiBzaXplb2YoZmxvYXQpOwog
ICAgIGZvciAoaSA9IGdfc2xpc3RfbGVuZ3RoKHByaXYtPnBhZHMpIC0gMTsgaSA+PSAwOyBpLS0p
IHsKKyAgICAgICAgQXVkaW9TcmNCdWZmZXIqIGJ1ZmZlciA9IGdfbmV3KEF1ZGlvU3JjQnVmZmVy
LCAxKTsKICAgICAgICAgR3N0QnVmZmVyKiBjaGFubmVsQnVmZmVyID0gZ3N0X2J1ZmZlcl9uZXdf
YW5kX2FsbG9jKGJ1ZmZlclNpemUpOwogICAgICAgICBBU1NFUlQoY2hhbm5lbEJ1ZmZlcik7Ci0g
ICAgICAgIGNoYW5uZWxCdWZmZXJMaXN0ID0gZ19zbGlzdF9wcmVwZW5kKGNoYW5uZWxCdWZmZXJM
aXN0LCBjaGFubmVsQnVmZmVyKTsKLSAgICAgICAgR3N0TWFwSW5mbyBpbmZvOwotICAgICAgICBn
c3RfYnVmZmVyX21hcChjaGFubmVsQnVmZmVyLCAmaW5mbywgR1NUX01BUF9SRUFEKTsKLSAgICAg
ICAgcHJpdi0+YnVzLT5zZXRDaGFubmVsTWVtb3J5KGksIHJlaW50ZXJwcmV0X2Nhc3Q8ZmxvYXQq
PihpbmZvLmRhdGEpLCBwcml2LT5mcmFtZXNUb1B1bGwpOwotICAgICAgICBnc3RfYnVmZmVyX3Vu
bWFwKGNoYW5uZWxCdWZmZXIsICZpbmZvKTsKKyAgICAgICAgYnVmZmVyLT5idWZmZXIgPSBjaGFu
bmVsQnVmZmVyOworICAgICAgICBHU1RfQlVGRkVSX1RJTUVTVEFNUChjaGFubmVsQnVmZmVyKSA9
IHRpbWVzdGFtcDsKKyAgICAgICAgR1NUX0JVRkZFUl9EVVJBVElPTihjaGFubmVsQnVmZmVyKSA9
IGR1cmF0aW9uOworICAgICAgICBnc3RfYnVmZmVyX21hcChjaGFubmVsQnVmZmVyLCAmYnVmZmVy
LT5pbmZvLCAoR3N0TWFwRmxhZ3MpIEdTVF9NQVBfUkVBRFdSSVRFKTsKKyAgICAgICAgcHJpdi0+
YnVzLT5zZXRDaGFubmVsTWVtb3J5KGksIHJlaW50ZXJwcmV0X2Nhc3Q8ZmxvYXQqPihidWZmZXIt
PmluZm8uZGF0YSksIHByaXYtPmZyYW1lc1RvUHVsbCk7CisgICAgICAgIGNoYW5uZWxCdWZmZXJM
aXN0ID0gZ19zbGlzdF9wcmVwZW5kKGNoYW5uZWxCdWZmZXJMaXN0LCBidWZmZXIpOwogICAgIH0K
IAogICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgbG9jYWwvbGl2ZSBhdWRpbyBpbnB1dC4K
QEAgLTM1MCw3ICszNTQsMTIgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViQXVkaW9TcmNMb29wKFdl
YktpdFdlYkF1ZGlvU3JjKiBzcmMpCiAKICAgICBmb3IgKGkgPSAwOyBwYWRzSXQgJiYgYnVmZmVy
c0l0OyBwYWRzSXQgPSBnX3NsaXN0X25leHQocGFkc0l0KSwgYnVmZmVyc0l0ID0gZ19zbGlzdF9u
ZXh0KGJ1ZmZlcnNJdCksICsraSkgewogICAgICAgICBHc3RQYWQqIHBhZCA9IHN0YXRpY19jYXN0
PEdzdFBhZCo+KHBhZHNJdC0+ZGF0YSk7Ci0gICAgICAgIEdzdEJ1ZmZlciogY2hhbm5lbEJ1ZmZl
ciA9IHN0YXRpY19jYXN0PEdzdEJ1ZmZlcio+KGJ1ZmZlcnNJdC0+ZGF0YSk7CisgICAgICAgIEF1
ZGlvU3JjQnVmZmVyKiBidWZmZXIgPSBzdGF0aWNfY2FzdDxBdWRpb1NyY0J1ZmZlcio+KGJ1ZmZl
cnNJdC0+ZGF0YSk7CisgICAgICAgIEdzdEJ1ZmZlciogY2hhbm5lbEJ1ZmZlciA9IGJ1ZmZlci0+
YnVmZmVyOworCisgICAgICAgIC8vIFVubWFwIGJlZm9yZSBwYXNzaW5nIG9uIHRoZSBidWZmZXIK
KyAgICAgICAgZ3N0X2J1ZmZlcl91bm1hcChjaGFubmVsQnVmZmVyLCAmYnVmZmVyLT5pbmZvKTsK
KyAgICAgICAgZ19mcmVlKGJ1ZmZlcik7CiAKICAgICAgICAgLy8gU2VuZCBzdHJlYW0tc3RhcnQs
IHNlZ21lbnQgYW5kIGNhcHMgZXZlbnRzIGRvd25zdHJlYW0sIGFsb25nIHdpdGggdGhlIGZpcnN0
IGJ1ZmZlci4KICAgICAgICAgaWYgKHByaXYtPm5ld1N0cmVhbUV2ZW50UGVuZGluZykgewpAQCAt
Mzc1LDggKzM4NCwxMCBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJBdWRpb1NyY0xvb3AoV2ViS2l0
V2ViQXVkaW9TcmMqIHNyYykKICAgICAgICAgfQogCiAgICAgICAgIEdzdEZsb3dSZXR1cm4gcmV0
ID0gZ3N0X3BhZF9jaGFpbihwYWQsIGNoYW5uZWxCdWZmZXIpOwotICAgICAgICBpZiAocmV0ICE9
IEdTVF9GTE9XX09LKQorICAgICAgICBpZiAocmV0ICE9IEdTVF9GTE9XX09LKSB7CiAgICAgICAg
ICAgICBHU1RfRUxFTUVOVF9FUlJPUihzcmMsIENPUkUsIFBBRCwgKCJJbnRlcm5hbCBXZWJBdWRp
b1NyYyBlcnJvciIpLCAoIkZhaWxlZCB0byBwdXNoIGJ1ZmZlciBvbiAlczolcyBmbG93OiAlcyIs
IEdTVF9ERUJVR19QQURfTkFNRShwYWQpLCBnc3RfZmxvd19nZXRfbmFtZShyZXQpKSk7CisgICAg
ICAgICAgICBnc3RfdGFza19wYXVzZShzcmMtPnByaXYtPnRhc2suZ2V0KCkpOworICAgICAgICB9
CiAgICAgfQogCiAgICAgcHJpdi0+bmV3U3RyZWFtRXZlbnRQZW5kaW5nID0gZmFsc2U7CkBAIC0z
OTYsMTEgKzQwNyw3IEBAIHN0YXRpYyBHc3RTdGF0ZUNoYW5nZVJldHVybiB3ZWJLaXRXZWJBdWRp
b1NyY0NoYW5nZVN0YXRlKEdzdEVsZW1lbnQqIGVsZW1lbnQsIEdzCiAgICAgICAgICAgICBHU1Rf
RUxFTUVOVF9FUlJPUihzcmMsIENPUkUsIE1JU1NJTkdfUExVR0lOLCAoMCksICgibm8gaW50ZXJs
ZWF2ZSIpKTsKICAgICAgICAgICAgIHJldHVybiBHU1RfU1RBVEVfQ0hBTkdFX0ZBSUxVUkU7CiAg
ICAgICAgIH0KLSAgICAgICAgaWYgKCFzcmMtPnByaXYtPndhdkVuY29kZXIpIHsKLSAgICAgICAg
ICAgIGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZShlbGVtZW50LCBnc3RfbWlzc2luZ19lbGVtZW50
X21lc3NhZ2VfbmV3KGVsZW1lbnQsICJ3YXZlbmMiKSk7Ci0gICAgICAgICAgICBHU1RfRUxFTUVO
VF9FUlJPUihzcmMsIENPUkUsIE1JU1NJTkdfUExVR0lOLCAoMCksICgibm8gd2F2ZW5jIikpOwot
ICAgICAgICAgICAgcmV0dXJuIEdTVF9TVEFURV9DSEFOR0VfRkFJTFVSRTsKLSAgICAgICAgfQor
ICAgICAgICBzcmMtPnByaXYtPm51bVNhbXBsZXMgPSAwOwogICAgICAgICBicmVhazsKICAgICBk
ZWZhdWx0OgogICAgICAgICBicmVhazsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242756</attachid>
            <date>2014-12-07 10:39:24 -0800</date>
            <delta_ts>2014-12-07 11:52:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139370-20141207194047.patch</filename>
            <type>text/plain</type>
            <size>16075</size>
            <attacher name="Sebastian Dröge (slomo)">slomo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2OTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODMzOWQ3Y2ViOTVjMDRh
ZmMwNTVhMzFkNDY0ZjA3NTFjOGM2ZTk0MC4uNTQ1ODdkNTNiZGFlMTQyMjZmMmU2ODczZjdkMzgy
OWYyMTc4MzVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE0LTEyLTA3ICBTZWJh
c3RpYW4gRHLDtmdlICA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KKworICAgICAgICBbR1N0
cmVhbWVyXSBNYWpvciBjbGVhbnVwIG9mIEF1ZGlvRGVzdGluYXRpb24gaW1wbGVtZW50YXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTM3MAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZv
cm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6QXVkaW9EZXN0aW5hdGlvbkdT
dHJlYW1lcik6CisgICAgICAgIEFkZCBhbiBhdWRpb3Jlc2FtcGxlIGVsZW1lbnQgYmVmb3JlIHRo
ZSBhdWRpbyBzaW5rLiBUaGUgYXVkaW8gc2luaworICAgICAgICBtaWdodCBub3QgYmUgYWJsZSB0
byBoYW5kbGUgb3VyIHNhbXBsaW5nIHJhdGUuCisKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVz
dGluYXRpb25HU3RyZWFtZXI6OkF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6fkF1ZGlvRGVzdGluYXRpb25HU3Ry
ZWFtZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6c3Rv
cCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpmaW5pc2hC
dWlsZGluZ1BpcGVsaW5lQWZ0ZXJXYXZQYXJzZXJQYWRSZWFkeSk6IERlbGV0ZWQuCisgICAgICAg
IERvbid0IHVzZSBhIHdhdnBhcnNlIGVsZW1lbnQgYnV0IGRpcmVjdGx5IGxpbmsgdGhlIHJhdyBh
dWRpbyBmcm9tCisgICAgICAgIHRoZSBzb3VyY2UgdG8gdGhlIGF1ZGlvIHNpbmsuCisKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI6OnN0YXJ0KToKKyAgICAgICAg
Q2F0Y2ggZXJyb3JzIHdoZW4gZ29pbmcgdG8gUExBWUlORyBlYXJseSwgd2UgbWlnaHQgbm90IGdl
dCBhbiBlcnJvcgorICAgICAgICBtZXNzYWdlLgorCisgICAgICAgICogcGxhdGZvcm0vYXVkaW8v
Z3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwOgorICAg
ICAgICAoZ2V0R1N0cmVhbWVyTW9ub0F1ZGlvQ2Fwcyk6CisgICAgICAgICh3ZWJLaXRXZWJBdWRp
b1NyY0NvbnN0cnVjdGVkKToKKyAgICAgICAgKHdlYktpdFdlYkF1ZGlvU3JjQ2hhbmdlU3RhdGUp
OgorICAgICAgICBEb24ndCB1c2UgYSBXQVYgZW5jb2RlciBidXQgZGlyZWN0bHkgb3V0cHV0IHJh
dyBhdWRpby4gQWxzbyBkb24ndAorICAgICAgICBpbmNsdWRlIGEgdW5uZWVkZWQgYXVkaW9jb252
ZXJ0IGVsZW1lbnQgYmVmb3JlIHRoZSBpbnRlcmxlYXZlLgorCisgICAgICAgICh3ZWJLaXRXZWJB
dWRpb1NyY0xvb3ApOgorICAgICAgICBBZGQgdGltZXN0YW1wcyBhbmQgZHVyYXRpb25zIHRvIHRo
ZSBvdXRwdXQgYnVmZmVycywgbWFwIHRoZW0gaW4KKyAgICAgICAgUkVBRFdSSVRFIG1vZGUgYW5k
IGFjdHVhbGx5IGtlZXAgdGhlbSBtYXBwZWQgdW50aWwgd2UncmUgc3VyZQorICAgICAgICBub3Ro
aW5nIGlzIGFjdHVhbGx5IHdyaXRpbmcgaW50byB0aGVtLgorCisgICAgICAgICh3ZWJLaXRXZWJB
dWRpb1NyY0xvb3ApOgorICAgICAgICBQYXVzZSB0aGUgdGFzayBvbiBlcnJvcnMgaW5zdGVhZCBv
ZiBjb250aW51b3VzbHkgY2FsbGluZyBpdCBhZ2FpbgorICAgICAgICBpbW1lZGlhdGVseS4KKwog
MjAxNC0xMi0wNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW0dUS10gTWlzc2luZyBBUEkgZGV0ZWN0ZWQgaW4gR09iamVjdCBET00gYmluZGlu
Z3MgYWZ0ZXIgcjE3NjYzMApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3Bw
CmluZGV4IDI1ZGRjYjlmYTA1NzMzM2ViZDQ2NWVhZGM0NmQ0ZjMwOGNkYmI2ZDcuLjkxMjVhMTRi
NDE4MmM0MDA5NDcyNDVkZjdlY2Y4OTIwYWVlMmNlOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lci5jcHAKQEAgLTg3LDM4ICs4NywxMCBAQCBBdWRpb0Rlc3RpbmF0aW9u
R1N0cmVhbWVyOjpBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyKEF1ZGlvSU9DYWxsYmFjayYgY2Fs
bGJhY2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInByb3ZpZGVyIiwgJm1fY2FsbGJhY2ssCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImZyYW1lcyIsIGZyYW1lc1RvUHVsbCwgTlVMTCkpOwogCi0gICAgR3N0
RWxlbWVudCogd2F2UGFyc2VyID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJ3YXZwYXJzZSIs
IDApOwotCi0gICAgbV93YXZQYXJzZXJBdmFpbGFibGUgPSB3YXZQYXJzZXI7Ci0gICAgQVNTRVJU
X1dJVEhfTUVTU0FHRShtX3dhdlBhcnNlckF2YWlsYWJsZSwgIkZhaWxlZCB0byBjcmVhdGUgR1N0
cmVhbWVyIHdhdnBhcnNlIGVsZW1lbnQiKTsKLSAgICBpZiAoIW1fd2F2UGFyc2VyQXZhaWxhYmxl
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBnc3RfYmluX2FkZF9tYW55KEdTVF9CSU4obV9waXBl
bGluZSksIHdlYmtpdEF1ZGlvU3JjLCB3YXZQYXJzZXIsIE5VTEwpOwotICAgIGdzdF9lbGVtZW50
X2xpbmtfcGFkc19mdWxsKHdlYmtpdEF1ZGlvU3JjLCAic3JjIiwgd2F2UGFyc2VyLCAic2luayIs
IEdTVF9QQURfTElOS19DSEVDS19OT1RISU5HKTsKLQotICAgIEdSZWZQdHI8R3N0UGFkPiBzcmNQ
YWQgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQod2F2UGFyc2VyLCAic3Jj
IikpOwotICAgIGZpbmlzaEJ1aWxkaW5nUGlwZWxpbmVBZnRlcldhdlBhcnNlclBhZFJlYWR5KHNy
Y1BhZC5nZXQoKSk7Ci19Ci0KLUF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI6On5BdWRpb0Rlc3Rp
bmF0aW9uR1N0cmVhbWVyKCkKLXsKLSAgICBHUmVmUHRyPEdzdEJ1cz4gYnVzID0gYWRvcHRHUmVm
KGdzdF9waXBlbGluZV9nZXRfYnVzKEdTVF9QSVBFTElORShtX3BpcGVsaW5lKSkpOwotICAgIEFT
U0VSVChidXMpOwotICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZnVuYyhidXMu
Z2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8Z3BvaW50ZXI+KG1lc3NhZ2VDYWxsYmFjayksIHRoaXMp
OwotICAgIGdzdF9idXNfcmVtb3ZlX3NpZ25hbF93YXRjaChidXMuZ2V0KCkpOwotCi0gICAgZ3N0
X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGlwZWxpbmUsIEdTVF9TVEFURV9OVUxMKTsKLSAgICBnc3Rf
b2JqZWN0X3VucmVmKG1fcGlwZWxpbmUpOwotfQotCi12b2lkIEF1ZGlvRGVzdGluYXRpb25HU3Ry
ZWFtZXI6OmZpbmlzaEJ1aWxkaW5nUGlwZWxpbmVBZnRlcldhdlBhcnNlclBhZFJlYWR5KEdzdFBh
ZCogcGFkKQotewotICAgIEFTU0VSVChtX3dhdlBhcnNlckF2YWlsYWJsZSk7CisgICAgR1JlZlB0
cjxHc3RQYWQ+IHNyY1BhZCA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZCh3
ZWJraXRBdWRpb1NyYywgInNyYyIpKTsKIAogICAgIEdSZWZQdHI8R3N0RWxlbWVudD4gYXVkaW9T
aW5rID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJhdXRvYXVkaW9zaW5rIiwgMCk7CiAgICAg
bV9hdWRpb1NpbmtBdmFpbGFibGUgPSBhdWRpb1Npbms7Ci0KICAgICBpZiAoIWF1ZGlvU2luaykg
ewogICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgR1N0cmVhbWVyIGF1dG9hdWRp
b3NpbmsgZWxlbWVudCIpOwogICAgICAgICByZXR1cm47CkBAIC0xMzYsMTYgKzEwOCwyNyBAQCB2
b2lkIEF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI6OmZpbmlzaEJ1aWxkaW5nUGlwZWxpbmVBZnRl
cldhdlBhcnNlclBhZFJlYWR5KEdzdAogICAgIH0KIAogICAgIEdzdEVsZW1lbnQqIGF1ZGlvQ29u
dmVydCA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiYXVkaW9jb252ZXJ0IiwgMCk7Ci0gICAg
Z3N0X2Jpbl9hZGRfbWFueShHU1RfQklOKG1fcGlwZWxpbmUpLCBhdWRpb0NvbnZlcnQsIGF1ZGlv
U2luay5nZXQoKSwgTlVMTCk7CisgICAgR3N0RWxlbWVudCogYXVkaW9SZXNhbXBsZSA9IGdzdF9l
bGVtZW50X2ZhY3RvcnlfbWFrZSgiYXVkaW9yZXNhbXBsZSIsIDApOworICAgIGdzdF9iaW5fYWRk
X21hbnkoR1NUX0JJTihtX3BpcGVsaW5lKSwgd2Via2l0QXVkaW9TcmMsIGF1ZGlvQ29udmVydCwg
YXVkaW9SZXNhbXBsZSwgYXVkaW9TaW5rLmdldCgpLCBOVUxMKTsKIAogICAgIC8vIExpbmsgd2F2
cGFyc2UncyBzcmMgcGFkIHRvIGF1ZGlvY29udmVydCBzaW5rIHBhZC4KICAgICBHUmVmUHRyPEdz
dFBhZD4gc2lua1BhZCA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZChhdWRp
b0NvbnZlcnQsICJzaW5rIikpOwotICAgIGdzdF9wYWRfbGlua19mdWxsKHBhZCwgc2lua1BhZC5n
ZXQoKSwgR1NUX1BBRF9MSU5LX0NIRUNLX05PVEhJTkcpOworICAgIGdzdF9wYWRfbGlua19mdWxs
KHNyY1BhZC5nZXQoKSwgc2lua1BhZC5nZXQoKSwgR1NUX1BBRF9MSU5LX0NIRUNLX05PVEhJTkcp
OwogCiAgICAgLy8gTGluayBhdWRpb2NvbnZlcnQgdG8gYXVkaW9zaW5rIGFuZCByb2xsIHN0YXRl
cy4KLSAgICBnc3RfZWxlbWVudF9saW5rX3BhZHNfZnVsbChhdWRpb0NvbnZlcnQsICJzcmMiLCBh
dWRpb1NpbmsuZ2V0KCksICJzaW5rIiwgR1NUX1BBRF9MSU5LX0NIRUNLX05PVEhJTkcpOwotICAg
IGdzdF9lbGVtZW50X3N5bmNfc3RhdGVfd2l0aF9wYXJlbnQoYXVkaW9Db252ZXJ0KTsKLSAgICBn
c3RfZWxlbWVudF9zeW5jX3N0YXRlX3dpdGhfcGFyZW50KGF1ZGlvU2luay5sZWFrUmVmKCkpOwor
ICAgIGdzdF9lbGVtZW50X2xpbmtfcGFkc19mdWxsKGF1ZGlvQ29udmVydCwgInNyYyIsIGF1ZGlv
UmVzYW1wbGUsICJzaW5rIiwgR1NUX1BBRF9MSU5LX0NIRUNLX05PVEhJTkcpOworICAgIGdzdF9l
bGVtZW50X2xpbmtfcGFkc19mdWxsKGF1ZGlvUmVzYW1wbGUsICJzcmMiLCBhdWRpb1NpbmsuZ2V0
KCksICJzaW5rIiwgR1NUX1BBRF9MSU5LX0NIRUNLX05PVEhJTkcpOworfQorCitBdWRpb0Rlc3Rp
bmF0aW9uR1N0cmVhbWVyOjp+QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcigpCit7CisgICAgR1Jl
ZlB0cjxHc3RCdXM+IGJ1cyA9IGFkb3B0R1JlZihnc3RfcGlwZWxpbmVfZ2V0X2J1cyhHU1RfUElQ
RUxJTkUobV9waXBlbGluZSkpKTsKKyAgICBBU1NFUlQoYnVzKTsKKyAgICBnX3NpZ25hbF9oYW5k
bGVyc19kaXNjb25uZWN0X2J5X2Z1bmMoYnVzLmdldCgpLCByZWludGVycHJldF9jYXN0PGdwb2lu
dGVyPihtZXNzYWdlQ2FsbGJhY2spLCB0aGlzKTsKKyAgICBnc3RfYnVzX3JlbW92ZV9zaWduYWxf
d2F0Y2goYnVzLmdldCgpKTsKKworICAgIGdzdF9lbGVtZW50X3NldF9zdGF0ZShtX3BpcGVsaW5l
LCBHU1RfU1RBVEVfTlVMTCk7CisgICAgZ3N0X29iamVjdF91bnJlZihtX3BpcGVsaW5lKTsKIH0K
IAogZ2Jvb2xlYW4gQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RN
ZXNzYWdlKiBtZXNzYWdlKQpAQCAtMTcyLDE4ICsxNTUsMjMgQEAgZ2Jvb2xlYW4gQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lcjo6aGFuZGxlTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogCiB2
b2lkIEF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI6OnN0YXJ0KCkKIHsKLSAgICBBU1NFUlQobV93
YXZQYXJzZXJBdmFpbGFibGUpOwotICAgIGlmICghbV93YXZQYXJzZXJBdmFpbGFibGUpCisgICAg
QVNTRVJUKG1fYXVkaW9TaW5rQXZhaWxhYmxlKTsKKyAgICBpZiAoIW1fYXVkaW9TaW5rQXZhaWxh
YmxlKQogICAgICAgICByZXR1cm47CiAKLSAgICBnc3RfZWxlbWVudF9zZXRfc3RhdGUobV9waXBl
bGluZSwgR1NUX1NUQVRFX1BMQVlJTkcpOworICAgIGlmIChnc3RfZWxlbWVudF9zZXRfc3RhdGUo
bV9waXBlbGluZSwgR1NUX1NUQVRFX1BMQVlJTkcpID09IEdTVF9TVEFURV9DSEFOR0VfRkFJTFVS
RSkgeworICAgICAgICBnX3dhcm5pbmcoIkVycm9yOiBGYWlsZWQgdG8gc2V0IHBpcGVsaW5lIHRv
IHBsYXlpbmciKTsKKyAgICAgICAgbV9pc1BsYXlpbmcgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKwogICAgIG1faXNQbGF5aW5nID0gdHJ1ZTsKIH0KIAogdm9pZCBBdWRpb0Rlc3Rp
bmF0aW9uR1N0cmVhbWVyOjpzdG9wKCkKIHsKLSAgICBBU1NFUlQobV93YXZQYXJzZXJBdmFpbGFi
bGUgJiYgbV9hdWRpb1NpbmtBdmFpbGFibGUpOwotICAgIGlmICghbV93YXZQYXJzZXJBdmFpbGFi
bGUgfHwgIW1fYXVkaW9TaW5rQXZhaWxhYmxlKQorICAgIEFTU0VSVChtX2F1ZGlvU2lua0F2YWls
YWJsZSk7CisgICAgaWYgKCFtX2F1ZGlvU2lua0F2YWlsYWJsZSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGlwZWxpbmUsIEdTVF9TVEFURV9QQVVTRUQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1
ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmgKaW5kZXggOWRjOWE5YmVhZDZk
NDg0M2I4Yzc4MWM3NzhjNDlkNjdkYWI4NjBmNS4uZmEwNjYyMjVmNTJmMDRlMDAyNGMyNDAxNjAw
YWM4NDZhYzI1MzNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Z3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lci5oCkBA
IC00MSw3ICs0MSw2IEBAIHB1YmxpYzoKICAgICBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3QgeyBy
ZXR1cm4gbV9zYW1wbGVSYXRlOyB9CiAgICAgQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaygpIGNv
bnN0IHsgcmV0dXJuIG1fY2FsbGJhY2s7IH0KIAotICAgIHZvaWQgZmluaXNoQnVpbGRpbmdQaXBl
bGluZUFmdGVyV2F2UGFyc2VyUGFkUmVhZHkoR3N0UGFkKik7CiAgICAgZ2Jvb2xlYW4gaGFuZGxl
TWVzc2FnZShHc3RNZXNzYWdlKik7CiAKIHByaXZhdGU6CkBAIC01MCw3ICs0OSw2IEBAIHByaXZh
dGU6CiAKICAgICBmbG9hdCBtX3NhbXBsZVJhdGU7CiAgICAgYm9vbCBtX2lzUGxheWluZzsKLSAg
ICBib29sIG1fd2F2UGFyc2VyQXZhaWxhYmxlOwogICAgIGJvb2wgbV9hdWRpb1NpbmtBdmFpbGFi
bGU7CiAgICAgR3N0RWxlbWVudCogbV9waXBlbGluZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3Ry
ZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktp
dFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCA0OGRkZWU1ODBkM2JlYTlhYjA2ZWUx
ZmRjNDcxNjgzMTEzNTdiNjYyLi45MWZmNTczYmZiOTJjODBlYzZiZThhODE2MjUyOTgxMGQyNzI2
MTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIv
V2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAK
QEAgLTUzLDcgKzUzLDYgQEAgc3RydWN0IF9XZWJLaXRXZWJBdWRpb1NvdXJjZVByaXZhdGUgewog
ICAgIGd1aW50IGZyYW1lc1RvUHVsbDsKIAogICAgIEdSZWZQdHI8R3N0RWxlbWVudD4gaW50ZXJs
ZWF2ZTsKLSAgICBHUmVmUHRyPEdzdEVsZW1lbnQ+IHdhdkVuY29kZXI7CiAKICAgICBHUmVmUHRy
PEdzdFRhc2s+IHRhc2s7CiAgICAgR1JlY011dGV4IG11dGV4OwpAQCAtNjMsNiArNjIsNyBAQCBz
dHJ1Y3QgX1dlYktpdFdlYkF1ZGlvU291cmNlUHJpdmF0ZSB7CiAKICAgICBib29sIG5ld1N0cmVh
bUV2ZW50UGVuZGluZzsKICAgICBHc3RTZWdtZW50IHNlZ21lbnQ7CisgICAgZ3VpbnQ2NCBudW1T
YW1wbGVzOwogfTsKIAogZW51bSB7CkBAIC03MiwxMCArNzIsMTUgQEAgZW51bSB7CiAgICAgUFJP
UF9GUkFNRVMKIH07CiAKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBHc3RCdWZmZXIqIGJ1ZmZlcjsK
KyAgICBHc3RNYXBJbmZvIGluZm87Cit9IEF1ZGlvU3JjQnVmZmVyOworCiBzdGF0aWMgR3N0U3Rh
dGljUGFkVGVtcGxhdGUgc3JjVGVtcGxhdGUgPSBHU1RfU1RBVElDX1BBRF9URU1QTEFURSgic3Jj
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdTVF9QQURfU1JDLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1NUX1BBRF9BTFdBWVMsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBHU1RfU1RBVElDX0NBUFMoImF1ZGlvL3gtd2F2IikpOworICAgIEdTVF9QQURfU1JDLAor
ICAgIEdTVF9QQURfQUxXQVlTLAorICAgIEdTVF9TVEFUSUNfQ0FQUyhHU1RfQVVESU9fQ0FQU19N
QUtFKEdTVF9BVURJT19ORShGMzIpKSkpOwogCiBHU1RfREVCVUdfQ0FURUdPUllfU1RBVElDKHdl
YmtpdF93ZWJfYXVkaW9fc3JjX2RlYnVnKTsKICNkZWZpbmUgR1NUX0NBVF9ERUZBVUxUIHdlYmtp
dF93ZWJfYXVkaW9fc3JjX2RlYnVnCkBAIC05MSw3ICs5Niw3IEBAIHN0YXRpYyBHc3RDYXBzKiBn
ZXRHU3RyZWFtZXJNb25vQXVkaW9DYXBzKGZsb2F0IHNhbXBsZVJhdGUpCiB7CiAgICAgcmV0dXJu
IGdzdF9jYXBzX25ld19zaW1wbGUoImF1ZGlvL3gtcmF3IiwgInJhdGUiLCBHX1RZUEVfSU5ULCBz
dGF0aWNfY2FzdDxpbnQ+KHNhbXBsZVJhdGUpLAogICAgICAgICAiY2hhbm5lbHMiLCBHX1RZUEVf
SU5ULCAxLAotICAgICAgICAiZm9ybWF0IiwgR19UWVBFX1NUUklORywgZ3N0X2F1ZGlvX2Zvcm1h
dF90b19zdHJpbmcoR1NUX0FVRElPX0ZPUk1BVF9GMzIpLAorICAgICAgICAiZm9ybWF0IiwgR19U
WVBFX1NUUklORywgR1NUX0FVRElPX05FKEYzMiksCiAgICAgICAgICJsYXlvdXQiLCBHX1RZUEVf
U1RSSU5HLCAiaW50ZXJsZWF2ZWQiLCBudWxscHRyKTsKIH0KIApAQCAtMjAzLDI4ICsyMDgsMjAg
QEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViQXVkaW9TcmNDb25zdHJ1Y3RlZChHT2JqZWN0KiBvYmpl
Y3QpCiAgICAgQVNTRVJUKHByaXYtPnNhbXBsZVJhdGUpOwogCiAgICAgcHJpdi0+aW50ZXJsZWF2
ZSA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgiaW50ZXJsZWF2ZSIsIDApOwotICAgIHByaXYt
PndhdkVuY29kZXIgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoIndhdmVuYyIsIDApOwogCiAg
ICAgaWYgKCFwcml2LT5pbnRlcmxlYXZlKSB7CiAgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc3Jj
LCAiRmFpbGVkIHRvIGNyZWF0ZSBpbnRlcmxlYXZlIik7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBpZiAoIXByaXYtPndhdkVuY29kZXIpIHsKLSAgICAgICAgR1NUX0VSUk9SX09CSkVD
VChzcmMsICJGYWlsZWQgdG8gY3JlYXRlIHdhdmVuYyIpOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotCi0gICAgZ3N0X2Jpbl9hZGRfbWFueShHU1RfQklOKHNyYyksIHByaXYtPmludGVybGVhdmUu
Z2V0KCksIHByaXYtPndhdkVuY29kZXIuZ2V0KCksIE5VTEwpOwotICAgIGdzdF9lbGVtZW50X2xp
bmtfcGFkc19mdWxsKHByaXYtPmludGVybGVhdmUuZ2V0KCksICJzcmMiLCBwcml2LT53YXZFbmNv
ZGVyLmdldCgpLCAic2luayIsIEdTVF9QQURfTElOS19DSEVDS19OT1RISU5HKTsKKyAgICBnc3Rf
YmluX2FkZChHU1RfQklOKHNyYyksIHByaXYtPmludGVybGVhdmUuZ2V0KCkpOwogCiAgICAgLy8g
Rm9yIGVhY2ggY2hhbm5lbCBvZiB0aGUgYnVzIGNyZWF0ZSBhIG5ldyB1cHN0cmVhbSBicmFuY2gg
Zm9yIGludGVybGVhdmUsIGxpa2U6Ci0gICAgLy8gcXVldWUgISBjYXBzZmlsdGVyICEgYXVkaW9j
b252ZXJ0LiB3aGljaCBpcyBwbHVnZ2VkIHRvIGEgbmV3IGludGVybGVhdmUgcmVxdWVzdCBzaW5r
cGFkLgorICAgIC8vIHF1ZXVlICEgY2Fwc2ZpbHRlci4gd2hpY2ggaXMgcGx1Z2dlZCB0byBhIG5l
dyBpbnRlcmxlYXZlIHJlcXVlc3Qgc2lua3BhZC4KICAgICBmb3IgKHVuc2lnbmVkIGNoYW5uZWxJ
bmRleCA9IDA7IGNoYW5uZWxJbmRleCA8IHByaXYtPmJ1cy0+bnVtYmVyT2ZDaGFubmVscygpOyBj
aGFubmVsSW5kZXgrKykgewogICAgICAgICBHVW5pcXVlUHRyPGdjaGFyPiBxdWV1ZU5hbWUoZ19z
dHJkdXBfcHJpbnRmKCJ3ZWJhdWRpb1F1ZXVlJXUiLCBjaGFubmVsSW5kZXgpKTsKICAgICAgICAg
R3N0RWxlbWVudCogcXVldWUgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoInF1ZXVlIiwgcXVl
dWVOYW1lLmdldCgpKTsKICAgICAgICAgR3N0RWxlbWVudCogY2Fwc2ZpbHRlciA9IGdzdF9lbGVt
ZW50X2ZhY3RvcnlfbWFrZSgiY2Fwc2ZpbHRlciIsIDApOwotICAgICAgICBHc3RFbGVtZW50KiBh
dWRpb2NvbnZlcnQgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImF1ZGlvY29udmVydCIsIDAp
OwogCiAgICAgICAgIEdSZWZQdHI8R3N0Q2Fwcz4gbW9ub0NhcHMgPSBhZG9wdEdSZWYoZ2V0R1N0
cmVhbWVyTW9ub0F1ZGlvQ2Fwcyhwcml2LT5zYW1wbGVSYXRlKSk7CiAKQEAgLTI0MCwxNiArMjM3
LDE1IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYkF1ZGlvU3JjQ29uc3RydWN0ZWQoR09iamVjdCog
b2JqZWN0KQogICAgICAgICBHc3RQYWQqIHBhZCA9IGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFk
KHF1ZXVlLCAic2luayIpOwogICAgICAgICBwcml2LT5wYWRzID0gZ19zbGlzdF9wcmVwZW5kKHBy
aXYtPnBhZHMsIHBhZCk7CiAKLSAgICAgICAgZ3N0X2Jpbl9hZGRfbWFueShHU1RfQklOKHNyYyks
IHF1ZXVlLCBjYXBzZmlsdGVyLCBhdWRpb2NvbnZlcnQsIE5VTEwpOworICAgICAgICBnc3RfYmlu
X2FkZF9tYW55KEdTVF9CSU4oc3JjKSwgcXVldWUsIGNhcHNmaWx0ZXIsIE5VTEwpOwogICAgICAg
ICBnc3RfZWxlbWVudF9saW5rX3BhZHNfZnVsbChxdWV1ZSwgInNyYyIsIGNhcHNmaWx0ZXIsICJz
aW5rIiwgR1NUX1BBRF9MSU5LX0NIRUNLX05PVEhJTkcpOwotICAgICAgICBnc3RfZWxlbWVudF9s
aW5rX3BhZHNfZnVsbChjYXBzZmlsdGVyLCAic3JjIiwgYXVkaW9jb252ZXJ0LCAic2luayIsIEdT
VF9QQURfTElOS19DSEVDS19OT1RISU5HKTsKLSAgICAgICAgZ3N0X2VsZW1lbnRfbGlua19wYWRz
X2Z1bGwoYXVkaW9jb252ZXJ0LCAic3JjIiwgcHJpdi0+aW50ZXJsZWF2ZS5nZXQoKSwgMCwgR1NU
X1BBRF9MSU5LX0NIRUNLX05PVEhJTkcpOworICAgICAgICBnc3RfZWxlbWVudF9saW5rX3BhZHNf
ZnVsbChjYXBzZmlsdGVyLCAic3JjIiwgcHJpdi0+aW50ZXJsZWF2ZS5nZXQoKSwgInNpbmtfJXUi
LCBHU1RfUEFEX0xJTktfQ0hFQ0tfTk9USElORyk7CiAKICAgICB9CiAgICAgcHJpdi0+cGFkcyA9
IGdfc2xpc3RfcmV2ZXJzZShwcml2LT5wYWRzKTsKIAogICAgIC8vIHdhdmVuYydzIHNyYyBwYWQg
aXMgdGhlIG9ubHkgdmlzaWJsZSBwYWQgb2Ygb3VyIGVsZW1lbnQuCi0gICAgR1JlZlB0cjxHc3RQ
YWQ+IHRhcmdldFBhZCA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZChwcml2
LT53YXZFbmNvZGVyLmdldCgpLCAic3JjIikpOworICAgIEdSZWZQdHI8R3N0UGFkPiB0YXJnZXRQ
YWQgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQocHJpdi0+aW50ZXJsZWF2
ZS5nZXQoKSwgInNyYyIpKTsKICAgICBnc3RfZ2hvc3RfcGFkX3NldF90YXJnZXQoR1NUX0dIT1NU
X1BBRChwcml2LT5zb3VyY2VQYWQpLCB0YXJnZXRQYWQuZ2V0KCkpOwogfQogCkBAIC0zMjAsMjAg
KzMxNiwyOCBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJBdWRpb1NyY0xvb3AoV2ViS2l0V2ViQXVk
aW9TcmMqIHNyYykKIAogICAgIEFTU0VSVChwcml2LT5idXMpOwogICAgIEFTU0VSVChwcml2LT5w
cm92aWRlcik7Ci0gICAgaWYgKCFwcml2LT5wcm92aWRlciB8fCAhcHJpdi0+YnVzKQorICAgIGlm
ICghcHJpdi0+cHJvdmlkZXIgfHwgIXByaXYtPmJ1cykgeworICAgICAgICBnc3RfdGFza19wYXVz
ZShzcmMtPnByaXYtPnRhc2suZ2V0KCkpOwogICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
R3N0Q2xvY2tUaW1lIHRpbWVzdGFtcCA9IGdzdF91dGlsX3VpbnQ2NF9zY2FsZShwcml2LT5udW1T
YW1wbGVzLCBHU1RfU0VDT05ELCBwcml2LT5zYW1wbGVSYXRlKTsKKyAgICBwcml2LT5udW1TYW1w
bGVzICs9IHByaXYtPmZyYW1lc1RvUHVsbDsKKyAgICBHc3RDbG9ja1RpbWUgZHVyYXRpb24gPSBn
c3RfdXRpbF91aW50NjRfc2NhbGUocHJpdi0+bnVtU2FtcGxlcywgR1NUX1NFQ09ORCwgcHJpdi0+
c2FtcGxlUmF0ZSkgLSB0aW1lc3RhbXA7CiAKICAgICBHU0xpc3QqIGNoYW5uZWxCdWZmZXJMaXN0
ID0gMDsKICAgICByZWdpc3RlciBpbnQgaTsKICAgICB1bnNpZ25lZCBidWZmZXJTaXplID0gcHJp
di0+ZnJhbWVzVG9QdWxsICogc2l6ZW9mKGZsb2F0KTsKICAgICBmb3IgKGkgPSBnX3NsaXN0X2xl
bmd0aChwcml2LT5wYWRzKSAtIDE7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgIEF1ZGlvU3JjQnVm
ZmVyKiBidWZmZXIgPSBnX25ldyhBdWRpb1NyY0J1ZmZlciwgMSk7CiAgICAgICAgIEdzdEJ1ZmZl
ciogY2hhbm5lbEJ1ZmZlciA9IGdzdF9idWZmZXJfbmV3X2FuZF9hbGxvYyhidWZmZXJTaXplKTsK
ICAgICAgICAgQVNTRVJUKGNoYW5uZWxCdWZmZXIpOwotICAgICAgICBjaGFubmVsQnVmZmVyTGlz
dCA9IGdfc2xpc3RfcHJlcGVuZChjaGFubmVsQnVmZmVyTGlzdCwgY2hhbm5lbEJ1ZmZlcik7Ci0g
ICAgICAgIEdzdE1hcEluZm8gaW5mbzsKLSAgICAgICAgZ3N0X2J1ZmZlcl9tYXAoY2hhbm5lbEJ1
ZmZlciwgJmluZm8sIEdTVF9NQVBfUkVBRCk7Ci0gICAgICAgIHByaXYtPmJ1cy0+c2V0Q2hhbm5l
bE1lbW9yeShpLCByZWludGVycHJldF9jYXN0PGZsb2F0Kj4oaW5mby5kYXRhKSwgcHJpdi0+ZnJh
bWVzVG9QdWxsKTsKLSAgICAgICAgZ3N0X2J1ZmZlcl91bm1hcChjaGFubmVsQnVmZmVyLCAmaW5m
byk7CisgICAgICAgIGJ1ZmZlci0+YnVmZmVyID0gY2hhbm5lbEJ1ZmZlcjsKKyAgICAgICAgR1NU
X0JVRkZFUl9USU1FU1RBTVAoY2hhbm5lbEJ1ZmZlcikgPSB0aW1lc3RhbXA7CisgICAgICAgIEdT
VF9CVUZGRVJfRFVSQVRJT04oY2hhbm5lbEJ1ZmZlcikgPSBkdXJhdGlvbjsKKyAgICAgICAgZ3N0
X2J1ZmZlcl9tYXAoY2hhbm5lbEJ1ZmZlciwgJmJ1ZmZlci0+aW5mbywgKEdzdE1hcEZsYWdzKSBH
U1RfTUFQX1JFQURXUklURSk7CisgICAgICAgIHByaXYtPmJ1cy0+c2V0Q2hhbm5lbE1lbW9yeShp
LCByZWludGVycHJldF9jYXN0PGZsb2F0Kj4oYnVmZmVyLT5pbmZvLmRhdGEpLCBwcml2LT5mcmFt
ZXNUb1B1bGwpOworICAgICAgICBjaGFubmVsQnVmZmVyTGlzdCA9IGdfc2xpc3RfcHJlcGVuZChj
aGFubmVsQnVmZmVyTGlzdCwgYnVmZmVyKTsKICAgICB9CiAKICAgICAvLyBGSVhNRTogQWRkIHN1
cHBvcnQgZm9yIGxvY2FsL2xpdmUgYXVkaW8gaW5wdXQuCkBAIC0zNTAsNyArMzU0LDEyIEBAIHN0
YXRpYyB2b2lkIHdlYktpdFdlYkF1ZGlvU3JjTG9vcChXZWJLaXRXZWJBdWRpb1NyYyogc3JjKQog
CiAgICAgZm9yIChpID0gMDsgcGFkc0l0ICYmIGJ1ZmZlcnNJdDsgcGFkc0l0ID0gZ19zbGlzdF9u
ZXh0KHBhZHNJdCksIGJ1ZmZlcnNJdCA9IGdfc2xpc3RfbmV4dChidWZmZXJzSXQpLCArK2kpIHsK
ICAgICAgICAgR3N0UGFkKiBwYWQgPSBzdGF0aWNfY2FzdDxHc3RQYWQqPihwYWRzSXQtPmRhdGEp
OwotICAgICAgICBHc3RCdWZmZXIqIGNoYW5uZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxHc3RCdWZm
ZXIqPihidWZmZXJzSXQtPmRhdGEpOworICAgICAgICBBdWRpb1NyY0J1ZmZlciogYnVmZmVyID0g
c3RhdGljX2Nhc3Q8QXVkaW9TcmNCdWZmZXIqPihidWZmZXJzSXQtPmRhdGEpOworICAgICAgICBH
c3RCdWZmZXIqIGNoYW5uZWxCdWZmZXIgPSBidWZmZXItPmJ1ZmZlcjsKKworICAgICAgICAvLyBV
bm1hcCBiZWZvcmUgcGFzc2luZyBvbiB0aGUgYnVmZmVyCisgICAgICAgIGdzdF9idWZmZXJfdW5t
YXAoY2hhbm5lbEJ1ZmZlciwgJmJ1ZmZlci0+aW5mbyk7CisgICAgICAgIGdfZnJlZShidWZmZXIp
OwogCiAgICAgICAgIC8vIFNlbmQgc3RyZWFtLXN0YXJ0LCBzZWdtZW50IGFuZCBjYXBzIGV2ZW50
cyBkb3duc3RyZWFtLCBhbG9uZyB3aXRoIHRoZSBmaXJzdCBidWZmZXIuCiAgICAgICAgIGlmIChw
cml2LT5uZXdTdHJlYW1FdmVudFBlbmRpbmcpIHsKQEAgLTM3NSw4ICszODQsMTAgQEAgc3RhdGlj
IHZvaWQgd2ViS2l0V2ViQXVkaW9TcmNMb29wKFdlYktpdFdlYkF1ZGlvU3JjKiBzcmMpCiAgICAg
ICAgIH0KIAogICAgICAgICBHc3RGbG93UmV0dXJuIHJldCA9IGdzdF9wYWRfY2hhaW4ocGFkLCBj
aGFubmVsQnVmZmVyKTsKLSAgICAgICAgaWYgKHJldCAhPSBHU1RfRkxPV19PSykKKyAgICAgICAg
aWYgKHJldCAhPSBHU1RfRkxPV19PSykgewogICAgICAgICAgICAgR1NUX0VMRU1FTlRfRVJST1Io
c3JjLCBDT1JFLCBQQUQsICgiSW50ZXJuYWwgV2ViQXVkaW9TcmMgZXJyb3IiKSwgKCJGYWlsZWQg
dG8gcHVzaCBidWZmZXIgb24gJXM6JXMgZmxvdzogJXMiLCBHU1RfREVCVUdfUEFEX05BTUUocGFk
KSwgZ3N0X2Zsb3dfZ2V0X25hbWUocmV0KSkpOworICAgICAgICAgICAgZ3N0X3Rhc2tfcGF1c2Uo
c3JjLT5wcml2LT50YXNrLmdldCgpKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIHByaXYtPm5l
d1N0cmVhbUV2ZW50UGVuZGluZyA9IGZhbHNlOwpAQCAtMzk2LDExICs0MDcsNyBAQCBzdGF0aWMg
R3N0U3RhdGVDaGFuZ2VSZXR1cm4gd2ViS2l0V2ViQXVkaW9TcmNDaGFuZ2VTdGF0ZShHc3RFbGVt
ZW50KiBlbGVtZW50LCBHcwogICAgICAgICAgICAgR1NUX0VMRU1FTlRfRVJST1Ioc3JjLCBDT1JF
LCBNSVNTSU5HX1BMVUdJTiwgKDApLCAoIm5vIGludGVybGVhdmUiKSk7CiAgICAgICAgICAgICBy
ZXR1cm4gR1NUX1NUQVRFX0NIQU5HRV9GQUlMVVJFOwogICAgICAgICB9Ci0gICAgICAgIGlmICgh
c3JjLT5wcml2LT53YXZFbmNvZGVyKSB7Ci0gICAgICAgICAgICBnc3RfZWxlbWVudF9wb3N0X21l
c3NhZ2UoZWxlbWVudCwgZ3N0X21pc3NpbmdfZWxlbWVudF9tZXNzYWdlX25ldyhlbGVtZW50LCAi
d2F2ZW5jIikpOwotICAgICAgICAgICAgR1NUX0VMRU1FTlRfRVJST1Ioc3JjLCBDT1JFLCBNSVNT
SU5HX1BMVUdJTiwgKDApLCAoIm5vIHdhdmVuYyIpKTsKLSAgICAgICAgICAgIHJldHVybiBHU1Rf
U1RBVEVfQ0hBTkdFX0ZBSUxVUkU7Ci0gICAgICAgIH0KKyAgICAgICAgc3JjLT5wcml2LT5udW1T
YW1wbGVzID0gMDsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242763</attachid>
            <date>2014-12-07 11:52:59 -0800</date>
            <delta_ts>2014-12-08 00:31:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139370-20141207205423.patch</filename>
            <type>text/plain</type>
            <size>16605</size>
            <attacher name="Sebastian Dröge (slomo)">slomo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2OTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODMzOWQ3Y2ViOTVjMDRh
ZmMwNTVhMzFkNDY0ZjA3NTFjOGM2ZTk0MC4uNTQ1ODdkNTNiZGFlMTQyMjZmMmU2ODczZjdkMzgy
OWYyMTc4MzVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE0LTEyLTA3ICBTZWJh
c3RpYW4gRHLDtmdlICA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KKworICAgICAgICBbR1N0
cmVhbWVyXSBNYWpvciBjbGVhbnVwIG9mIEF1ZGlvRGVzdGluYXRpb24gaW1wbGVtZW50YXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTM3MAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZv
cm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6QXVkaW9EZXN0aW5hdGlvbkdT
dHJlYW1lcik6CisgICAgICAgIEFkZCBhbiBhdWRpb3Jlc2FtcGxlIGVsZW1lbnQgYmVmb3JlIHRo
ZSBhdWRpbyBzaW5rLiBUaGUgYXVkaW8gc2luaworICAgICAgICBtaWdodCBub3QgYmUgYWJsZSB0
byBoYW5kbGUgb3VyIHNhbXBsaW5nIHJhdGUuCisKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVz
dGluYXRpb25HU3RyZWFtZXI6OkF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6fkF1ZGlvRGVzdGluYXRpb25HU3Ry
ZWFtZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6c3Rv
cCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpmaW5pc2hC
dWlsZGluZ1BpcGVsaW5lQWZ0ZXJXYXZQYXJzZXJQYWRSZWFkeSk6IERlbGV0ZWQuCisgICAgICAg
IERvbid0IHVzZSBhIHdhdnBhcnNlIGVsZW1lbnQgYnV0IGRpcmVjdGx5IGxpbmsgdGhlIHJhdyBh
dWRpbyBmcm9tCisgICAgICAgIHRoZSBzb3VyY2UgdG8gdGhlIGF1ZGlvIHNpbmsuCisKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI6OnN0YXJ0KToKKyAgICAgICAg
Q2F0Y2ggZXJyb3JzIHdoZW4gZ29pbmcgdG8gUExBWUlORyBlYXJseSwgd2UgbWlnaHQgbm90IGdl
dCBhbiBlcnJvcgorICAgICAgICBtZXNzYWdlLgorCisgICAgICAgICogcGxhdGZvcm0vYXVkaW8v
Z3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwOgorICAg
ICAgICAoZ2V0R1N0cmVhbWVyTW9ub0F1ZGlvQ2Fwcyk6CisgICAgICAgICh3ZWJLaXRXZWJBdWRp
b1NyY0NvbnN0cnVjdGVkKToKKyAgICAgICAgKHdlYktpdFdlYkF1ZGlvU3JjQ2hhbmdlU3RhdGUp
OgorICAgICAgICBEb24ndCB1c2UgYSBXQVYgZW5jb2RlciBidXQgZGlyZWN0bHkgb3V0cHV0IHJh
dyBhdWRpby4gQWxzbyBkb24ndAorICAgICAgICBpbmNsdWRlIGEgdW5uZWVkZWQgYXVkaW9jb252
ZXJ0IGVsZW1lbnQgYmVmb3JlIHRoZSBpbnRlcmxlYXZlLgorCisgICAgICAgICh3ZWJLaXRXZWJB
dWRpb1NyY0xvb3ApOgorICAgICAgICBBZGQgdGltZXN0YW1wcyBhbmQgZHVyYXRpb25zIHRvIHRo
ZSBvdXRwdXQgYnVmZmVycywgbWFwIHRoZW0gaW4KKyAgICAgICAgUkVBRFdSSVRFIG1vZGUgYW5k
IGFjdHVhbGx5IGtlZXAgdGhlbSBtYXBwZWQgdW50aWwgd2UncmUgc3VyZQorICAgICAgICBub3Ro
aW5nIGlzIGFjdHVhbGx5IHdyaXRpbmcgaW50byB0aGVtLgorCisgICAgICAgICh3ZWJLaXRXZWJB
dWRpb1NyY0xvb3ApOgorICAgICAgICBQYXVzZSB0aGUgdGFzayBvbiBlcnJvcnMgaW5zdGVhZCBv
ZiBjb250aW51b3VzbHkgY2FsbGluZyBpdCBhZ2FpbgorICAgICAgICBpbW1lZGlhdGVseS4KKwog
MjAxNC0xMi0wNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW0dUS10gTWlzc2luZyBBUEkgZGV0ZWN0ZWQgaW4gR09iamVjdCBET00gYmluZGlu
Z3MgYWZ0ZXIgcjE3NjYzMApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3Bw
CmluZGV4IDI1ZGRjYjlmYTA1NzMzM2ViZDQ2NWVhZGM0NmQ0ZjMwOGNkYmI2ZDcuLmYyNGE0Mzll
MzQwNmJjYmQwYTgxODIyODZhZjgyNzY5Nzk5NjdhMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lci5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogIENvcHlyaWdodCAo
QykgMjAxMSwgMjAxMiBJZ2FsaWEgUy5MCisgKiAgQ29weXJpZ2h0IChDKSAyMDE0IFNlYmFzdGlh
biBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CiAgKgogICogIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CkBAIC04NywzOCArODgsMTAgQEAgQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6QXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lcihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJwcm92aWRlciIsICZtX2NhbGxiYWNrLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmcmFt
ZXMiLCBmcmFtZXNUb1B1bGwsIE5VTEwpKTsKIAotICAgIEdzdEVsZW1lbnQqIHdhdlBhcnNlciA9
IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgid2F2cGFyc2UiLCAwKTsKLQotICAgIG1fd2F2UGFy
c2VyQXZhaWxhYmxlID0gd2F2UGFyc2VyOwotICAgIEFTU0VSVF9XSVRIX01FU1NBR0UobV93YXZQ
YXJzZXJBdmFpbGFibGUsICJGYWlsZWQgdG8gY3JlYXRlIEdTdHJlYW1lciB3YXZwYXJzZSBlbGVt
ZW50Iik7Ci0gICAgaWYgKCFtX3dhdlBhcnNlckF2YWlsYWJsZSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgZ3N0X2Jpbl9hZGRfbWFueShHU1RfQklOKG1fcGlwZWxpbmUpLCB3ZWJraXRBdWRpb1Ny
Yywgd2F2UGFyc2VyLCBOVUxMKTsKLSAgICBnc3RfZWxlbWVudF9saW5rX3BhZHNfZnVsbCh3ZWJr
aXRBdWRpb1NyYywgInNyYyIsIHdhdlBhcnNlciwgInNpbmsiLCBHU1RfUEFEX0xJTktfQ0hFQ0tf
Tk9USElORyk7Ci0KLSAgICBHUmVmUHRyPEdzdFBhZD4gc3JjUGFkID0gYWRvcHRHUmVmKGdzdF9l
bGVtZW50X2dldF9zdGF0aWNfcGFkKHdhdlBhcnNlciwgInNyYyIpKTsKLSAgICBmaW5pc2hCdWls
ZGluZ1BpcGVsaW5lQWZ0ZXJXYXZQYXJzZXJQYWRSZWFkeShzcmNQYWQuZ2V0KCkpOwotfQotCi1B
dWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjp+QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcigpCi17
Ci0gICAgR1JlZlB0cjxHc3RCdXM+IGJ1cyA9IGFkb3B0R1JlZihnc3RfcGlwZWxpbmVfZ2V0X2J1
cyhHU1RfUElQRUxJTkUobV9waXBlbGluZSkpKTsKLSAgICBBU1NFUlQoYnVzKTsKLSAgICBnX3Np
Z25hbF9oYW5kbGVyc19kaXNjb25uZWN0X2J5X2Z1bmMoYnVzLmdldCgpLCByZWludGVycHJldF9j
YXN0PGdwb2ludGVyPihtZXNzYWdlQ2FsbGJhY2spLCB0aGlzKTsKLSAgICBnc3RfYnVzX3JlbW92
ZV9zaWduYWxfd2F0Y2goYnVzLmdldCgpKTsKLQotICAgIGdzdF9lbGVtZW50X3NldF9zdGF0ZSht
X3BpcGVsaW5lLCBHU1RfU1RBVEVfTlVMTCk7Ci0gICAgZ3N0X29iamVjdF91bnJlZihtX3BpcGVs
aW5lKTsKLX0KLQotdm9pZCBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpmaW5pc2hCdWlsZGlu
Z1BpcGVsaW5lQWZ0ZXJXYXZQYXJzZXJQYWRSZWFkeShHc3RQYWQqIHBhZCkKLXsKLSAgICBBU1NF
UlQobV93YXZQYXJzZXJBdmFpbGFibGUpOworICAgIEdSZWZQdHI8R3N0UGFkPiBzcmNQYWQgPSBh
ZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQod2Via2l0QXVkaW9TcmMsICJzcmMi
KSk7CiAKICAgICBHUmVmUHRyPEdzdEVsZW1lbnQ+IGF1ZGlvU2luayA9IGdzdF9lbGVtZW50X2Zh
Y3RvcnlfbWFrZSgiYXV0b2F1ZGlvc2luayIsIDApOwogICAgIG1fYXVkaW9TaW5rQXZhaWxhYmxl
ID0gYXVkaW9TaW5rOwotCiAgICAgaWYgKCFhdWRpb1NpbmspIHsKICAgICAgICAgTE9HX0VSUk9S
KCJGYWlsZWQgdG8gY3JlYXRlIEdTdHJlYW1lciBhdXRvYXVkaW9zaW5rIGVsZW1lbnQiKTsKICAg
ICAgICAgcmV0dXJuOwpAQCAtMTM2LDE2ICsxMDksMjcgQEAgdm9pZCBBdWRpb0Rlc3RpbmF0aW9u
R1N0cmVhbWVyOjpmaW5pc2hCdWlsZGluZ1BpcGVsaW5lQWZ0ZXJXYXZQYXJzZXJQYWRSZWFkeShH
c3QKICAgICB9CiAKICAgICBHc3RFbGVtZW50KiBhdWRpb0NvbnZlcnQgPSBnc3RfZWxlbWVudF9m
YWN0b3J5X21ha2UoImF1ZGlvY29udmVydCIsIDApOwotICAgIGdzdF9iaW5fYWRkX21hbnkoR1NU
X0JJTihtX3BpcGVsaW5lKSwgYXVkaW9Db252ZXJ0LCBhdWRpb1NpbmsuZ2V0KCksIE5VTEwpOwor
ICAgIEdzdEVsZW1lbnQqIGF1ZGlvUmVzYW1wbGUgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2Uo
ImF1ZGlvcmVzYW1wbGUiLCAwKTsKKyAgICBnc3RfYmluX2FkZF9tYW55KEdTVF9CSU4obV9waXBl
bGluZSksIHdlYmtpdEF1ZGlvU3JjLCBhdWRpb0NvbnZlcnQsIGF1ZGlvUmVzYW1wbGUsIGF1ZGlv
U2luay5nZXQoKSwgTlVMTCk7CiAKICAgICAvLyBMaW5rIHdhdnBhcnNlJ3Mgc3JjIHBhZCB0byBh
dWRpb2NvbnZlcnQgc2luayBwYWQuCiAgICAgR1JlZlB0cjxHc3RQYWQ+IHNpbmtQYWQgPSBhZG9w
dEdSZWYoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQoYXVkaW9Db252ZXJ0LCAic2luayIpKTsK
LSAgICBnc3RfcGFkX2xpbmtfZnVsbChwYWQsIHNpbmtQYWQuZ2V0KCksIEdTVF9QQURfTElOS19D
SEVDS19OT1RISU5HKTsKKyAgICBnc3RfcGFkX2xpbmtfZnVsbChzcmNQYWQuZ2V0KCksIHNpbmtQ
YWQuZ2V0KCksIEdTVF9QQURfTElOS19DSEVDS19OT1RISU5HKTsKIAogICAgIC8vIExpbmsgYXVk
aW9jb252ZXJ0IHRvIGF1ZGlvc2luayBhbmQgcm9sbCBzdGF0ZXMuCi0gICAgZ3N0X2VsZW1lbnRf
bGlua19wYWRzX2Z1bGwoYXVkaW9Db252ZXJ0LCAic3JjIiwgYXVkaW9TaW5rLmdldCgpLCAic2lu
ayIsIEdTVF9QQURfTElOS19DSEVDS19OT1RISU5HKTsKLSAgICBnc3RfZWxlbWVudF9zeW5jX3N0
YXRlX3dpdGhfcGFyZW50KGF1ZGlvQ29udmVydCk7Ci0gICAgZ3N0X2VsZW1lbnRfc3luY19zdGF0
ZV93aXRoX3BhcmVudChhdWRpb1NpbmsubGVha1JlZigpKTsKKyAgICBnc3RfZWxlbWVudF9saW5r
X3BhZHNfZnVsbChhdWRpb0NvbnZlcnQsICJzcmMiLCBhdWRpb1Jlc2FtcGxlLCAic2luayIsIEdT
VF9QQURfTElOS19DSEVDS19OT1RISU5HKTsKKyAgICBnc3RfZWxlbWVudF9saW5rX3BhZHNfZnVs
bChhdWRpb1Jlc2FtcGxlLCAic3JjIiwgYXVkaW9TaW5rLmdldCgpLCAic2luayIsIEdTVF9QQURf
TElOS19DSEVDS19OT1RISU5HKTsKK30KKworQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6fkF1
ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIoKQoreworICAgIEdSZWZQdHI8R3N0QnVzPiBidXMgPSBh
ZG9wdEdSZWYoZ3N0X3BpcGVsaW5lX2dldF9idXMoR1NUX1BJUEVMSU5FKG1fcGlwZWxpbmUpKSk7
CisgICAgQVNTRVJUKGJ1cyk7CisgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9m
dW5jKGJ1cy5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxncG9pbnRlcj4obWVzc2FnZUNhbGxiYWNr
KSwgdGhpcyk7CisgICAgZ3N0X2J1c19yZW1vdmVfc2lnbmFsX3dhdGNoKGJ1cy5nZXQoKSk7CisK
KyAgICBnc3RfZWxlbWVudF9zZXRfc3RhdGUobV9waXBlbGluZSwgR1NUX1NUQVRFX05VTEwpOwor
ICAgIGdzdF9vYmplY3RfdW5yZWYobV9waXBlbGluZSk7CiB9CiAKIGdib29sZWFuIEF1ZGlvRGVz
dGluYXRpb25HU3RyZWFtZXI6OmhhbmRsZU1lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkKQEAg
LTE3MiwxOCArMTU2LDIzIEBAIGdib29sZWFuIEF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI6Omhh
bmRsZU1lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkKIAogdm9pZCBBdWRpb0Rlc3RpbmF0aW9u
R1N0cmVhbWVyOjpzdGFydCgpCiB7Ci0gICAgQVNTRVJUKG1fd2F2UGFyc2VyQXZhaWxhYmxlKTsK
LSAgICBpZiAoIW1fd2F2UGFyc2VyQXZhaWxhYmxlKQorICAgIEFTU0VSVChtX2F1ZGlvU2lua0F2
YWlsYWJsZSk7CisgICAgaWYgKCFtX2F1ZGlvU2lua0F2YWlsYWJsZSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGlwZWxpbmUsIEdTVF9TVEFURV9QTEFZ
SU5HKTsKKyAgICBpZiAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGlwZWxpbmUsIEdTVF9TVEFU
RV9QTEFZSU5HKSA9PSBHU1RfU1RBVEVfQ0hBTkdFX0ZBSUxVUkUpIHsKKyAgICAgICAgZ193YXJu
aW5nKCJFcnJvcjogRmFpbGVkIHRvIHNldCBwaXBlbGluZSB0byBwbGF5aW5nIik7CisgICAgICAg
IG1faXNQbGF5aW5nID0gZmFsc2U7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBtX2lz
UGxheWluZyA9IHRydWU7CiB9CiAKIHZvaWQgQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6c3Rv
cCgpCiB7Ci0gICAgQVNTRVJUKG1fd2F2UGFyc2VyQXZhaWxhYmxlICYmIG1fYXVkaW9TaW5rQXZh
aWxhYmxlKTsKLSAgICBpZiAoIW1fd2F2UGFyc2VyQXZhaWxhYmxlIHx8ICFtX2F1ZGlvU2lua0F2
YWlsYWJsZSkKKyAgICBBU1NFUlQobV9hdWRpb1NpbmtBdmFpbGFibGUpOworICAgIGlmICghbV9h
dWRpb1NpbmtBdmFpbGFibGUpCiAgICAgICAgIHJldHVybjsKIAogICAgIGdzdF9lbGVtZW50X3Nl
dF9zdGF0ZShtX3BpcGVsaW5lLCBHU1RfU1RBVEVfUEFVU0VEKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVh
bWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lci5oCmluZGV4IDlkYzlhOWJlYWQ2ZDQ4NDNiOGM3ODFjNzc4YzQ5ZDY3
ZGFiODYwZjUuLmZhMDY2MjI1ZjUyZjA0ZTAwMjRjMjQwMTYwMGFjODQ2YWMyNTMzZjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3Rp
bmF0aW9uR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0
cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaApAQCAtNDEsNyArNDEsNiBAQCBwdWJs
aWM6CiAgICAgZmxvYXQgc2FtcGxlUmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2FtcGxlUmF0ZTsg
fQogICAgIEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2soKSBjb25zdCB7IHJldHVybiBtX2NhbGxi
YWNrOyB9CiAKLSAgICB2b2lkIGZpbmlzaEJ1aWxkaW5nUGlwZWxpbmVBZnRlcldhdlBhcnNlclBh
ZFJlYWR5KEdzdFBhZCopOwogICAgIGdib29sZWFuIGhhbmRsZU1lc3NhZ2UoR3N0TWVzc2FnZSop
OwogCiBwcml2YXRlOgpAQCAtNTAsNyArNDksNiBAQCBwcml2YXRlOgogCiAgICAgZmxvYXQgbV9z
YW1wbGVSYXRlOwogICAgIGJvb2wgbV9pc1BsYXlpbmc7Ci0gICAgYm9vbCBtX3dhdlBhcnNlckF2
YWlsYWJsZTsKICAgICBib29sIG1fYXVkaW9TaW5rQXZhaWxhYmxlOwogICAgIEdzdEVsZW1lbnQq
IG1fcGlwZWxpbmU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJl
YW1lci5jcHAKaW5kZXggNDhkZGVlNTgwZDNiZWE5YWIwNmVlMWZkYzQ3MTY4MzExMzU3YjY2Mi4u
ODRmOTM0MWYwYTAyNGU3N2E5ZGYzODMxZDQ3NWUxZWZlMmMxMTgzNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNl
R1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFt
ZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoK
ICAqICBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIgSWdhbGlhIFMuTAorICogIENvcHlyaWdodCAo
QykgMjAxNCBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgogICoK
ICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYwpAQCAtNTMsNyArNTQsNiBAQCBzdHJ1Y3QgX1dlYktpdFdlYkF1ZGlv
U291cmNlUHJpdmF0ZSB7CiAgICAgZ3VpbnQgZnJhbWVzVG9QdWxsOwogCiAgICAgR1JlZlB0cjxH
c3RFbGVtZW50PiBpbnRlcmxlYXZlOwotICAgIEdSZWZQdHI8R3N0RWxlbWVudD4gd2F2RW5jb2Rl
cjsKIAogICAgIEdSZWZQdHI8R3N0VGFzaz4gdGFzazsKICAgICBHUmVjTXV0ZXggbXV0ZXg7CkBA
IC02Myw2ICs2Myw3IEBAIHN0cnVjdCBfV2ViS2l0V2ViQXVkaW9Tb3VyY2VQcml2YXRlIHsKIAog
ICAgIGJvb2wgbmV3U3RyZWFtRXZlbnRQZW5kaW5nOwogICAgIEdzdFNlZ21lbnQgc2VnbWVudDsK
KyAgICBndWludDY0IG51bVNhbXBsZXM7CiB9OwogCiBlbnVtIHsKQEAgLTcyLDEwICs3MywxNSBA
QCBlbnVtIHsKICAgICBQUk9QX0ZSQU1FUwogfTsKIAordHlwZWRlZiBzdHJ1Y3QgeworICAgIEdz
dEJ1ZmZlciogYnVmZmVyOworICAgIEdzdE1hcEluZm8gaW5mbzsKK30gQXVkaW9TcmNCdWZmZXI7
CisKIHN0YXRpYyBHc3RTdGF0aWNQYWRUZW1wbGF0ZSBzcmNUZW1wbGF0ZSA9IEdTVF9TVEFUSUNf
UEFEX1RFTVBMQVRFKCJzcmMiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1NUX1BBRF9TUkMsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHU1Rf
UEFEX0FMV0FZUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdTVF9TVEFUSUNfQ0FQUygiYXVkaW8veC13YXYiKSk7Cisg
ICAgR1NUX1BBRF9TUkMsCisgICAgR1NUX1BBRF9BTFdBWVMsCisgICAgR1NUX1NUQVRJQ19DQVBT
KEdTVF9BVURJT19DQVBTX01BS0UoR1NUX0FVRElPX05FKEYzMikpKSk7CiAKIEdTVF9ERUJVR19D
QVRFR09SWV9TVEFUSUMod2Via2l0X3dlYl9hdWRpb19zcmNfZGVidWcpOwogI2RlZmluZSBHU1Rf
Q0FUX0RFRkFVTFQgd2Via2l0X3dlYl9hdWRpb19zcmNfZGVidWcKQEAgLTkxLDcgKzk3LDcgQEAg
c3RhdGljIEdzdENhcHMqIGdldEdTdHJlYW1lck1vbm9BdWRpb0NhcHMoZmxvYXQgc2FtcGxlUmF0
ZSkKIHsKICAgICByZXR1cm4gZ3N0X2NhcHNfbmV3X3NpbXBsZSgiYXVkaW8veC1yYXciLCAicmF0
ZSIsIEdfVFlQRV9JTlQsIHN0YXRpY19jYXN0PGludD4oc2FtcGxlUmF0ZSksCiAgICAgICAgICJj
aGFubmVscyIsIEdfVFlQRV9JTlQsIDEsCi0gICAgICAgICJmb3JtYXQiLCBHX1RZUEVfU1RSSU5H
LCBnc3RfYXVkaW9fZm9ybWF0X3RvX3N0cmluZyhHU1RfQVVESU9fRk9STUFUX0YzMiksCisgICAg
ICAgICJmb3JtYXQiLCBHX1RZUEVfU1RSSU5HLCBHU1RfQVVESU9fTkUoRjMyKSwKICAgICAgICAg
ImxheW91dCIsIEdfVFlQRV9TVFJJTkcsICJpbnRlcmxlYXZlZCIsIG51bGxwdHIpOwogfQogCkBA
IC0yMDMsMjggKzIwOSwyMCBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJBdWRpb1NyY0NvbnN0cnVj
dGVkKEdPYmplY3QqIG9iamVjdCkKICAgICBBU1NFUlQocHJpdi0+c2FtcGxlUmF0ZSk7CiAKICAg
ICBwcml2LT5pbnRlcmxlYXZlID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJpbnRlcmxlYXZl
IiwgMCk7Ci0gICAgcHJpdi0+d2F2RW5jb2RlciA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgi
d2F2ZW5jIiwgMCk7CiAKICAgICBpZiAoIXByaXYtPmludGVybGVhdmUpIHsKICAgICAgICAgR1NU
X0VSUk9SX09CSkVDVChzcmMsICJGYWlsZWQgdG8gY3JlYXRlIGludGVybGVhdmUiKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghcHJpdi0+d2F2RW5jb2RlcikgewotICAgICAg
ICBHU1RfRVJST1JfT0JKRUNUKHNyYywgIkZhaWxlZCB0byBjcmVhdGUgd2F2ZW5jIik7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBnc3RfYmluX2FkZF9tYW55KEdTVF9CSU4oc3JjKSwg
cHJpdi0+aW50ZXJsZWF2ZS5nZXQoKSwgcHJpdi0+d2F2RW5jb2Rlci5nZXQoKSwgTlVMTCk7Ci0g
ICAgZ3N0X2VsZW1lbnRfbGlua19wYWRzX2Z1bGwocHJpdi0+aW50ZXJsZWF2ZS5nZXQoKSwgInNy
YyIsIHByaXYtPndhdkVuY29kZXIuZ2V0KCksICJzaW5rIiwgR1NUX1BBRF9MSU5LX0NIRUNLX05P
VEhJTkcpOworICAgIGdzdF9iaW5fYWRkKEdTVF9CSU4oc3JjKSwgcHJpdi0+aW50ZXJsZWF2ZS5n
ZXQoKSk7CiAKICAgICAvLyBGb3IgZWFjaCBjaGFubmVsIG9mIHRoZSBidXMgY3JlYXRlIGEgbmV3
IHVwc3RyZWFtIGJyYW5jaCBmb3IgaW50ZXJsZWF2ZSwgbGlrZToKLSAgICAvLyBxdWV1ZSAhIGNh
cHNmaWx0ZXIgISBhdWRpb2NvbnZlcnQuIHdoaWNoIGlzIHBsdWdnZWQgdG8gYSBuZXcgaW50ZXJs
ZWF2ZSByZXF1ZXN0IHNpbmtwYWQuCisgICAgLy8gcXVldWUgISBjYXBzZmlsdGVyLiB3aGljaCBp
cyBwbHVnZ2VkIHRvIGEgbmV3IGludGVybGVhdmUgcmVxdWVzdCBzaW5rcGFkLgogICAgIGZvciAo
dW5zaWduZWQgY2hhbm5lbEluZGV4ID0gMDsgY2hhbm5lbEluZGV4IDwgcHJpdi0+YnVzLT5udW1i
ZXJPZkNoYW5uZWxzKCk7IGNoYW5uZWxJbmRleCsrKSB7CiAgICAgICAgIEdVbmlxdWVQdHI8Z2No
YXI+IHF1ZXVlTmFtZShnX3N0cmR1cF9wcmludGYoIndlYmF1ZGlvUXVldWUldSIsIGNoYW5uZWxJ
bmRleCkpOwogICAgICAgICBHc3RFbGVtZW50KiBxdWV1ZSA9IGdzdF9lbGVtZW50X2ZhY3Rvcnlf
bWFrZSgicXVldWUiLCBxdWV1ZU5hbWUuZ2V0KCkpOwogICAgICAgICBHc3RFbGVtZW50KiBjYXBz
ZmlsdGVyID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJjYXBzZmlsdGVyIiwgMCk7Ci0gICAg
ICAgIEdzdEVsZW1lbnQqIGF1ZGlvY29udmVydCA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgi
YXVkaW9jb252ZXJ0IiwgMCk7CiAKICAgICAgICAgR1JlZlB0cjxHc3RDYXBzPiBtb25vQ2FwcyA9
IGFkb3B0R1JlZihnZXRHU3RyZWFtZXJNb25vQXVkaW9DYXBzKHByaXYtPnNhbXBsZVJhdGUpKTsK
IApAQCAtMjQwLDE2ICsyMzgsMTUgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViQXVkaW9TcmNDb25z
dHJ1Y3RlZChHT2JqZWN0KiBvYmplY3QpCiAgICAgICAgIEdzdFBhZCogcGFkID0gZ3N0X2VsZW1l
bnRfZ2V0X3N0YXRpY19wYWQocXVldWUsICJzaW5rIik7CiAgICAgICAgIHByaXYtPnBhZHMgPSBn
X3NsaXN0X3ByZXBlbmQocHJpdi0+cGFkcywgcGFkKTsKIAotICAgICAgICBnc3RfYmluX2FkZF9t
YW55KEdTVF9CSU4oc3JjKSwgcXVldWUsIGNhcHNmaWx0ZXIsIGF1ZGlvY29udmVydCwgTlVMTCk7
CisgICAgICAgIGdzdF9iaW5fYWRkX21hbnkoR1NUX0JJTihzcmMpLCBxdWV1ZSwgY2Fwc2ZpbHRl
ciwgTlVMTCk7CiAgICAgICAgIGdzdF9lbGVtZW50X2xpbmtfcGFkc19mdWxsKHF1ZXVlLCAic3Jj
IiwgY2Fwc2ZpbHRlciwgInNpbmsiLCBHU1RfUEFEX0xJTktfQ0hFQ0tfTk9USElORyk7Ci0gICAg
ICAgIGdzdF9lbGVtZW50X2xpbmtfcGFkc19mdWxsKGNhcHNmaWx0ZXIsICJzcmMiLCBhdWRpb2Nv
bnZlcnQsICJzaW5rIiwgR1NUX1BBRF9MSU5LX0NIRUNLX05PVEhJTkcpOwotICAgICAgICBnc3Rf
ZWxlbWVudF9saW5rX3BhZHNfZnVsbChhdWRpb2NvbnZlcnQsICJzcmMiLCBwcml2LT5pbnRlcmxl
YXZlLmdldCgpLCAwLCBHU1RfUEFEX0xJTktfQ0hFQ0tfTk9USElORyk7CisgICAgICAgIGdzdF9l
bGVtZW50X2xpbmtfcGFkc19mdWxsKGNhcHNmaWx0ZXIsICJzcmMiLCBwcml2LT5pbnRlcmxlYXZl
LmdldCgpLCAic2lua18ldSIsIEdTVF9QQURfTElOS19DSEVDS19OT1RISU5HKTsKIAogICAgIH0K
ICAgICBwcml2LT5wYWRzID0gZ19zbGlzdF9yZXZlcnNlKHByaXYtPnBhZHMpOwogCiAgICAgLy8g
d2F2ZW5jJ3Mgc3JjIHBhZCBpcyB0aGUgb25seSB2aXNpYmxlIHBhZCBvZiBvdXIgZWxlbWVudC4K
LSAgICBHUmVmUHRyPEdzdFBhZD4gdGFyZ2V0UGFkID0gYWRvcHRHUmVmKGdzdF9lbGVtZW50X2dl
dF9zdGF0aWNfcGFkKHByaXYtPndhdkVuY29kZXIuZ2V0KCksICJzcmMiKSk7CisgICAgR1JlZlB0
cjxHc3RQYWQ+IHRhcmdldFBhZCA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9nZXRfc3RhdGljX3Bh
ZChwcml2LT5pbnRlcmxlYXZlLmdldCgpLCAic3JjIikpOwogICAgIGdzdF9naG9zdF9wYWRfc2V0
X3RhcmdldChHU1RfR0hPU1RfUEFEKHByaXYtPnNvdXJjZVBhZCksIHRhcmdldFBhZC5nZXQoKSk7
CiB9CiAKQEAgLTMyMCwyMCArMzE3LDI4IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYkF1ZGlvU3Jj
TG9vcChXZWJLaXRXZWJBdWRpb1NyYyogc3JjKQogCiAgICAgQVNTRVJUKHByaXYtPmJ1cyk7CiAg
ICAgQVNTRVJUKHByaXYtPnByb3ZpZGVyKTsKLSAgICBpZiAoIXByaXYtPnByb3ZpZGVyIHx8ICFw
cml2LT5idXMpCisgICAgaWYgKCFwcml2LT5wcm92aWRlciB8fCAhcHJpdi0+YnVzKSB7CisgICAg
ICAgIGdzdF90YXNrX3BhdXNlKHNyYy0+cHJpdi0+dGFzay5nZXQoKSk7CiAgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBHc3RDbG9ja1RpbWUgdGltZXN0YW1wID0gZ3N0X3V0aWxfdWludDY0
X3NjYWxlKHByaXYtPm51bVNhbXBsZXMsIEdTVF9TRUNPTkQsIHByaXYtPnNhbXBsZVJhdGUpOwor
ICAgIHByaXYtPm51bVNhbXBsZXMgKz0gcHJpdi0+ZnJhbWVzVG9QdWxsOworICAgIEdzdENsb2Nr
VGltZSBkdXJhdGlvbiA9IGdzdF91dGlsX3VpbnQ2NF9zY2FsZShwcml2LT5udW1TYW1wbGVzLCBH
U1RfU0VDT05ELCBwcml2LT5zYW1wbGVSYXRlKSAtIHRpbWVzdGFtcDsKIAogICAgIEdTTGlzdCog
Y2hhbm5lbEJ1ZmZlckxpc3QgPSAwOwogICAgIHJlZ2lzdGVyIGludCBpOwogICAgIHVuc2lnbmVk
IGJ1ZmZlclNpemUgPSBwcml2LT5mcmFtZXNUb1B1bGwgKiBzaXplb2YoZmxvYXQpOwogICAgIGZv
ciAoaSA9IGdfc2xpc3RfbGVuZ3RoKHByaXYtPnBhZHMpIC0gMTsgaSA+PSAwOyBpLS0pIHsKKyAg
ICAgICAgQXVkaW9TcmNCdWZmZXIqIGJ1ZmZlciA9IGdfbmV3KEF1ZGlvU3JjQnVmZmVyLCAxKTsK
ICAgICAgICAgR3N0QnVmZmVyKiBjaGFubmVsQnVmZmVyID0gZ3N0X2J1ZmZlcl9uZXdfYW5kX2Fs
bG9jKGJ1ZmZlclNpemUpOwogICAgICAgICBBU1NFUlQoY2hhbm5lbEJ1ZmZlcik7Ci0gICAgICAg
IGNoYW5uZWxCdWZmZXJMaXN0ID0gZ19zbGlzdF9wcmVwZW5kKGNoYW5uZWxCdWZmZXJMaXN0LCBj
aGFubmVsQnVmZmVyKTsKLSAgICAgICAgR3N0TWFwSW5mbyBpbmZvOwotICAgICAgICBnc3RfYnVm
ZmVyX21hcChjaGFubmVsQnVmZmVyLCAmaW5mbywgR1NUX01BUF9SRUFEKTsKLSAgICAgICAgcHJp
di0+YnVzLT5zZXRDaGFubmVsTWVtb3J5KGksIHJlaW50ZXJwcmV0X2Nhc3Q8ZmxvYXQqPihpbmZv
LmRhdGEpLCBwcml2LT5mcmFtZXNUb1B1bGwpOwotICAgICAgICBnc3RfYnVmZmVyX3VubWFwKGNo
YW5uZWxCdWZmZXIsICZpbmZvKTsKKyAgICAgICAgYnVmZmVyLT5idWZmZXIgPSBjaGFubmVsQnVm
ZmVyOworICAgICAgICBHU1RfQlVGRkVSX1RJTUVTVEFNUChjaGFubmVsQnVmZmVyKSA9IHRpbWVz
dGFtcDsKKyAgICAgICAgR1NUX0JVRkZFUl9EVVJBVElPTihjaGFubmVsQnVmZmVyKSA9IGR1cmF0
aW9uOworICAgICAgICBnc3RfYnVmZmVyX21hcChjaGFubmVsQnVmZmVyLCAmYnVmZmVyLT5pbmZv
LCAoR3N0TWFwRmxhZ3MpIEdTVF9NQVBfUkVBRFdSSVRFKTsKKyAgICAgICAgcHJpdi0+YnVzLT5z
ZXRDaGFubmVsTWVtb3J5KGksIHJlaW50ZXJwcmV0X2Nhc3Q8ZmxvYXQqPihidWZmZXItPmluZm8u
ZGF0YSksIHByaXYtPmZyYW1lc1RvUHVsbCk7CisgICAgICAgIGNoYW5uZWxCdWZmZXJMaXN0ID0g
Z19zbGlzdF9wcmVwZW5kKGNoYW5uZWxCdWZmZXJMaXN0LCBidWZmZXIpOwogICAgIH0KIAogICAg
IC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgbG9jYWwvbGl2ZSBhdWRpbyBpbnB1dC4KQEAgLTM1
MCw3ICszNTUsMTIgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViQXVkaW9TcmNMb29wKFdlYktpdFdl
YkF1ZGlvU3JjKiBzcmMpCiAKICAgICBmb3IgKGkgPSAwOyBwYWRzSXQgJiYgYnVmZmVyc0l0OyBw
YWRzSXQgPSBnX3NsaXN0X25leHQocGFkc0l0KSwgYnVmZmVyc0l0ID0gZ19zbGlzdF9uZXh0KGJ1
ZmZlcnNJdCksICsraSkgewogICAgICAgICBHc3RQYWQqIHBhZCA9IHN0YXRpY19jYXN0PEdzdFBh
ZCo+KHBhZHNJdC0+ZGF0YSk7Ci0gICAgICAgIEdzdEJ1ZmZlciogY2hhbm5lbEJ1ZmZlciA9IHN0
YXRpY19jYXN0PEdzdEJ1ZmZlcio+KGJ1ZmZlcnNJdC0+ZGF0YSk7CisgICAgICAgIEF1ZGlvU3Jj
QnVmZmVyKiBidWZmZXIgPSBzdGF0aWNfY2FzdDxBdWRpb1NyY0J1ZmZlcio+KGJ1ZmZlcnNJdC0+
ZGF0YSk7CisgICAgICAgIEdzdEJ1ZmZlciogY2hhbm5lbEJ1ZmZlciA9IGJ1ZmZlci0+YnVmZmVy
OworCisgICAgICAgIC8vIFVubWFwIGJlZm9yZSBwYXNzaW5nIG9uIHRoZSBidWZmZXIKKyAgICAg
ICAgZ3N0X2J1ZmZlcl91bm1hcChjaGFubmVsQnVmZmVyLCAmYnVmZmVyLT5pbmZvKTsKKyAgICAg
ICAgZ19mcmVlKGJ1ZmZlcik7CiAKICAgICAgICAgLy8gU2VuZCBzdHJlYW0tc3RhcnQsIHNlZ21l
bnQgYW5kIGNhcHMgZXZlbnRzIGRvd25zdHJlYW0sIGFsb25nIHdpdGggdGhlIGZpcnN0IGJ1ZmZl
ci4KICAgICAgICAgaWYgKHByaXYtPm5ld1N0cmVhbUV2ZW50UGVuZGluZykgewpAQCAtMzc1LDgg
KzM4NSwxMCBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJBdWRpb1NyY0xvb3AoV2ViS2l0V2ViQXVk
aW9TcmMqIHNyYykKICAgICAgICAgfQogCiAgICAgICAgIEdzdEZsb3dSZXR1cm4gcmV0ID0gZ3N0
X3BhZF9jaGFpbihwYWQsIGNoYW5uZWxCdWZmZXIpOwotICAgICAgICBpZiAocmV0ICE9IEdTVF9G
TE9XX09LKQorICAgICAgICBpZiAocmV0ICE9IEdTVF9GTE9XX09LKSB7CiAgICAgICAgICAgICBH
U1RfRUxFTUVOVF9FUlJPUihzcmMsIENPUkUsIFBBRCwgKCJJbnRlcm5hbCBXZWJBdWRpb1NyYyBl
cnJvciIpLCAoIkZhaWxlZCB0byBwdXNoIGJ1ZmZlciBvbiAlczolcyBmbG93OiAlcyIsIEdTVF9E
RUJVR19QQURfTkFNRShwYWQpLCBnc3RfZmxvd19nZXRfbmFtZShyZXQpKSk7CisgICAgICAgICAg
ICBnc3RfdGFza19wYXVzZShzcmMtPnByaXYtPnRhc2suZ2V0KCkpOworICAgICAgICB9CiAgICAg
fQogCiAgICAgcHJpdi0+bmV3U3RyZWFtRXZlbnRQZW5kaW5nID0gZmFsc2U7CkBAIC0zOTYsMTEg
KzQwOCw3IEBAIHN0YXRpYyBHc3RTdGF0ZUNoYW5nZVJldHVybiB3ZWJLaXRXZWJBdWRpb1NyY0No
YW5nZVN0YXRlKEdzdEVsZW1lbnQqIGVsZW1lbnQsIEdzCiAgICAgICAgICAgICBHU1RfRUxFTUVO
VF9FUlJPUihzcmMsIENPUkUsIE1JU1NJTkdfUExVR0lOLCAoMCksICgibm8gaW50ZXJsZWF2ZSIp
KTsKICAgICAgICAgICAgIHJldHVybiBHU1RfU1RBVEVfQ0hBTkdFX0ZBSUxVUkU7CiAgICAgICAg
IH0KLSAgICAgICAgaWYgKCFzcmMtPnByaXYtPndhdkVuY29kZXIpIHsKLSAgICAgICAgICAgIGdz
dF9lbGVtZW50X3Bvc3RfbWVzc2FnZShlbGVtZW50LCBnc3RfbWlzc2luZ19lbGVtZW50X21lc3Nh
Z2VfbmV3KGVsZW1lbnQsICJ3YXZlbmMiKSk7Ci0gICAgICAgICAgICBHU1RfRUxFTUVOVF9FUlJP
UihzcmMsIENPUkUsIE1JU1NJTkdfUExVR0lOLCAoMCksICgibm8gd2F2ZW5jIikpOwotICAgICAg
ICAgICAgcmV0dXJuIEdTVF9TVEFURV9DSEFOR0VfRkFJTFVSRTsKLSAgICAgICAgfQorICAgICAg
ICBzcmMtPnByaXYtPm51bVNhbXBsZXMgPSAwOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0
OgogICAgICAgICBicmVhazsK
</data>
<flag name="review"
          id="267655"
          type_id="1"
          status="+"
          setter="pnormand"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242767</attachid>
            <date>2014-12-07 13:17:29 -0800</date>
            <delta_ts>2014-12-08 00:54:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139370-20141207221852.patch</filename>
            <type>text/plain</type>
            <size>16606</size>
            <attacher name="Sebastian Dröge (slomo)">slomo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2OTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODMzOWQ3Y2ViOTVjMDRh
ZmMwNTVhMzFkNDY0ZjA3NTFjOGM2ZTk0MC4uNTQ1ODdkNTNiZGFlMTQyMjZmMmU2ODczZjdkMzgy
OWYyMTc4MzVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE0LTEyLTA3ICBTZWJh
c3RpYW4gRHLDtmdlICA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KKworICAgICAgICBbR1N0
cmVhbWVyXSBNYWpvciBjbGVhbnVwIG9mIEF1ZGlvRGVzdGluYXRpb24gaW1wbGVtZW50YXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTM3MAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZv
cm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6QXVkaW9EZXN0aW5hdGlvbkdT
dHJlYW1lcik6CisgICAgICAgIEFkZCBhbiBhdWRpb3Jlc2FtcGxlIGVsZW1lbnQgYmVmb3JlIHRo
ZSBhdWRpbyBzaW5rLiBUaGUgYXVkaW8gc2luaworICAgICAgICBtaWdodCBub3QgYmUgYWJsZSB0
byBoYW5kbGUgb3VyIHNhbXBsaW5nIHJhdGUuCisKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVz
dGluYXRpb25HU3RyZWFtZXI6OkF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6fkF1ZGlvRGVzdGluYXRpb25HU3Ry
ZWFtZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6c3Rv
cCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpmaW5pc2hC
dWlsZGluZ1BpcGVsaW5lQWZ0ZXJXYXZQYXJzZXJQYWRSZWFkeSk6IERlbGV0ZWQuCisgICAgICAg
IERvbid0IHVzZSBhIHdhdnBhcnNlIGVsZW1lbnQgYnV0IGRpcmVjdGx5IGxpbmsgdGhlIHJhdyBh
dWRpbyBmcm9tCisgICAgICAgIHRoZSBzb3VyY2UgdG8gdGhlIGF1ZGlvIHNpbmsuCisKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI6OnN0YXJ0KToKKyAgICAgICAg
Q2F0Y2ggZXJyb3JzIHdoZW4gZ29pbmcgdG8gUExBWUlORyBlYXJseSwgd2UgbWlnaHQgbm90IGdl
dCBhbiBlcnJvcgorICAgICAgICBtZXNzYWdlLgorCisgICAgICAgICogcGxhdGZvcm0vYXVkaW8v
Z3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwOgorICAg
ICAgICAoZ2V0R1N0cmVhbWVyTW9ub0F1ZGlvQ2Fwcyk6CisgICAgICAgICh3ZWJLaXRXZWJBdWRp
b1NyY0NvbnN0cnVjdGVkKToKKyAgICAgICAgKHdlYktpdFdlYkF1ZGlvU3JjQ2hhbmdlU3RhdGUp
OgorICAgICAgICBEb24ndCB1c2UgYSBXQVYgZW5jb2RlciBidXQgZGlyZWN0bHkgb3V0cHV0IHJh
dyBhdWRpby4gQWxzbyBkb24ndAorICAgICAgICBpbmNsdWRlIGEgdW5uZWVkZWQgYXVkaW9jb252
ZXJ0IGVsZW1lbnQgYmVmb3JlIHRoZSBpbnRlcmxlYXZlLgorCisgICAgICAgICh3ZWJLaXRXZWJB
dWRpb1NyY0xvb3ApOgorICAgICAgICBBZGQgdGltZXN0YW1wcyBhbmQgZHVyYXRpb25zIHRvIHRo
ZSBvdXRwdXQgYnVmZmVycywgbWFwIHRoZW0gaW4KKyAgICAgICAgUkVBRFdSSVRFIG1vZGUgYW5k
IGFjdHVhbGx5IGtlZXAgdGhlbSBtYXBwZWQgdW50aWwgd2UncmUgc3VyZQorICAgICAgICBub3Ro
aW5nIGlzIGFjdHVhbGx5IHdyaXRpbmcgaW50byB0aGVtLgorCisgICAgICAgICh3ZWJLaXRXZWJB
dWRpb1NyY0xvb3ApOgorICAgICAgICBQYXVzZSB0aGUgdGFzayBvbiBlcnJvcnMgaW5zdGVhZCBv
ZiBjb250aW51b3VzbHkgY2FsbGluZyBpdCBhZ2FpbgorICAgICAgICBpbW1lZGlhdGVseS4KKwog
MjAxNC0xMi0wNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW0dUS10gTWlzc2luZyBBUEkgZGV0ZWN0ZWQgaW4gR09iamVjdCBET00gYmluZGlu
Z3MgYWZ0ZXIgcjE3NjYzMApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3Bw
CmluZGV4IDI1ZGRjYjlmYTA1NzMzM2ViZDQ2NWVhZGM0NmQ0ZjMwOGNkYmI2ZDcuLmYyNGE0Mzll
MzQwNmJjYmQwYTgxODIyODZhZjgyNzY5Nzk5NjdhMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lci5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogIENvcHlyaWdodCAo
QykgMjAxMSwgMjAxMiBJZ2FsaWEgUy5MCisgKiAgQ29weXJpZ2h0IChDKSAyMDE0IFNlYmFzdGlh
biBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CiAgKgogICogIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CkBAIC04NywzOCArODgsMTAgQEAgQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6QXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lcihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJwcm92aWRlciIsICZtX2NhbGxiYWNrLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmcmFt
ZXMiLCBmcmFtZXNUb1B1bGwsIE5VTEwpKTsKIAotICAgIEdzdEVsZW1lbnQqIHdhdlBhcnNlciA9
IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgid2F2cGFyc2UiLCAwKTsKLQotICAgIG1fd2F2UGFy
c2VyQXZhaWxhYmxlID0gd2F2UGFyc2VyOwotICAgIEFTU0VSVF9XSVRIX01FU1NBR0UobV93YXZQ
YXJzZXJBdmFpbGFibGUsICJGYWlsZWQgdG8gY3JlYXRlIEdTdHJlYW1lciB3YXZwYXJzZSBlbGVt
ZW50Iik7Ci0gICAgaWYgKCFtX3dhdlBhcnNlckF2YWlsYWJsZSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgZ3N0X2Jpbl9hZGRfbWFueShHU1RfQklOKG1fcGlwZWxpbmUpLCB3ZWJraXRBdWRpb1Ny
Yywgd2F2UGFyc2VyLCBOVUxMKTsKLSAgICBnc3RfZWxlbWVudF9saW5rX3BhZHNfZnVsbCh3ZWJr
aXRBdWRpb1NyYywgInNyYyIsIHdhdlBhcnNlciwgInNpbmsiLCBHU1RfUEFEX0xJTktfQ0hFQ0tf
Tk9USElORyk7Ci0KLSAgICBHUmVmUHRyPEdzdFBhZD4gc3JjUGFkID0gYWRvcHRHUmVmKGdzdF9l
bGVtZW50X2dldF9zdGF0aWNfcGFkKHdhdlBhcnNlciwgInNyYyIpKTsKLSAgICBmaW5pc2hCdWls
ZGluZ1BpcGVsaW5lQWZ0ZXJXYXZQYXJzZXJQYWRSZWFkeShzcmNQYWQuZ2V0KCkpOwotfQotCi1B
dWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjp+QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcigpCi17
Ci0gICAgR1JlZlB0cjxHc3RCdXM+IGJ1cyA9IGFkb3B0R1JlZihnc3RfcGlwZWxpbmVfZ2V0X2J1
cyhHU1RfUElQRUxJTkUobV9waXBlbGluZSkpKTsKLSAgICBBU1NFUlQoYnVzKTsKLSAgICBnX3Np
Z25hbF9oYW5kbGVyc19kaXNjb25uZWN0X2J5X2Z1bmMoYnVzLmdldCgpLCByZWludGVycHJldF9j
YXN0PGdwb2ludGVyPihtZXNzYWdlQ2FsbGJhY2spLCB0aGlzKTsKLSAgICBnc3RfYnVzX3JlbW92
ZV9zaWduYWxfd2F0Y2goYnVzLmdldCgpKTsKLQotICAgIGdzdF9lbGVtZW50X3NldF9zdGF0ZSht
X3BpcGVsaW5lLCBHU1RfU1RBVEVfTlVMTCk7Ci0gICAgZ3N0X29iamVjdF91bnJlZihtX3BpcGVs
aW5lKTsKLX0KLQotdm9pZCBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpmaW5pc2hCdWlsZGlu
Z1BpcGVsaW5lQWZ0ZXJXYXZQYXJzZXJQYWRSZWFkeShHc3RQYWQqIHBhZCkKLXsKLSAgICBBU1NF
UlQobV93YXZQYXJzZXJBdmFpbGFibGUpOworICAgIEdSZWZQdHI8R3N0UGFkPiBzcmNQYWQgPSBh
ZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQod2Via2l0QXVkaW9TcmMsICJzcmMi
KSk7CiAKICAgICBHUmVmUHRyPEdzdEVsZW1lbnQ+IGF1ZGlvU2luayA9IGdzdF9lbGVtZW50X2Zh
Y3RvcnlfbWFrZSgiYXV0b2F1ZGlvc2luayIsIDApOwogICAgIG1fYXVkaW9TaW5rQXZhaWxhYmxl
ID0gYXVkaW9TaW5rOwotCiAgICAgaWYgKCFhdWRpb1NpbmspIHsKICAgICAgICAgTE9HX0VSUk9S
KCJGYWlsZWQgdG8gY3JlYXRlIEdTdHJlYW1lciBhdXRvYXVkaW9zaW5rIGVsZW1lbnQiKTsKICAg
ICAgICAgcmV0dXJuOwpAQCAtMTM2LDE2ICsxMDksMjcgQEAgdm9pZCBBdWRpb0Rlc3RpbmF0aW9u
R1N0cmVhbWVyOjpmaW5pc2hCdWlsZGluZ1BpcGVsaW5lQWZ0ZXJXYXZQYXJzZXJQYWRSZWFkeShH
c3QKICAgICB9CiAKICAgICBHc3RFbGVtZW50KiBhdWRpb0NvbnZlcnQgPSBnc3RfZWxlbWVudF9m
YWN0b3J5X21ha2UoImF1ZGlvY29udmVydCIsIDApOwotICAgIGdzdF9iaW5fYWRkX21hbnkoR1NU
X0JJTihtX3BpcGVsaW5lKSwgYXVkaW9Db252ZXJ0LCBhdWRpb1NpbmsuZ2V0KCksIE5VTEwpOwor
ICAgIEdzdEVsZW1lbnQqIGF1ZGlvUmVzYW1wbGUgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2Uo
ImF1ZGlvcmVzYW1wbGUiLCAwKTsKKyAgICBnc3RfYmluX2FkZF9tYW55KEdTVF9CSU4obV9waXBl
bGluZSksIHdlYmtpdEF1ZGlvU3JjLCBhdWRpb0NvbnZlcnQsIGF1ZGlvUmVzYW1wbGUsIGF1ZGlv
U2luay5nZXQoKSwgTlVMTCk7CiAKICAgICAvLyBMaW5rIHdhdnBhcnNlJ3Mgc3JjIHBhZCB0byBh
dWRpb2NvbnZlcnQgc2luayBwYWQuCiAgICAgR1JlZlB0cjxHc3RQYWQ+IHNpbmtQYWQgPSBhZG9w
dEdSZWYoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQoYXVkaW9Db252ZXJ0LCAic2luayIpKTsK
LSAgICBnc3RfcGFkX2xpbmtfZnVsbChwYWQsIHNpbmtQYWQuZ2V0KCksIEdTVF9QQURfTElOS19D
SEVDS19OT1RISU5HKTsKKyAgICBnc3RfcGFkX2xpbmtfZnVsbChzcmNQYWQuZ2V0KCksIHNpbmtQ
YWQuZ2V0KCksIEdTVF9QQURfTElOS19DSEVDS19OT1RISU5HKTsKIAogICAgIC8vIExpbmsgYXVk
aW9jb252ZXJ0IHRvIGF1ZGlvc2luayBhbmQgcm9sbCBzdGF0ZXMuCi0gICAgZ3N0X2VsZW1lbnRf
bGlua19wYWRzX2Z1bGwoYXVkaW9Db252ZXJ0LCAic3JjIiwgYXVkaW9TaW5rLmdldCgpLCAic2lu
ayIsIEdTVF9QQURfTElOS19DSEVDS19OT1RISU5HKTsKLSAgICBnc3RfZWxlbWVudF9zeW5jX3N0
YXRlX3dpdGhfcGFyZW50KGF1ZGlvQ29udmVydCk7Ci0gICAgZ3N0X2VsZW1lbnRfc3luY19zdGF0
ZV93aXRoX3BhcmVudChhdWRpb1NpbmsubGVha1JlZigpKTsKKyAgICBnc3RfZWxlbWVudF9saW5r
X3BhZHNfZnVsbChhdWRpb0NvbnZlcnQsICJzcmMiLCBhdWRpb1Jlc2FtcGxlLCAic2luayIsIEdT
VF9QQURfTElOS19DSEVDS19OT1RISU5HKTsKKyAgICBnc3RfZWxlbWVudF9saW5rX3BhZHNfZnVs
bChhdWRpb1Jlc2FtcGxlLCAic3JjIiwgYXVkaW9TaW5rLmdldCgpLCAic2luayIsIEdTVF9QQURf
TElOS19DSEVDS19OT1RISU5HKTsKK30KKworQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6fkF1
ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIoKQoreworICAgIEdSZWZQdHI8R3N0QnVzPiBidXMgPSBh
ZG9wdEdSZWYoZ3N0X3BpcGVsaW5lX2dldF9idXMoR1NUX1BJUEVMSU5FKG1fcGlwZWxpbmUpKSk7
CisgICAgQVNTRVJUKGJ1cyk7CisgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9m
dW5jKGJ1cy5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxncG9pbnRlcj4obWVzc2FnZUNhbGxiYWNr
KSwgdGhpcyk7CisgICAgZ3N0X2J1c19yZW1vdmVfc2lnbmFsX3dhdGNoKGJ1cy5nZXQoKSk7CisK
KyAgICBnc3RfZWxlbWVudF9zZXRfc3RhdGUobV9waXBlbGluZSwgR1NUX1NUQVRFX05VTEwpOwor
ICAgIGdzdF9vYmplY3RfdW5yZWYobV9waXBlbGluZSk7CiB9CiAKIGdib29sZWFuIEF1ZGlvRGVz
dGluYXRpb25HU3RyZWFtZXI6OmhhbmRsZU1lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkKQEAg
LTE3MiwxOCArMTU2LDIzIEBAIGdib29sZWFuIEF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI6Omhh
bmRsZU1lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkKIAogdm9pZCBBdWRpb0Rlc3RpbmF0aW9u
R1N0cmVhbWVyOjpzdGFydCgpCiB7Ci0gICAgQVNTRVJUKG1fd2F2UGFyc2VyQXZhaWxhYmxlKTsK
LSAgICBpZiAoIW1fd2F2UGFyc2VyQXZhaWxhYmxlKQorICAgIEFTU0VSVChtX2F1ZGlvU2lua0F2
YWlsYWJsZSk7CisgICAgaWYgKCFtX2F1ZGlvU2lua0F2YWlsYWJsZSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGlwZWxpbmUsIEdTVF9TVEFURV9QTEFZ
SU5HKTsKKyAgICBpZiAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGlwZWxpbmUsIEdTVF9TVEFU
RV9QTEFZSU5HKSA9PSBHU1RfU1RBVEVfQ0hBTkdFX0ZBSUxVUkUpIHsKKyAgICAgICAgZ193YXJu
aW5nKCJFcnJvcjogRmFpbGVkIHRvIHNldCBwaXBlbGluZSB0byBwbGF5aW5nIik7CisgICAgICAg
IG1faXNQbGF5aW5nID0gZmFsc2U7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBtX2lz
UGxheWluZyA9IHRydWU7CiB9CiAKIHZvaWQgQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6c3Rv
cCgpCiB7Ci0gICAgQVNTRVJUKG1fd2F2UGFyc2VyQXZhaWxhYmxlICYmIG1fYXVkaW9TaW5rQXZh
aWxhYmxlKTsKLSAgICBpZiAoIW1fd2F2UGFyc2VyQXZhaWxhYmxlIHx8ICFtX2F1ZGlvU2lua0F2
YWlsYWJsZSkKKyAgICBBU1NFUlQobV9hdWRpb1NpbmtBdmFpbGFibGUpOworICAgIGlmICghbV9h
dWRpb1NpbmtBdmFpbGFibGUpCiAgICAgICAgIHJldHVybjsKIAogICAgIGdzdF9lbGVtZW50X3Nl
dF9zdGF0ZShtX3BpcGVsaW5lLCBHU1RfU1RBVEVfUEFVU0VEKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVh
bWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lci5oCmluZGV4IDlkYzlhOWJlYWQ2ZDQ4NDNiOGM3ODFjNzc4YzQ5ZDY3
ZGFiODYwZjUuLmZhMDY2MjI1ZjUyZjA0ZTAwMjRjMjQwMTYwMGFjODQ2YWMyNTMzZjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3Rp
bmF0aW9uR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0
cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaApAQCAtNDEsNyArNDEsNiBAQCBwdWJs
aWM6CiAgICAgZmxvYXQgc2FtcGxlUmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2FtcGxlUmF0ZTsg
fQogICAgIEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2soKSBjb25zdCB7IHJldHVybiBtX2NhbGxi
YWNrOyB9CiAKLSAgICB2b2lkIGZpbmlzaEJ1aWxkaW5nUGlwZWxpbmVBZnRlcldhdlBhcnNlclBh
ZFJlYWR5KEdzdFBhZCopOwogICAgIGdib29sZWFuIGhhbmRsZU1lc3NhZ2UoR3N0TWVzc2FnZSop
OwogCiBwcml2YXRlOgpAQCAtNTAsNyArNDksNiBAQCBwcml2YXRlOgogCiAgICAgZmxvYXQgbV9z
YW1wbGVSYXRlOwogICAgIGJvb2wgbV9pc1BsYXlpbmc7Ci0gICAgYm9vbCBtX3dhdlBhcnNlckF2
YWlsYWJsZTsKICAgICBib29sIG1fYXVkaW9TaW5rQXZhaWxhYmxlOwogICAgIEdzdEVsZW1lbnQq
IG1fcGlwZWxpbmU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJl
YW1lci5jcHAKaW5kZXggNDhkZGVlNTgwZDNiZWE5YWIwNmVlMWZkYzQ3MTY4MzExMzU3YjY2Mi4u
NTA3MWVlNGZlZjJiMTRjMmU5ODdhZDg1M2NhNzA4MzM2ZjBhMjFjZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNl
R1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFt
ZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoK
ICAqICBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIgSWdhbGlhIFMuTAorICogIENvcHlyaWdodCAo
QykgMjAxNCBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgogICoK
ICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYwpAQCAtNTMsNyArNTQsNiBAQCBzdHJ1Y3QgX1dlYktpdFdlYkF1ZGlv
U291cmNlUHJpdmF0ZSB7CiAgICAgZ3VpbnQgZnJhbWVzVG9QdWxsOwogCiAgICAgR1JlZlB0cjxH
c3RFbGVtZW50PiBpbnRlcmxlYXZlOwotICAgIEdSZWZQdHI8R3N0RWxlbWVudD4gd2F2RW5jb2Rl
cjsKIAogICAgIEdSZWZQdHI8R3N0VGFzaz4gdGFzazsKICAgICBHUmVjTXV0ZXggbXV0ZXg7CkBA
IC02Myw2ICs2Myw3IEBAIHN0cnVjdCBfV2ViS2l0V2ViQXVkaW9Tb3VyY2VQcml2YXRlIHsKIAog
ICAgIGJvb2wgbmV3U3RyZWFtRXZlbnRQZW5kaW5nOwogICAgIEdzdFNlZ21lbnQgc2VnbWVudDsK
KyAgICBndWludDY0IG51bVNhbXBsZXM7CiB9OwogCiBlbnVtIHsKQEAgLTcyLDEwICs3MywxNSBA
QCBlbnVtIHsKICAgICBQUk9QX0ZSQU1FUwogfTsKIAordHlwZWRlZiBzdHJ1Y3QgeworICAgIEdz
dEJ1ZmZlciogYnVmZmVyOworICAgIEdzdE1hcEluZm8gaW5mbzsKK30gQXVkaW9TcmNCdWZmZXI7
CisKIHN0YXRpYyBHc3RTdGF0aWNQYWRUZW1wbGF0ZSBzcmNUZW1wbGF0ZSA9IEdTVF9TVEFUSUNf
UEFEX1RFTVBMQVRFKCJzcmMiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1NUX1BBRF9TUkMsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHU1Rf
UEFEX0FMV0FZUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdTVF9TVEFUSUNfQ0FQUygiYXVkaW8veC13YXYiKSk7Cisg
ICAgR1NUX1BBRF9TUkMsCisgICAgR1NUX1BBRF9BTFdBWVMsCisgICAgR1NUX1NUQVRJQ19DQVBT
KEdTVF9BVURJT19DQVBTX01BS0UoR1NUX0FVRElPX05FKEYzMikpKSk7CiAKIEdTVF9ERUJVR19D
QVRFR09SWV9TVEFUSUMod2Via2l0X3dlYl9hdWRpb19zcmNfZGVidWcpOwogI2RlZmluZSBHU1Rf
Q0FUX0RFRkFVTFQgd2Via2l0X3dlYl9hdWRpb19zcmNfZGVidWcKQEAgLTkxLDcgKzk3LDcgQEAg
c3RhdGljIEdzdENhcHMqIGdldEdTdHJlYW1lck1vbm9BdWRpb0NhcHMoZmxvYXQgc2FtcGxlUmF0
ZSkKIHsKICAgICByZXR1cm4gZ3N0X2NhcHNfbmV3X3NpbXBsZSgiYXVkaW8veC1yYXciLCAicmF0
ZSIsIEdfVFlQRV9JTlQsIHN0YXRpY19jYXN0PGludD4oc2FtcGxlUmF0ZSksCiAgICAgICAgICJj
aGFubmVscyIsIEdfVFlQRV9JTlQsIDEsCi0gICAgICAgICJmb3JtYXQiLCBHX1RZUEVfU1RSSU5H
LCBnc3RfYXVkaW9fZm9ybWF0X3RvX3N0cmluZyhHU1RfQVVESU9fRk9STUFUX0YzMiksCisgICAg
ICAgICJmb3JtYXQiLCBHX1RZUEVfU1RSSU5HLCBHU1RfQVVESU9fTkUoRjMyKSwKICAgICAgICAg
ImxheW91dCIsIEdfVFlQRV9TVFJJTkcsICJpbnRlcmxlYXZlZCIsIG51bGxwdHIpOwogfQogCkBA
IC0yMDMsMjggKzIwOSwyMCBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJBdWRpb1NyY0NvbnN0cnVj
dGVkKEdPYmplY3QqIG9iamVjdCkKICAgICBBU1NFUlQocHJpdi0+c2FtcGxlUmF0ZSk7CiAKICAg
ICBwcml2LT5pbnRlcmxlYXZlID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJpbnRlcmxlYXZl
IiwgMCk7Ci0gICAgcHJpdi0+d2F2RW5jb2RlciA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgi
d2F2ZW5jIiwgMCk7CiAKICAgICBpZiAoIXByaXYtPmludGVybGVhdmUpIHsKICAgICAgICAgR1NU
X0VSUk9SX09CSkVDVChzcmMsICJGYWlsZWQgdG8gY3JlYXRlIGludGVybGVhdmUiKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghcHJpdi0+d2F2RW5jb2RlcikgewotICAgICAg
ICBHU1RfRVJST1JfT0JKRUNUKHNyYywgIkZhaWxlZCB0byBjcmVhdGUgd2F2ZW5jIik7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBnc3RfYmluX2FkZF9tYW55KEdTVF9CSU4oc3JjKSwg
cHJpdi0+aW50ZXJsZWF2ZS5nZXQoKSwgcHJpdi0+d2F2RW5jb2Rlci5nZXQoKSwgTlVMTCk7Ci0g
ICAgZ3N0X2VsZW1lbnRfbGlua19wYWRzX2Z1bGwocHJpdi0+aW50ZXJsZWF2ZS5nZXQoKSwgInNy
YyIsIHByaXYtPndhdkVuY29kZXIuZ2V0KCksICJzaW5rIiwgR1NUX1BBRF9MSU5LX0NIRUNLX05P
VEhJTkcpOworICAgIGdzdF9iaW5fYWRkKEdTVF9CSU4oc3JjKSwgcHJpdi0+aW50ZXJsZWF2ZS5n
ZXQoKSk7CiAKICAgICAvLyBGb3IgZWFjaCBjaGFubmVsIG9mIHRoZSBidXMgY3JlYXRlIGEgbmV3
IHVwc3RyZWFtIGJyYW5jaCBmb3IgaW50ZXJsZWF2ZSwgbGlrZToKLSAgICAvLyBxdWV1ZSAhIGNh
cHNmaWx0ZXIgISBhdWRpb2NvbnZlcnQuIHdoaWNoIGlzIHBsdWdnZWQgdG8gYSBuZXcgaW50ZXJs
ZWF2ZSByZXF1ZXN0IHNpbmtwYWQuCisgICAgLy8gcXVldWUgISBjYXBzZmlsdGVyLiB3aGljaCBp
cyBwbHVnZ2VkIHRvIGEgbmV3IGludGVybGVhdmUgcmVxdWVzdCBzaW5rcGFkLgogICAgIGZvciAo
dW5zaWduZWQgY2hhbm5lbEluZGV4ID0gMDsgY2hhbm5lbEluZGV4IDwgcHJpdi0+YnVzLT5udW1i
ZXJPZkNoYW5uZWxzKCk7IGNoYW5uZWxJbmRleCsrKSB7CiAgICAgICAgIEdVbmlxdWVQdHI8Z2No
YXI+IHF1ZXVlTmFtZShnX3N0cmR1cF9wcmludGYoIndlYmF1ZGlvUXVldWUldSIsIGNoYW5uZWxJ
bmRleCkpOwogICAgICAgICBHc3RFbGVtZW50KiBxdWV1ZSA9IGdzdF9lbGVtZW50X2ZhY3Rvcnlf
bWFrZSgicXVldWUiLCBxdWV1ZU5hbWUuZ2V0KCkpOwogICAgICAgICBHc3RFbGVtZW50KiBjYXBz
ZmlsdGVyID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJjYXBzZmlsdGVyIiwgMCk7Ci0gICAg
ICAgIEdzdEVsZW1lbnQqIGF1ZGlvY29udmVydCA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgi
YXVkaW9jb252ZXJ0IiwgMCk7CiAKICAgICAgICAgR1JlZlB0cjxHc3RDYXBzPiBtb25vQ2FwcyA9
IGFkb3B0R1JlZihnZXRHU3RyZWFtZXJNb25vQXVkaW9DYXBzKHByaXYtPnNhbXBsZVJhdGUpKTsK
IApAQCAtMjQwLDE2ICsyMzgsMTUgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViQXVkaW9TcmNDb25z
dHJ1Y3RlZChHT2JqZWN0KiBvYmplY3QpCiAgICAgICAgIEdzdFBhZCogcGFkID0gZ3N0X2VsZW1l
bnRfZ2V0X3N0YXRpY19wYWQocXVldWUsICJzaW5rIik7CiAgICAgICAgIHByaXYtPnBhZHMgPSBn
X3NsaXN0X3ByZXBlbmQocHJpdi0+cGFkcywgcGFkKTsKIAotICAgICAgICBnc3RfYmluX2FkZF9t
YW55KEdTVF9CSU4oc3JjKSwgcXVldWUsIGNhcHNmaWx0ZXIsIGF1ZGlvY29udmVydCwgTlVMTCk7
CisgICAgICAgIGdzdF9iaW5fYWRkX21hbnkoR1NUX0JJTihzcmMpLCBxdWV1ZSwgY2Fwc2ZpbHRl
ciwgTlVMTCk7CiAgICAgICAgIGdzdF9lbGVtZW50X2xpbmtfcGFkc19mdWxsKHF1ZXVlLCAic3Jj
IiwgY2Fwc2ZpbHRlciwgInNpbmsiLCBHU1RfUEFEX0xJTktfQ0hFQ0tfTk9USElORyk7Ci0gICAg
ICAgIGdzdF9lbGVtZW50X2xpbmtfcGFkc19mdWxsKGNhcHNmaWx0ZXIsICJzcmMiLCBhdWRpb2Nv
bnZlcnQsICJzaW5rIiwgR1NUX1BBRF9MSU5LX0NIRUNLX05PVEhJTkcpOwotICAgICAgICBnc3Rf
ZWxlbWVudF9saW5rX3BhZHNfZnVsbChhdWRpb2NvbnZlcnQsICJzcmMiLCBwcml2LT5pbnRlcmxl
YXZlLmdldCgpLCAwLCBHU1RfUEFEX0xJTktfQ0hFQ0tfTk9USElORyk7CisgICAgICAgIGdzdF9l
bGVtZW50X2xpbmtfcGFkc19mdWxsKGNhcHNmaWx0ZXIsICJzcmMiLCBwcml2LT5pbnRlcmxlYXZl
LmdldCgpLCAic2lua18ldSIsIEdTVF9QQURfTElOS19DSEVDS19OT1RISU5HKTsKIAogICAgIH0K
ICAgICBwcml2LT5wYWRzID0gZ19zbGlzdF9yZXZlcnNlKHByaXYtPnBhZHMpOwogCiAgICAgLy8g
d2F2ZW5jJ3Mgc3JjIHBhZCBpcyB0aGUgb25seSB2aXNpYmxlIHBhZCBvZiBvdXIgZWxlbWVudC4K
LSAgICBHUmVmUHRyPEdzdFBhZD4gdGFyZ2V0UGFkID0gYWRvcHRHUmVmKGdzdF9lbGVtZW50X2dl
dF9zdGF0aWNfcGFkKHByaXYtPndhdkVuY29kZXIuZ2V0KCksICJzcmMiKSk7CisgICAgR1JlZlB0
cjxHc3RQYWQ+IHRhcmdldFBhZCA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9nZXRfc3RhdGljX3Bh
ZChwcml2LT5pbnRlcmxlYXZlLmdldCgpLCAic3JjIikpOwogICAgIGdzdF9naG9zdF9wYWRfc2V0
X3RhcmdldChHU1RfR0hPU1RfUEFEKHByaXYtPnNvdXJjZVBhZCksIHRhcmdldFBhZC5nZXQoKSk7
CiB9CiAKQEAgLTMyMCwyMCArMzE3LDI4IEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYkF1ZGlvU3Jj
TG9vcChXZWJLaXRXZWJBdWRpb1NyYyogc3JjKQogCiAgICAgQVNTRVJUKHByaXYtPmJ1cyk7CiAg
ICAgQVNTRVJUKHByaXYtPnByb3ZpZGVyKTsKLSAgICBpZiAoIXByaXYtPnByb3ZpZGVyIHx8ICFw
cml2LT5idXMpCisgICAgaWYgKCFwcml2LT5wcm92aWRlciB8fCAhcHJpdi0+YnVzKSB7CisgICAg
ICAgIGdzdF90YXNrX3BhdXNlKHNyYy0+cHJpdi0+dGFzay5nZXQoKSk7CiAgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBHc3RDbG9ja1RpbWUgdGltZXN0YW1wID0gZ3N0X3V0aWxfdWludDY0
X3NjYWxlKHByaXYtPm51bVNhbXBsZXMsIEdTVF9TRUNPTkQsIHByaXYtPnNhbXBsZVJhdGUpOwor
ICAgIHByaXYtPm51bVNhbXBsZXMgKz0gcHJpdi0+ZnJhbWVzVG9QdWxsOworICAgIEdzdENsb2Nr
VGltZSBkdXJhdGlvbiA9IGdzdF91dGlsX3VpbnQ2NF9zY2FsZShwcml2LT5udW1TYW1wbGVzLCBH
U1RfU0VDT05ELCBwcml2LT5zYW1wbGVSYXRlKSAtIHRpbWVzdGFtcDsKIAogICAgIEdTTGlzdCog
Y2hhbm5lbEJ1ZmZlckxpc3QgPSAwOwogICAgIHJlZ2lzdGVyIGludCBpOwogICAgIHVuc2lnbmVk
IGJ1ZmZlclNpemUgPSBwcml2LT5mcmFtZXNUb1B1bGwgKiBzaXplb2YoZmxvYXQpOwogICAgIGZv
ciAoaSA9IGdfc2xpc3RfbGVuZ3RoKHByaXYtPnBhZHMpIC0gMTsgaSA+PSAwOyBpLS0pIHsKKyAg
ICAgICAgQXVkaW9TcmNCdWZmZXIqIGJ1ZmZlciA9IGdfbmV3KEF1ZGlvU3JjQnVmZmVyLCAxKTsK
ICAgICAgICAgR3N0QnVmZmVyKiBjaGFubmVsQnVmZmVyID0gZ3N0X2J1ZmZlcl9uZXdfYW5kX2Fs
bG9jKGJ1ZmZlclNpemUpOwogICAgICAgICBBU1NFUlQoY2hhbm5lbEJ1ZmZlcik7Ci0gICAgICAg
IGNoYW5uZWxCdWZmZXJMaXN0ID0gZ19zbGlzdF9wcmVwZW5kKGNoYW5uZWxCdWZmZXJMaXN0LCBj
aGFubmVsQnVmZmVyKTsKLSAgICAgICAgR3N0TWFwSW5mbyBpbmZvOwotICAgICAgICBnc3RfYnVm
ZmVyX21hcChjaGFubmVsQnVmZmVyLCAmaW5mbywgR1NUX01BUF9SRUFEKTsKLSAgICAgICAgcHJp
di0+YnVzLT5zZXRDaGFubmVsTWVtb3J5KGksIHJlaW50ZXJwcmV0X2Nhc3Q8ZmxvYXQqPihpbmZv
LmRhdGEpLCBwcml2LT5mcmFtZXNUb1B1bGwpOwotICAgICAgICBnc3RfYnVmZmVyX3VubWFwKGNo
YW5uZWxCdWZmZXIsICZpbmZvKTsKKyAgICAgICAgYnVmZmVyLT5idWZmZXIgPSBjaGFubmVsQnVm
ZmVyOworICAgICAgICBHU1RfQlVGRkVSX1RJTUVTVEFNUChjaGFubmVsQnVmZmVyKSA9IHRpbWVz
dGFtcDsKKyAgICAgICAgR1NUX0JVRkZFUl9EVVJBVElPTihjaGFubmVsQnVmZmVyKSA9IGR1cmF0
aW9uOworICAgICAgICBnc3RfYnVmZmVyX21hcChjaGFubmVsQnVmZmVyLCAmYnVmZmVyLT5pbmZv
LCAoR3N0TWFwRmxhZ3MpIEdTVF9NQVBfUkVBRFdSSVRFKTsKKyAgICAgICAgcHJpdi0+YnVzLT5z
ZXRDaGFubmVsTWVtb3J5KGksIHJlaW50ZXJwcmV0X2Nhc3Q8ZmxvYXQqPihidWZmZXItPmluZm8u
ZGF0YSksIHByaXYtPmZyYW1lc1RvUHVsbCk7CisgICAgICAgIGNoYW5uZWxCdWZmZXJMaXN0ID0g
Z19zbGlzdF9wcmVwZW5kKGNoYW5uZWxCdWZmZXJMaXN0LCBidWZmZXIpOwogICAgIH0KIAogICAg
IC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgbG9jYWwvbGl2ZSBhdWRpbyBpbnB1dC4KQEAgLTM1
MCw3ICszNTUsMTIgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViQXVkaW9TcmNMb29wKFdlYktpdFdl
YkF1ZGlvU3JjKiBzcmMpCiAKICAgICBmb3IgKGkgPSAwOyBwYWRzSXQgJiYgYnVmZmVyc0l0OyBw
YWRzSXQgPSBnX3NsaXN0X25leHQocGFkc0l0KSwgYnVmZmVyc0l0ID0gZ19zbGlzdF9uZXh0KGJ1
ZmZlcnNJdCksICsraSkgewogICAgICAgICBHc3RQYWQqIHBhZCA9IHN0YXRpY19jYXN0PEdzdFBh
ZCo+KHBhZHNJdC0+ZGF0YSk7Ci0gICAgICAgIEdzdEJ1ZmZlciogY2hhbm5lbEJ1ZmZlciA9IHN0
YXRpY19jYXN0PEdzdEJ1ZmZlcio+KGJ1ZmZlcnNJdC0+ZGF0YSk7CisgICAgICAgIEF1ZGlvU3Jj
QnVmZmVyKiBidWZmZXIgPSBzdGF0aWNfY2FzdDxBdWRpb1NyY0J1ZmZlcio+KGJ1ZmZlcnNJdC0+
ZGF0YSk7CisgICAgICAgIEdzdEJ1ZmZlciogY2hhbm5lbEJ1ZmZlciA9IGJ1ZmZlci0+YnVmZmVy
OworCisgICAgICAgIC8vIFVubWFwIGJlZm9yZSBwYXNzaW5nIG9uIHRoZSBidWZmZXIuCisgICAg
ICAgIGdzdF9idWZmZXJfdW5tYXAoY2hhbm5lbEJ1ZmZlciwgJmJ1ZmZlci0+aW5mbyk7CisgICAg
ICAgIGdfZnJlZShidWZmZXIpOwogCiAgICAgICAgIC8vIFNlbmQgc3RyZWFtLXN0YXJ0LCBzZWdt
ZW50IGFuZCBjYXBzIGV2ZW50cyBkb3duc3RyZWFtLCBhbG9uZyB3aXRoIHRoZSBmaXJzdCBidWZm
ZXIuCiAgICAgICAgIGlmIChwcml2LT5uZXdTdHJlYW1FdmVudFBlbmRpbmcpIHsKQEAgLTM3NSw4
ICszODUsMTAgQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViQXVkaW9TcmNMb29wKFdlYktpdFdlYkF1
ZGlvU3JjKiBzcmMpCiAgICAgICAgIH0KIAogICAgICAgICBHc3RGbG93UmV0dXJuIHJldCA9IGdz
dF9wYWRfY2hhaW4ocGFkLCBjaGFubmVsQnVmZmVyKTsKLSAgICAgICAgaWYgKHJldCAhPSBHU1Rf
RkxPV19PSykKKyAgICAgICAgaWYgKHJldCAhPSBHU1RfRkxPV19PSykgewogICAgICAgICAgICAg
R1NUX0VMRU1FTlRfRVJST1Ioc3JjLCBDT1JFLCBQQUQsICgiSW50ZXJuYWwgV2ViQXVkaW9TcmMg
ZXJyb3IiKSwgKCJGYWlsZWQgdG8gcHVzaCBidWZmZXIgb24gJXM6JXMgZmxvdzogJXMiLCBHU1Rf
REVCVUdfUEFEX05BTUUocGFkKSwgZ3N0X2Zsb3dfZ2V0X25hbWUocmV0KSkpOworICAgICAgICAg
ICAgZ3N0X3Rhc2tfcGF1c2Uoc3JjLT5wcml2LT50YXNrLmdldCgpKTsKKyAgICAgICAgfQogICAg
IH0KIAogICAgIHByaXYtPm5ld1N0cmVhbUV2ZW50UGVuZGluZyA9IGZhbHNlOwpAQCAtMzk2LDEx
ICs0MDgsNyBAQCBzdGF0aWMgR3N0U3RhdGVDaGFuZ2VSZXR1cm4gd2ViS2l0V2ViQXVkaW9TcmND
aGFuZ2VTdGF0ZShHc3RFbGVtZW50KiBlbGVtZW50LCBHcwogICAgICAgICAgICAgR1NUX0VMRU1F
TlRfRVJST1Ioc3JjLCBDT1JFLCBNSVNTSU5HX1BMVUdJTiwgKDApLCAoIm5vIGludGVybGVhdmUi
KSk7CiAgICAgICAgICAgICByZXR1cm4gR1NUX1NUQVRFX0NIQU5HRV9GQUlMVVJFOwogICAgICAg
ICB9Ci0gICAgICAgIGlmICghc3JjLT5wcml2LT53YXZFbmNvZGVyKSB7Ci0gICAgICAgICAgICBn
c3RfZWxlbWVudF9wb3N0X21lc3NhZ2UoZWxlbWVudCwgZ3N0X21pc3NpbmdfZWxlbWVudF9tZXNz
YWdlX25ldyhlbGVtZW50LCAid2F2ZW5jIikpOwotICAgICAgICAgICAgR1NUX0VMRU1FTlRfRVJS
T1Ioc3JjLCBDT1JFLCBNSVNTSU5HX1BMVUdJTiwgKDApLCAoIm5vIHdhdmVuYyIpKTsKLSAgICAg
ICAgICAgIHJldHVybiBHU1RfU1RBVEVfQ0hBTkdFX0ZBSUxVUkU7Ci0gICAgICAgIH0KKyAgICAg
ICAgc3JjLT5wcml2LT5udW1TYW1wbGVzID0gMDsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVs
dDoKICAgICAgICAgYnJlYWs7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242789</attachid>
            <date>2014-12-08 00:54:42 -0800</date>
            <delta_ts>2014-12-08 01:33:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139370-20141208095606.patch</filename>
            <type>text/plain</type>
            <size>16631</size>
            <attacher name="Sebastian Dröge (slomo)">slomo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2OTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODMzOWQ3Y2ViOTVjMDRh
ZmMwNTVhMzFkNDY0ZjA3NTFjOGM2ZTk0MC4uNTQ1ODdkNTNiZGFlMTQyMjZmMmU2ODczZjdkMzgy
OWYyMTc4MzVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE0LTEyLTA3ICBTZWJh
c3RpYW4gRHLDtmdlICA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KKworICAgICAgICBbR1N0
cmVhbWVyXSBNYWpvciBjbGVhbnVwIG9mIEF1ZGlvRGVzdGluYXRpb24gaW1wbGVtZW50YXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTM3MAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZv
cm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6QXVkaW9EZXN0aW5hdGlvbkdT
dHJlYW1lcik6CisgICAgICAgIEFkZCBhbiBhdWRpb3Jlc2FtcGxlIGVsZW1lbnQgYmVmb3JlIHRo
ZSBhdWRpbyBzaW5rLiBUaGUgYXVkaW8gc2luaworICAgICAgICBtaWdodCBub3QgYmUgYWJsZSB0
byBoYW5kbGUgb3VyIHNhbXBsaW5nIHJhdGUuCisKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVz
dGluYXRpb25HU3RyZWFtZXI6OkF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6fkF1ZGlvRGVzdGluYXRpb25HU3Ry
ZWFtZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6c3Rv
cCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpmaW5pc2hC
dWlsZGluZ1BpcGVsaW5lQWZ0ZXJXYXZQYXJzZXJQYWRSZWFkeSk6IERlbGV0ZWQuCisgICAgICAg
IERvbid0IHVzZSBhIHdhdnBhcnNlIGVsZW1lbnQgYnV0IGRpcmVjdGx5IGxpbmsgdGhlIHJhdyBh
dWRpbyBmcm9tCisgICAgICAgIHRoZSBzb3VyY2UgdG8gdGhlIGF1ZGlvIHNpbmsuCisKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI6OnN0YXJ0KToKKyAgICAgICAg
Q2F0Y2ggZXJyb3JzIHdoZW4gZ29pbmcgdG8gUExBWUlORyBlYXJseSwgd2UgbWlnaHQgbm90IGdl
dCBhbiBlcnJvcgorICAgICAgICBtZXNzYWdlLgorCisgICAgICAgICogcGxhdGZvcm0vYXVkaW8v
Z3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwOgorICAg
ICAgICAoZ2V0R1N0cmVhbWVyTW9ub0F1ZGlvQ2Fwcyk6CisgICAgICAgICh3ZWJLaXRXZWJBdWRp
b1NyY0NvbnN0cnVjdGVkKToKKyAgICAgICAgKHdlYktpdFdlYkF1ZGlvU3JjQ2hhbmdlU3RhdGUp
OgorICAgICAgICBEb24ndCB1c2UgYSBXQVYgZW5jb2RlciBidXQgZGlyZWN0bHkgb3V0cHV0IHJh
dyBhdWRpby4gQWxzbyBkb24ndAorICAgICAgICBpbmNsdWRlIGEgdW5uZWVkZWQgYXVkaW9jb252
ZXJ0IGVsZW1lbnQgYmVmb3JlIHRoZSBpbnRlcmxlYXZlLgorCisgICAgICAgICh3ZWJLaXRXZWJB
dWRpb1NyY0xvb3ApOgorICAgICAgICBBZGQgdGltZXN0YW1wcyBhbmQgZHVyYXRpb25zIHRvIHRo
ZSBvdXRwdXQgYnVmZmVycywgbWFwIHRoZW0gaW4KKyAgICAgICAgUkVBRFdSSVRFIG1vZGUgYW5k
IGFjdHVhbGx5IGtlZXAgdGhlbSBtYXBwZWQgdW50aWwgd2UncmUgc3VyZQorICAgICAgICBub3Ro
aW5nIGlzIGFjdHVhbGx5IHdyaXRpbmcgaW50byB0aGVtLgorCisgICAgICAgICh3ZWJLaXRXZWJB
dWRpb1NyY0xvb3ApOgorICAgICAgICBQYXVzZSB0aGUgdGFzayBvbiBlcnJvcnMgaW5zdGVhZCBv
ZiBjb250aW51b3VzbHkgY2FsbGluZyBpdCBhZ2FpbgorICAgICAgICBpbW1lZGlhdGVseS4KKwog
MjAxNC0xMi0wNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW0dUS10gTWlzc2luZyBBUEkgZGV0ZWN0ZWQgaW4gR09iamVjdCBET00gYmluZGlu
Z3MgYWZ0ZXIgcjE3NjYzMApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuY3Bw
CmluZGV4IDI1ZGRjYjlmYTA1NzMzM2ViZDQ2NWVhZGM0NmQ0ZjMwOGNkYmI2ZDcuLmYyNGE0Mzll
MzQwNmJjYmQwYTgxODIyODZhZjgyNzY5Nzk5NjdhMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lci5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogIENvcHlyaWdodCAo
QykgMjAxMSwgMjAxMiBJZ2FsaWEgUy5MCisgKiAgQ29weXJpZ2h0IChDKSAyMDE0IFNlYmFzdGlh
biBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CiAgKgogICogIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CkBAIC04NywzOCArODgsMTAgQEAgQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6QXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lcihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJwcm92aWRlciIsICZtX2NhbGxiYWNrLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmcmFt
ZXMiLCBmcmFtZXNUb1B1bGwsIE5VTEwpKTsKIAotICAgIEdzdEVsZW1lbnQqIHdhdlBhcnNlciA9
IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSgid2F2cGFyc2UiLCAwKTsKLQotICAgIG1fd2F2UGFy
c2VyQXZhaWxhYmxlID0gd2F2UGFyc2VyOwotICAgIEFTU0VSVF9XSVRIX01FU1NBR0UobV93YXZQ
YXJzZXJBdmFpbGFibGUsICJGYWlsZWQgdG8gY3JlYXRlIEdTdHJlYW1lciB3YXZwYXJzZSBlbGVt
ZW50Iik7Ci0gICAgaWYgKCFtX3dhdlBhcnNlckF2YWlsYWJsZSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgZ3N0X2Jpbl9hZGRfbWFueShHU1RfQklOKG1fcGlwZWxpbmUpLCB3ZWJraXRBdWRpb1Ny
Yywgd2F2UGFyc2VyLCBOVUxMKTsKLSAgICBnc3RfZWxlbWVudF9saW5rX3BhZHNfZnVsbCh3ZWJr
aXRBdWRpb1NyYywgInNyYyIsIHdhdlBhcnNlciwgInNpbmsiLCBHU1RfUEFEX0xJTktfQ0hFQ0tf
Tk9USElORyk7Ci0KLSAgICBHUmVmUHRyPEdzdFBhZD4gc3JjUGFkID0gYWRvcHRHUmVmKGdzdF9l
bGVtZW50X2dldF9zdGF0aWNfcGFkKHdhdlBhcnNlciwgInNyYyIpKTsKLSAgICBmaW5pc2hCdWls
ZGluZ1BpcGVsaW5lQWZ0ZXJXYXZQYXJzZXJQYWRSZWFkeShzcmNQYWQuZ2V0KCkpOwotfQotCi1B
dWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjp+QXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcigpCi17
Ci0gICAgR1JlZlB0cjxHc3RCdXM+IGJ1cyA9IGFkb3B0R1JlZihnc3RfcGlwZWxpbmVfZ2V0X2J1
cyhHU1RfUElQRUxJTkUobV9waXBlbGluZSkpKTsKLSAgICBBU1NFUlQoYnVzKTsKLSAgICBnX3Np
Z25hbF9oYW5kbGVyc19kaXNjb25uZWN0X2J5X2Z1bmMoYnVzLmdldCgpLCByZWludGVycHJldF9j
YXN0PGdwb2ludGVyPihtZXNzYWdlQ2FsbGJhY2spLCB0aGlzKTsKLSAgICBnc3RfYnVzX3JlbW92
ZV9zaWduYWxfd2F0Y2goYnVzLmdldCgpKTsKLQotICAgIGdzdF9lbGVtZW50X3NldF9zdGF0ZSht
X3BpcGVsaW5lLCBHU1RfU1RBVEVfTlVMTCk7Ci0gICAgZ3N0X29iamVjdF91bnJlZihtX3BpcGVs
aW5lKTsKLX0KLQotdm9pZCBBdWRpb0Rlc3RpbmF0aW9uR1N0cmVhbWVyOjpmaW5pc2hCdWlsZGlu
Z1BpcGVsaW5lQWZ0ZXJXYXZQYXJzZXJQYWRSZWFkeShHc3RQYWQqIHBhZCkKLXsKLSAgICBBU1NF
UlQobV93YXZQYXJzZXJBdmFpbGFibGUpOworICAgIEdSZWZQdHI8R3N0UGFkPiBzcmNQYWQgPSBh
ZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQod2Via2l0QXVkaW9TcmMsICJzcmMi
KSk7CiAKICAgICBHUmVmUHRyPEdzdEVsZW1lbnQ+IGF1ZGlvU2luayA9IGdzdF9lbGVtZW50X2Zh
Y3RvcnlfbWFrZSgiYXV0b2F1ZGlvc2luayIsIDApOwogICAgIG1fYXVkaW9TaW5rQXZhaWxhYmxl
ID0gYXVkaW9TaW5rOwotCiAgICAgaWYgKCFhdWRpb1NpbmspIHsKICAgICAgICAgTE9HX0VSUk9S
KCJGYWlsZWQgdG8gY3JlYXRlIEdTdHJlYW1lciBhdXRvYXVkaW9zaW5rIGVsZW1lbnQiKTsKICAg
ICAgICAgcmV0dXJuOwpAQCAtMTM2LDE2ICsxMDksMjcgQEAgdm9pZCBBdWRpb0Rlc3RpbmF0aW9u
R1N0cmVhbWVyOjpmaW5pc2hCdWlsZGluZ1BpcGVsaW5lQWZ0ZXJXYXZQYXJzZXJQYWRSZWFkeShH
c3QKICAgICB9CiAKICAgICBHc3RFbGVtZW50KiBhdWRpb0NvbnZlcnQgPSBnc3RfZWxlbWVudF9m
YWN0b3J5X21ha2UoImF1ZGlvY29udmVydCIsIDApOwotICAgIGdzdF9iaW5fYWRkX21hbnkoR1NU
X0JJTihtX3BpcGVsaW5lKSwgYXVkaW9Db252ZXJ0LCBhdWRpb1NpbmsuZ2V0KCksIE5VTEwpOwor
ICAgIEdzdEVsZW1lbnQqIGF1ZGlvUmVzYW1wbGUgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2Uo
ImF1ZGlvcmVzYW1wbGUiLCAwKTsKKyAgICBnc3RfYmluX2FkZF9tYW55KEdTVF9CSU4obV9waXBl
bGluZSksIHdlYmtpdEF1ZGlvU3JjLCBhdWRpb0NvbnZlcnQsIGF1ZGlvUmVzYW1wbGUsIGF1ZGlv
U2luay5nZXQoKSwgTlVMTCk7CiAKICAgICAvLyBMaW5rIHdhdnBhcnNlJ3Mgc3JjIHBhZCB0byBh
dWRpb2NvbnZlcnQgc2luayBwYWQuCiAgICAgR1JlZlB0cjxHc3RQYWQ+IHNpbmtQYWQgPSBhZG9w
dEdSZWYoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQoYXVkaW9Db252ZXJ0LCAic2luayIpKTsK
LSAgICBnc3RfcGFkX2xpbmtfZnVsbChwYWQsIHNpbmtQYWQuZ2V0KCksIEdTVF9QQURfTElOS19D
SEVDS19OT1RISU5HKTsKKyAgICBnc3RfcGFkX2xpbmtfZnVsbChzcmNQYWQuZ2V0KCksIHNpbmtQ
YWQuZ2V0KCksIEdTVF9QQURfTElOS19DSEVDS19OT1RISU5HKTsKIAogICAgIC8vIExpbmsgYXVk
aW9jb252ZXJ0IHRvIGF1ZGlvc2luayBhbmQgcm9sbCBzdGF0ZXMuCi0gICAgZ3N0X2VsZW1lbnRf
bGlua19wYWRzX2Z1bGwoYXVkaW9Db252ZXJ0LCAic3JjIiwgYXVkaW9TaW5rLmdldCgpLCAic2lu
ayIsIEdTVF9QQURfTElOS19DSEVDS19OT1RISU5HKTsKLSAgICBnc3RfZWxlbWVudF9zeW5jX3N0
YXRlX3dpdGhfcGFyZW50KGF1ZGlvQ29udmVydCk7Ci0gICAgZ3N0X2VsZW1lbnRfc3luY19zdGF0
ZV93aXRoX3BhcmVudChhdWRpb1NpbmsubGVha1JlZigpKTsKKyAgICBnc3RfZWxlbWVudF9saW5r
X3BhZHNfZnVsbChhdWRpb0NvbnZlcnQsICJzcmMiLCBhdWRpb1Jlc2FtcGxlLCAic2luayIsIEdT
VF9QQURfTElOS19DSEVDS19OT1RISU5HKTsKKyAgICBnc3RfZWxlbWVudF9saW5rX3BhZHNfZnVs
bChhdWRpb1Jlc2FtcGxlLCAic3JjIiwgYXVkaW9TaW5rLmdldCgpLCAic2luayIsIEdTVF9QQURf
TElOS19DSEVDS19OT1RISU5HKTsKK30KKworQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6fkF1
ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIoKQoreworICAgIEdSZWZQdHI8R3N0QnVzPiBidXMgPSBh
ZG9wdEdSZWYoZ3N0X3BpcGVsaW5lX2dldF9idXMoR1NUX1BJUEVMSU5FKG1fcGlwZWxpbmUpKSk7
CisgICAgQVNTRVJUKGJ1cyk7CisgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9m
dW5jKGJ1cy5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxncG9pbnRlcj4obWVzc2FnZUNhbGxiYWNr
KSwgdGhpcyk7CisgICAgZ3N0X2J1c19yZW1vdmVfc2lnbmFsX3dhdGNoKGJ1cy5nZXQoKSk7CisK
KyAgICBnc3RfZWxlbWVudF9zZXRfc3RhdGUobV9waXBlbGluZSwgR1NUX1NUQVRFX05VTEwpOwor
ICAgIGdzdF9vYmplY3RfdW5yZWYobV9waXBlbGluZSk7CiB9CiAKIGdib29sZWFuIEF1ZGlvRGVz
dGluYXRpb25HU3RyZWFtZXI6OmhhbmRsZU1lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkKQEAg
LTE3MiwxOCArMTU2LDIzIEBAIGdib29sZWFuIEF1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXI6Omhh
bmRsZU1lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkKIAogdm9pZCBBdWRpb0Rlc3RpbmF0aW9u
R1N0cmVhbWVyOjpzdGFydCgpCiB7Ci0gICAgQVNTRVJUKG1fd2F2UGFyc2VyQXZhaWxhYmxlKTsK
LSAgICBpZiAoIW1fd2F2UGFyc2VyQXZhaWxhYmxlKQorICAgIEFTU0VSVChtX2F1ZGlvU2lua0F2
YWlsYWJsZSk7CisgICAgaWYgKCFtX2F1ZGlvU2lua0F2YWlsYWJsZSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGlwZWxpbmUsIEdTVF9TVEFURV9QTEFZ
SU5HKTsKKyAgICBpZiAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKG1fcGlwZWxpbmUsIEdTVF9TVEFU
RV9QTEFZSU5HKSA9PSBHU1RfU1RBVEVfQ0hBTkdFX0ZBSUxVUkUpIHsKKyAgICAgICAgZ193YXJu
aW5nKCJFcnJvcjogRmFpbGVkIHRvIHNldCBwaXBlbGluZSB0byBwbGF5aW5nIik7CisgICAgICAg
IG1faXNQbGF5aW5nID0gZmFsc2U7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBtX2lz
UGxheWluZyA9IHRydWU7CiB9CiAKIHZvaWQgQXVkaW9EZXN0aW5hdGlvbkdTdHJlYW1lcjo6c3Rv
cCgpCiB7Ci0gICAgQVNTRVJUKG1fd2F2UGFyc2VyQXZhaWxhYmxlICYmIG1fYXVkaW9TaW5rQXZh
aWxhYmxlKTsKLSAgICBpZiAoIW1fd2F2UGFyc2VyQXZhaWxhYmxlIHx8ICFtX2F1ZGlvU2lua0F2
YWlsYWJsZSkKKyAgICBBU1NFUlQobV9hdWRpb1NpbmtBdmFpbGFibGUpOworICAgIGlmICghbV9h
dWRpb1NpbmtBdmFpbGFibGUpCiAgICAgICAgIHJldHVybjsKIAogICAgIGdzdF9lbGVtZW50X3Nl
dF9zdGF0ZShtX3BpcGVsaW5lLCBHU1RfU1RBVEVfUEFVU0VEKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3RpbmF0aW9uR1N0cmVh
bWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9EZXN0
aW5hdGlvbkdTdHJlYW1lci5oCmluZGV4IDlkYzlhOWJlYWQ2ZDQ4NDNiOGM3ODFjNzc4YzQ5ZDY3
ZGFiODYwZjUuLmZhMDY2MjI1ZjUyZjA0ZTAwMjRjMjQwMTYwMGFjODQ2YWMyNTMzZjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb0Rlc3Rp
bmF0aW9uR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0
cmVhbWVyL0F1ZGlvRGVzdGluYXRpb25HU3RyZWFtZXIuaApAQCAtNDEsNyArNDEsNiBAQCBwdWJs
aWM6CiAgICAgZmxvYXQgc2FtcGxlUmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2FtcGxlUmF0ZTsg
fQogICAgIEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2soKSBjb25zdCB7IHJldHVybiBtX2NhbGxi
YWNrOyB9CiAKLSAgICB2b2lkIGZpbmlzaEJ1aWxkaW5nUGlwZWxpbmVBZnRlcldhdlBhcnNlclBh
ZFJlYWR5KEdzdFBhZCopOwogICAgIGdib29sZWFuIGhhbmRsZU1lc3NhZ2UoR3N0TWVzc2FnZSop
OwogCiBwcml2YXRlOgpAQCAtNTAsNyArNDksNiBAQCBwcml2YXRlOgogCiAgICAgZmxvYXQgbV9z
YW1wbGVSYXRlOwogICAgIGJvb2wgbV9pc1BsYXlpbmc7Ci0gICAgYm9vbCBtX3dhdlBhcnNlckF2
YWlsYWJsZTsKICAgICBib29sIG1fYXVkaW9TaW5rQXZhaWxhYmxlOwogICAgIEdzdEVsZW1lbnQq
IG1fcGlwZWxpbmU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJl
YW1lci5jcHAKaW5kZXggNDhkZGVlNTgwZDNiZWE5YWIwNmVlMWZkYzQ3MTY4MzExMzU3YjY2Mi4u
ZmRkZTAzOTQ1MjBjNTVhNzBjZGNiNDE1MWY1ZmQ3OTRmNWRjYzA5MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL1dlYktpdFdlYkF1ZGlvU291cmNl
R1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFt
ZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoK
ICAqICBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIgSWdhbGlhIFMuTAorICogIENvcHlyaWdodCAo
QykgMjAxNCBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgogICoK
ICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYwpAQCAtNTMsNyArNTQsNiBAQCBzdHJ1Y3QgX1dlYktpdFdlYkF1ZGlv
U291cmNlUHJpdmF0ZSB7CiAgICAgZ3VpbnQgZnJhbWVzVG9QdWxsOwogCiAgICAgR1JlZlB0cjxH
c3RFbGVtZW50PiBpbnRlcmxlYXZlOwotICAgIEdSZWZQdHI8R3N0RWxlbWVudD4gd2F2RW5jb2Rl
cjsKIAogICAgIEdSZWZQdHI8R3N0VGFzaz4gdGFzazsKICAgICBHUmVjTXV0ZXggbXV0ZXg7CkBA
IC02Myw2ICs2Myw3IEBAIHN0cnVjdCBfV2ViS2l0V2ViQXVkaW9Tb3VyY2VQcml2YXRlIHsKIAog
ICAgIGJvb2wgbmV3U3RyZWFtRXZlbnRQZW5kaW5nOwogICAgIEdzdFNlZ21lbnQgc2VnbWVudDsK
KyAgICBndWludDY0IG51bWJlck9mU2FtcGxlczsKIH07CiAKIGVudW0gewpAQCAtNzIsMTAgKzcz
LDE1IEBAIGVudW0gewogICAgIFBST1BfRlJBTUVTCiB9OwogCit0eXBlZGVmIHN0cnVjdCB7Cisg
ICAgR3N0QnVmZmVyKiBidWZmZXI7CisgICAgR3N0TWFwSW5mbyBpbmZvOworfSBBdWRpb1NyY0J1
ZmZlcjsKKwogc3RhdGljIEdzdFN0YXRpY1BhZFRlbXBsYXRlIHNyY1RlbXBsYXRlID0gR1NUX1NU
QVRJQ19QQURfVEVNUExBVEUoInNyYyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHU1RfUEFEX1NSQywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEdTVF9QQURfQUxXQVlTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgR1NUX1NUQVRJQ19DQVBTKCJhdWRpby94LXdhdiIp
KTsKKyAgICBHU1RfUEFEX1NSQywKKyAgICBHU1RfUEFEX0FMV0FZUywKKyAgICBHU1RfU1RBVElD
X0NBUFMoR1NUX0FVRElPX0NBUFNfTUFLRShHU1RfQVVESU9fTkUoRjMyKSkpKTsKIAogR1NUX0RF
QlVHX0NBVEVHT1JZX1NUQVRJQyh3ZWJraXRfd2ViX2F1ZGlvX3NyY19kZWJ1Zyk7CiAjZGVmaW5l
IEdTVF9DQVRfREVGQVVMVCB3ZWJraXRfd2ViX2F1ZGlvX3NyY19kZWJ1ZwpAQCAtOTEsNyArOTcs
NyBAQCBzdGF0aWMgR3N0Q2FwcyogZ2V0R1N0cmVhbWVyTW9ub0F1ZGlvQ2FwcyhmbG9hdCBzYW1w
bGVSYXRlKQogewogICAgIHJldHVybiBnc3RfY2Fwc19uZXdfc2ltcGxlKCJhdWRpby94LXJhdyIs
ICJyYXRlIiwgR19UWVBFX0lOVCwgc3RhdGljX2Nhc3Q8aW50PihzYW1wbGVSYXRlKSwKICAgICAg
ICAgImNoYW5uZWxzIiwgR19UWVBFX0lOVCwgMSwKLSAgICAgICAgImZvcm1hdCIsIEdfVFlQRV9T
VFJJTkcsIGdzdF9hdWRpb19mb3JtYXRfdG9fc3RyaW5nKEdTVF9BVURJT19GT1JNQVRfRjMyKSwK
KyAgICAgICAgImZvcm1hdCIsIEdfVFlQRV9TVFJJTkcsIEdTVF9BVURJT19ORShGMzIpLAogICAg
ICAgICAibGF5b3V0IiwgR19UWVBFX1NUUklORywgImludGVybGVhdmVkIiwgbnVsbHB0cik7CiB9
CiAKQEAgLTIwMywyOCArMjA5LDIwIEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYkF1ZGlvU3JjQ29u
c3RydWN0ZWQoR09iamVjdCogb2JqZWN0KQogICAgIEFTU0VSVChwcml2LT5zYW1wbGVSYXRlKTsK
IAogICAgIHByaXYtPmludGVybGVhdmUgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImludGVy
bGVhdmUiLCAwKTsKLSAgICBwcml2LT53YXZFbmNvZGVyID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9t
YWtlKCJ3YXZlbmMiLCAwKTsKIAogICAgIGlmICghcHJpdi0+aW50ZXJsZWF2ZSkgewogICAgICAg
ICBHU1RfRVJST1JfT0JKRUNUKHNyYywgIkZhaWxlZCB0byBjcmVhdGUgaW50ZXJsZWF2ZSIpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKCFwcml2LT53YXZFbmNvZGVyKSB7Ci0g
ICAgICAgIEdTVF9FUlJPUl9PQkpFQ1Qoc3JjLCAiRmFpbGVkIHRvIGNyZWF0ZSB3YXZlbmMiKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGdzdF9iaW5fYWRkX21hbnkoR1NUX0JJTihz
cmMpLCBwcml2LT5pbnRlcmxlYXZlLmdldCgpLCBwcml2LT53YXZFbmNvZGVyLmdldCgpLCBOVUxM
KTsKLSAgICBnc3RfZWxlbWVudF9saW5rX3BhZHNfZnVsbChwcml2LT5pbnRlcmxlYXZlLmdldCgp
LCAic3JjIiwgcHJpdi0+d2F2RW5jb2Rlci5nZXQoKSwgInNpbmsiLCBHU1RfUEFEX0xJTktfQ0hF
Q0tfTk9USElORyk7CisgICAgZ3N0X2Jpbl9hZGQoR1NUX0JJTihzcmMpLCBwcml2LT5pbnRlcmxl
YXZlLmdldCgpKTsKIAogICAgIC8vIEZvciBlYWNoIGNoYW5uZWwgb2YgdGhlIGJ1cyBjcmVhdGUg
YSBuZXcgdXBzdHJlYW0gYnJhbmNoIGZvciBpbnRlcmxlYXZlLCBsaWtlOgotICAgIC8vIHF1ZXVl
ICEgY2Fwc2ZpbHRlciAhIGF1ZGlvY29udmVydC4gd2hpY2ggaXMgcGx1Z2dlZCB0byBhIG5ldyBp
bnRlcmxlYXZlIHJlcXVlc3Qgc2lua3BhZC4KKyAgICAvLyBxdWV1ZSAhIGNhcHNmaWx0ZXIuIHdo
aWNoIGlzIHBsdWdnZWQgdG8gYSBuZXcgaW50ZXJsZWF2ZSByZXF1ZXN0IHNpbmtwYWQuCiAgICAg
Zm9yICh1bnNpZ25lZCBjaGFubmVsSW5kZXggPSAwOyBjaGFubmVsSW5kZXggPCBwcml2LT5idXMt
Pm51bWJlck9mQ2hhbm5lbHMoKTsgY2hhbm5lbEluZGV4KyspIHsKICAgICAgICAgR1VuaXF1ZVB0
cjxnY2hhcj4gcXVldWVOYW1lKGdfc3RyZHVwX3ByaW50Zigid2ViYXVkaW9RdWV1ZSV1IiwgY2hh
bm5lbEluZGV4KSk7CiAgICAgICAgIEdzdEVsZW1lbnQqIHF1ZXVlID0gZ3N0X2VsZW1lbnRfZmFj
dG9yeV9tYWtlKCJxdWV1ZSIsIHF1ZXVlTmFtZS5nZXQoKSk7CiAgICAgICAgIEdzdEVsZW1lbnQq
IGNhcHNmaWx0ZXIgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImNhcHNmaWx0ZXIiLCAwKTsK
LSAgICAgICAgR3N0RWxlbWVudCogYXVkaW9jb252ZXJ0ID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9t
YWtlKCJhdWRpb2NvbnZlcnQiLCAwKTsKIAogICAgICAgICBHUmVmUHRyPEdzdENhcHM+IG1vbm9D
YXBzID0gYWRvcHRHUmVmKGdldEdTdHJlYW1lck1vbm9BdWRpb0NhcHMocHJpdi0+c2FtcGxlUmF0
ZSkpOwogCkBAIC0yNDAsMTYgKzIzOCwxNSBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJBdWRpb1Ny
Y0NvbnN0cnVjdGVkKEdPYmplY3QqIG9iamVjdCkKICAgICAgICAgR3N0UGFkKiBwYWQgPSBnc3Rf
ZWxlbWVudF9nZXRfc3RhdGljX3BhZChxdWV1ZSwgInNpbmsiKTsKICAgICAgICAgcHJpdi0+cGFk
cyA9IGdfc2xpc3RfcHJlcGVuZChwcml2LT5wYWRzLCBwYWQpOwogCi0gICAgICAgIGdzdF9iaW5f
YWRkX21hbnkoR1NUX0JJTihzcmMpLCBxdWV1ZSwgY2Fwc2ZpbHRlciwgYXVkaW9jb252ZXJ0LCBO
VUxMKTsKKyAgICAgICAgZ3N0X2Jpbl9hZGRfbWFueShHU1RfQklOKHNyYyksIHF1ZXVlLCBjYXBz
ZmlsdGVyLCBOVUxMKTsKICAgICAgICAgZ3N0X2VsZW1lbnRfbGlua19wYWRzX2Z1bGwocXVldWUs
ICJzcmMiLCBjYXBzZmlsdGVyLCAic2luayIsIEdTVF9QQURfTElOS19DSEVDS19OT1RISU5HKTsK
LSAgICAgICAgZ3N0X2VsZW1lbnRfbGlua19wYWRzX2Z1bGwoY2Fwc2ZpbHRlciwgInNyYyIsIGF1
ZGlvY29udmVydCwgInNpbmsiLCBHU1RfUEFEX0xJTktfQ0hFQ0tfTk9USElORyk7Ci0gICAgICAg
IGdzdF9lbGVtZW50X2xpbmtfcGFkc19mdWxsKGF1ZGlvY29udmVydCwgInNyYyIsIHByaXYtPmlu
dGVybGVhdmUuZ2V0KCksIDAsIEdTVF9QQURfTElOS19DSEVDS19OT1RISU5HKTsKKyAgICAgICAg
Z3N0X2VsZW1lbnRfbGlua19wYWRzX2Z1bGwoY2Fwc2ZpbHRlciwgInNyYyIsIHByaXYtPmludGVy
bGVhdmUuZ2V0KCksICJzaW5rXyV1IiwgR1NUX1BBRF9MSU5LX0NIRUNLX05PVEhJTkcpOwogCiAg
ICAgfQogICAgIHByaXYtPnBhZHMgPSBnX3NsaXN0X3JldmVyc2UocHJpdi0+cGFkcyk7CiAKICAg
ICAvLyB3YXZlbmMncyBzcmMgcGFkIGlzIHRoZSBvbmx5IHZpc2libGUgcGFkIG9mIG91ciBlbGVt
ZW50LgotICAgIEdSZWZQdHI8R3N0UGFkPiB0YXJnZXRQYWQgPSBhZG9wdEdSZWYoZ3N0X2VsZW1l
bnRfZ2V0X3N0YXRpY19wYWQocHJpdi0+d2F2RW5jb2Rlci5nZXQoKSwgInNyYyIpKTsKKyAgICBH
UmVmUHRyPEdzdFBhZD4gdGFyZ2V0UGFkID0gYWRvcHRHUmVmKGdzdF9lbGVtZW50X2dldF9zdGF0
aWNfcGFkKHByaXYtPmludGVybGVhdmUuZ2V0KCksICJzcmMiKSk7CiAgICAgZ3N0X2dob3N0X3Bh
ZF9zZXRfdGFyZ2V0KEdTVF9HSE9TVF9QQUQocHJpdi0+c291cmNlUGFkKSwgdGFyZ2V0UGFkLmdl
dCgpKTsKIH0KIApAQCAtMzIwLDIwICszMTcsMjggQEAgc3RhdGljIHZvaWQgd2ViS2l0V2ViQXVk
aW9TcmNMb29wKFdlYktpdFdlYkF1ZGlvU3JjKiBzcmMpCiAKICAgICBBU1NFUlQocHJpdi0+YnVz
KTsKICAgICBBU1NFUlQocHJpdi0+cHJvdmlkZXIpOwotICAgIGlmICghcHJpdi0+cHJvdmlkZXIg
fHwgIXByaXYtPmJ1cykKKyAgICBpZiAoIXByaXYtPnByb3ZpZGVyIHx8ICFwcml2LT5idXMpIHsK
KyAgICAgICAgZ3N0X3Rhc2tfcGF1c2Uoc3JjLT5wcml2LT50YXNrLmdldCgpKTsKICAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIEdzdENsb2NrVGltZSB0aW1lc3RhbXAgPSBnc3RfdXRpbF91
aW50NjRfc2NhbGUocHJpdi0+bnVtYmVyT2ZTYW1wbGVzLCBHU1RfU0VDT05ELCBwcml2LT5zYW1w
bGVSYXRlKTsKKyAgICBwcml2LT5udW1iZXJPZlNhbXBsZXMgKz0gcHJpdi0+ZnJhbWVzVG9QdWxs
OworICAgIEdzdENsb2NrVGltZSBkdXJhdGlvbiA9IGdzdF91dGlsX3VpbnQ2NF9zY2FsZShwcml2
LT5udW1iZXJPZlNhbXBsZXMsIEdTVF9TRUNPTkQsIHByaXYtPnNhbXBsZVJhdGUpIC0gdGltZXN0
YW1wOwogCiAgICAgR1NMaXN0KiBjaGFubmVsQnVmZmVyTGlzdCA9IDA7CiAgICAgcmVnaXN0ZXIg
aW50IGk7CiAgICAgdW5zaWduZWQgYnVmZmVyU2l6ZSA9IHByaXYtPmZyYW1lc1RvUHVsbCAqIHNp
emVvZihmbG9hdCk7CiAgICAgZm9yIChpID0gZ19zbGlzdF9sZW5ndGgocHJpdi0+cGFkcykgLSAx
OyBpID49IDA7IGktLSkgeworICAgICAgICBBdWRpb1NyY0J1ZmZlciogYnVmZmVyID0gZ19uZXco
QXVkaW9TcmNCdWZmZXIsIDEpOwogICAgICAgICBHc3RCdWZmZXIqIGNoYW5uZWxCdWZmZXIgPSBn
c3RfYnVmZmVyX25ld19hbmRfYWxsb2MoYnVmZmVyU2l6ZSk7CiAgICAgICAgIEFTU0VSVChjaGFu
bmVsQnVmZmVyKTsKLSAgICAgICAgY2hhbm5lbEJ1ZmZlckxpc3QgPSBnX3NsaXN0X3ByZXBlbmQo
Y2hhbm5lbEJ1ZmZlckxpc3QsIGNoYW5uZWxCdWZmZXIpOwotICAgICAgICBHc3RNYXBJbmZvIGlu
Zm87Ci0gICAgICAgIGdzdF9idWZmZXJfbWFwKGNoYW5uZWxCdWZmZXIsICZpbmZvLCBHU1RfTUFQ
X1JFQUQpOwotICAgICAgICBwcml2LT5idXMtPnNldENoYW5uZWxNZW1vcnkoaSwgcmVpbnRlcnBy
ZXRfY2FzdDxmbG9hdCo+KGluZm8uZGF0YSksIHByaXYtPmZyYW1lc1RvUHVsbCk7Ci0gICAgICAg
IGdzdF9idWZmZXJfdW5tYXAoY2hhbm5lbEJ1ZmZlciwgJmluZm8pOworICAgICAgICBidWZmZXIt
PmJ1ZmZlciA9IGNoYW5uZWxCdWZmZXI7CisgICAgICAgIEdTVF9CVUZGRVJfVElNRVNUQU1QKGNo
YW5uZWxCdWZmZXIpID0gdGltZXN0YW1wOworICAgICAgICBHU1RfQlVGRkVSX0RVUkFUSU9OKGNo
YW5uZWxCdWZmZXIpID0gZHVyYXRpb247CisgICAgICAgIGdzdF9idWZmZXJfbWFwKGNoYW5uZWxC
dWZmZXIsICZidWZmZXItPmluZm8sIChHc3RNYXBGbGFncykgR1NUX01BUF9SRUFEV1JJVEUpOwor
ICAgICAgICBwcml2LT5idXMtPnNldENoYW5uZWxNZW1vcnkoaSwgcmVpbnRlcnByZXRfY2FzdDxm
bG9hdCo+KGJ1ZmZlci0+aW5mby5kYXRhKSwgcHJpdi0+ZnJhbWVzVG9QdWxsKTsKKyAgICAgICAg
Y2hhbm5lbEJ1ZmZlckxpc3QgPSBnX3NsaXN0X3ByZXBlbmQoY2hhbm5lbEJ1ZmZlckxpc3QsIGJ1
ZmZlcik7CiAgICAgfQogCiAgICAgLy8gRklYTUU6IEFkZCBzdXBwb3J0IGZvciBsb2NhbC9saXZl
IGF1ZGlvIGlucHV0LgpAQCAtMzUwLDcgKzM1NSwxMiBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJB
dWRpb1NyY0xvb3AoV2ViS2l0V2ViQXVkaW9TcmMqIHNyYykKIAogICAgIGZvciAoaSA9IDA7IHBh
ZHNJdCAmJiBidWZmZXJzSXQ7IHBhZHNJdCA9IGdfc2xpc3RfbmV4dChwYWRzSXQpLCBidWZmZXJz
SXQgPSBnX3NsaXN0X25leHQoYnVmZmVyc0l0KSwgKytpKSB7CiAgICAgICAgIEdzdFBhZCogcGFk
ID0gc3RhdGljX2Nhc3Q8R3N0UGFkKj4ocGFkc0l0LT5kYXRhKTsKLSAgICAgICAgR3N0QnVmZmVy
KiBjaGFubmVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8R3N0QnVmZmVyKj4oYnVmZmVyc0l0LT5kYXRh
KTsKKyAgICAgICAgQXVkaW9TcmNCdWZmZXIqIGJ1ZmZlciA9IHN0YXRpY19jYXN0PEF1ZGlvU3Jj
QnVmZmVyKj4oYnVmZmVyc0l0LT5kYXRhKTsKKyAgICAgICAgR3N0QnVmZmVyKiBjaGFubmVsQnVm
ZmVyID0gYnVmZmVyLT5idWZmZXI7CisKKyAgICAgICAgLy8gVW5tYXAgYmVmb3JlIHBhc3Npbmcg
b24gdGhlIGJ1ZmZlci4KKyAgICAgICAgZ3N0X2J1ZmZlcl91bm1hcChjaGFubmVsQnVmZmVyLCAm
YnVmZmVyLT5pbmZvKTsKKyAgICAgICAgZ19mcmVlKGJ1ZmZlcik7CiAKICAgICAgICAgLy8gU2Vu
ZCBzdHJlYW0tc3RhcnQsIHNlZ21lbnQgYW5kIGNhcHMgZXZlbnRzIGRvd25zdHJlYW0sIGFsb25n
IHdpdGggdGhlIGZpcnN0IGJ1ZmZlci4KICAgICAgICAgaWYgKHByaXYtPm5ld1N0cmVhbUV2ZW50
UGVuZGluZykgewpAQCAtMzc1LDggKzM4NSwxMCBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJBdWRp
b1NyY0xvb3AoV2ViS2l0V2ViQXVkaW9TcmMqIHNyYykKICAgICAgICAgfQogCiAgICAgICAgIEdz
dEZsb3dSZXR1cm4gcmV0ID0gZ3N0X3BhZF9jaGFpbihwYWQsIGNoYW5uZWxCdWZmZXIpOwotICAg
ICAgICBpZiAocmV0ICE9IEdTVF9GTE9XX09LKQorICAgICAgICBpZiAocmV0ICE9IEdTVF9GTE9X
X09LKSB7CiAgICAgICAgICAgICBHU1RfRUxFTUVOVF9FUlJPUihzcmMsIENPUkUsIFBBRCwgKCJJ
bnRlcm5hbCBXZWJBdWRpb1NyYyBlcnJvciIpLCAoIkZhaWxlZCB0byBwdXNoIGJ1ZmZlciBvbiAl
czolcyBmbG93OiAlcyIsIEdTVF9ERUJVR19QQURfTkFNRShwYWQpLCBnc3RfZmxvd19nZXRfbmFt
ZShyZXQpKSk7CisgICAgICAgICAgICBnc3RfdGFza19wYXVzZShzcmMtPnByaXYtPnRhc2suZ2V0
KCkpOworICAgICAgICB9CiAgICAgfQogCiAgICAgcHJpdi0+bmV3U3RyZWFtRXZlbnRQZW5kaW5n
ID0gZmFsc2U7CkBAIC0zOTYsMTEgKzQwOCw3IEBAIHN0YXRpYyBHc3RTdGF0ZUNoYW5nZVJldHVy
biB3ZWJLaXRXZWJBdWRpb1NyY0NoYW5nZVN0YXRlKEdzdEVsZW1lbnQqIGVsZW1lbnQsIEdzCiAg
ICAgICAgICAgICBHU1RfRUxFTUVOVF9FUlJPUihzcmMsIENPUkUsIE1JU1NJTkdfUExVR0lOLCAo
MCksICgibm8gaW50ZXJsZWF2ZSIpKTsKICAgICAgICAgICAgIHJldHVybiBHU1RfU1RBVEVfQ0hB
TkdFX0ZBSUxVUkU7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKCFzcmMtPnByaXYtPndhdkVuY29k
ZXIpIHsKLSAgICAgICAgICAgIGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZShlbGVtZW50LCBnc3Rf
bWlzc2luZ19lbGVtZW50X21lc3NhZ2VfbmV3KGVsZW1lbnQsICJ3YXZlbmMiKSk7Ci0gICAgICAg
ICAgICBHU1RfRUxFTUVOVF9FUlJPUihzcmMsIENPUkUsIE1JU1NJTkdfUExVR0lOLCAoMCksICgi
bm8gd2F2ZW5jIikpOwotICAgICAgICAgICAgcmV0dXJuIEdTVF9TVEFURV9DSEFOR0VfRkFJTFVS
RTsKLSAgICAgICAgfQorICAgICAgICBzcmMtPnByaXYtPm51bWJlck9mU2FtcGxlcyA9IDA7CiAg
ICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>