<?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>167614</bug_id>
          
          <creation_ts>2017-01-30 16:46:42 -0800</creation_ts>
          <short_desc>The sampling profile should have an option to sample from C frames.</short_desc>
          <delta_ts>2017-02-01 17:25:07 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1271476</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2017-01-30 16:46:42 -0800</bug_when>
    <thetext>The sampling profile should have an option to sample from C frames.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1271480</commentid>
    <comment_count>1</comment_count>
      <attachid>300160</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2017-01-30 16:51:25 -0800</bug_when>
    <thetext>Created attachment 300160
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1271752</commentid>
    <comment_count>2</comment_count>
      <attachid>300224</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2017-01-31 09:39:39 -0800</bug_when>
    <thetext>Created attachment 300224
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1271794</commentid>
    <comment_count>3</comment_count>
      <attachid>300238</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2017-01-31 11:14:00 -0800</bug_when>
    <thetext>Created attachment 300238
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1271795</commentid>
    <comment_count>4</comment_count>
      <attachid>300239</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2017-01-31 11:14:50 -0800</bug_when>
    <thetext>Created attachment 300239
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1271817</commentid>
    <comment_count>5</comment_count>
      <attachid>300239</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-01-31 11:53:15 -0800</bug_when>
    <thetext>Comment on attachment 300239
Patch

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

r=me

&gt; Source/JavaScriptCore/runtime/SamplingProfiler.cpp:228
&gt; +            resetAtMachineFrame();

I think you may want your own version of resetAtMachineFrame that also calls into the parent&apos;s version. The version here should probably veryify that:
 &quot;isValidFramePointer(m_machineFrame)&quot;

&gt; Source/JavaScriptCore/runtime/SamplingProfiler.cpp:608
&gt; +                stackTrace.frames.last().frameType = FrameType::Host;

Why not add a new frame type?
You can make the various functions that look at frame type for the inspector just skip over C frames for now.

&gt; Source/JavaScriptCore/runtime/SamplingProfiler.cpp:742
&gt; +#if OS(DARWIN)
&gt; +        if (Options::sampleCCode()) {
&gt; +            const char* mangledName = nullptr;
&gt; +            const char* cxaDemangled = nullptr;
&gt; +            Dl_info info;
&gt; +            if (dladdr(cCodePC, &amp;info) &amp;&amp; info.dli_sname)
&gt; +                mangledName = info.dli_sname;
&gt; +            if (mangledName) {
&gt; +                cxaDemangled = abi::__cxa_demangle(mangledName, 0, 0, 0);
&gt; +                return String(cxaDemangled ? cxaDemangled : mangledName);
&gt; +            }
&gt; +        }
&gt; +#endif

Ditto about the FrameType.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272314</commentid>
    <comment_count>6</comment_count>
      <attachid>300362</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2017-02-01 16:03:57 -0800</bug_when>
    <thetext>Created attachment 300362
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272316</commentid>
    <comment_count>7</comment_count>
      <attachid>300364</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2017-02-01 16:04:22 -0800</bug_when>
    <thetext>Created attachment 300364
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272318</commentid>
    <comment_count>8</comment_count>
      <attachid>300365</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2017-02-01 16:06:52 -0800</bug_when>
    <thetext>Created attachment 300365
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272346</commentid>
    <comment_count>9</comment_count>
      <attachid>300365</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-01 17:25:03 -0800</bug_when>
    <thetext>Comment on attachment 300365
Patch for landing

Clearing flags on attachment: 300365

Committed r211542: &lt;http://trac.webkit.org/changeset/211542&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272347</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-01 17:25:07 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300160</attachid>
            <date>2017-01-30 16:51:25 -0800</date>
            <delta_ts>2017-01-31 09:39:36 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-167614-20170130164907.patch</filename>
            <type>text/plain</type>
            <size>11754</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMjQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
ODE3YzljOGQzNjRkMTgyNTAzNWVmMmY0ZTQ0NDhkOTg4ZmU5ZjU4Li4xMDM3Njc5YTZkZTA3YTg3
MmIxNmYzN2Q1ZjYwOTIxYTJhNzM3ODE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAxNy0wMS0zMCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBUaGUgc2FtcGxpbmcgcHJvZmlsZSBzaG91bGQgaGF2ZSBhbiBvcHRp
b24gdG8gc2FtcGxlIGZyb20gQyBmcmFtZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc2MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5oOgorICAgICAgICAqIHJ1bnRp
bWUvU2FtcGxpbmdQcm9maWxlci5jcHA6CisgICAgICAgIChKU0M6OkZyYW1lV2Fsa2VyOjpGcmFt
ZVdhbGtlcik6CisgICAgICAgIChKU0M6OkZyYW1lV2Fsa2VyOjp3YWxrKToKKyAgICAgICAgKEpT
Qzo6RnJhbWVXYWxrZXI6OnJlY29yZEpTRnJhbWUpOgorICAgICAgICAoSlNDOjpDRnJhbWVXYWxr
ZXI6OkNGcmFtZVdhbGtlcik6CisgICAgICAgIChKU0M6OkNGcmFtZVdhbGtlcjo6d2Fsayk6Cisg
ICAgICAgIChKU0M6OkNGcmFtZVdhbGtlcjo6aXNDRnJhbWUpOgorICAgICAgICAoSlNDOjpDRnJh
bWVXYWxrZXI6OmFkdmFuY2VUb1BhcmVudEZyYW1lKToKKyAgICAgICAgKEpTQzo6Q0ZyYW1lV2Fs
a2VyOjpmcmFtZSk6CisgICAgICAgIChKU0M6OlNhbXBsaW5nUHJvZmlsZXI6OnRha2VTYW1wbGUp
OgorICAgICAgICAoSlNDOjpTYW1wbGluZ1Byb2ZpbGVyOjpwcm9jZXNzVW52ZXJpZmllZFN0YWNr
VHJhY2VzKToKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6U3RhY2tGcmFtZTo6ZGlz
cGxheU5hbWUpOgorICAgICAgICAqIHJ1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5oOgorICAgICAg
ICAoSlNDOjpTYW1wbGluZ1Byb2ZpbGVyOjpVbnByb2Nlc3NlZFN0YWNrRnJhbWU6OlVucHJvY2Vz
c2VkU3RhY2tGcmFtZSk6CisKIDIwMTctMDEtMjYgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxl
ckBhcHBsZS5jb20+CiAKICAgICAgICAgY2xhc3NJbmZvIHNob3VsZCB0YWtlIGEgVk0gc28gaXQg
aXMgbm90IG1hdGVyaWFsaXplZCBmcm9tIHRoZSBvYmplY3Qgb24gZWFjaCBjYWxsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKaW5kZXggZjNmNmY0NmJiMTIzMmRjNjYxZDFj
MTQ4N2U5NmExOTk3ZjIwYjY2Ni4uZDk3YjM2ZGUxNTQxYmJmM2Q5YjlhZWQ0OWVmYTE0ZGU4NGE3
YmQ5NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaApAQCAtMzYyLDYg
KzM2Miw3IEBAIHR5cGVkZWYgY29uc3QgY2hhciogb3B0aW9uU3RyaW5nOwogICAgIHYodW5zaWdu
ZWQsIHNhbXBsZUludGVydmFsLCAxMDAwLCBOb3JtYWwsICJUaW1lIGJldHdlZW4gc3RhY2sgdHJh
Y2VzIGluIG1pY3Jvc2Vjb25kcy4iKSBcCiAgICAgdihib29sLCBjb2xsZWN0U2FtcGxpbmdQcm9m
aWxlckRhdGFGb3JKU0NTaGVsbCwgZmFsc2UsIE5vcm1hbCwgIlRoaXMgY29ycmVzcG9uZHMgdG8g
dGhlIEpTQyBzaGVsbCdzIC0tc2FtcGxlIG9wdGlvbi4iKSBcCiAgICAgdihvcHRpb25TdHJpbmcs
IHNhbXBsaW5nUHJvZmlsZXJQYXRoLCBudWxscHRyLCBOb3JtYWwsICJUaGUgcGF0aCB0byB0aGUg
ZGlyZWN0b3J5IHRvIHdyaXRlIHNhbXBpbGluZyBwcm9maWxlciBvdXRwdXQgdG8uIFRoaXMgcHJv
YmFibHkgd2lsbCBub3Qgd29yayB3aXRoIFdLMiB1bmxlc3MgdGhlIHBhdGggaXMgaW4gdGhlIHdo
aXRlbGlzdC4iKSBcCisgICAgdihib29sLCBzYW1wbGVDQ29kZSwgZmFsc2UsIE5vcm1hbCwgIkNh
dXNlcyB0aGUgc2FtcGxpbmcgcHJvZmlsZXIgdG8gcmVjb3JkIHByb2ZpbGluZyBkYXRhdCBmcm9t
IEMgZnJhbWVzLiIpIFwKICAgICBcCiAgICAgdihib29sLCBhbHdheXNHZW5lcmF0ZVBDVG9Db2Rl
T3JpZ2luTWFwLCBmYWxzZSwgTm9ybWFsLCAiVGhpcyB3aWxsIG1ha2Ugc3VyZSB3ZSBhbHdheXMg
Z2VuZXJhdGUgYSBQQ1RvQ29kZU9yaWdpbk1hcCBmb3IgSklUZWQgY29kZS4iKSBcCiAgICAgXApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxl
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNw
cAppbmRleCA4YmYyMTc0ZjA2MDc3NTY2NDlhNWI0N2YzMzU0NGM4Y2IwZmUyNjU4Li5iMGU4Yjk2
MzczYmIwN2M3MDdmOWQyZTU0NmIxODA5ZDlhNTIxNGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcApAQCAtNTAsNiArNTAsMTEg
QEAKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVp
bGRlci5oPgogCisjaWYgT1MoREFSV0lOKQorI2luY2x1ZGUgPGN4eGFiaS5oPgorI2luY2x1ZGUg
PGRsZmNuLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIEpTQyB7CiAKIHN0YXRpYyBkb3VibGUgc051
bVRvdGFsU3RhY2tUcmFjZXMgPSAwOwpAQCAtNzUsNyArODAsNyBAQCBBTFdBWVNfSU5MSU5FIHN0
YXRpYyB2b2lkIHJlcG9ydFN0YXRzKCkKIAogY2xhc3MgRnJhbWVXYWxrZXIgewogcHVibGljOgot
ICAgIEZyYW1lV2Fsa2VyKEV4ZWNTdGF0ZSogY2FsbEZyYW1lLCBWTSYgdm0sIGNvbnN0IExvY2tI
b2xkZXImIGNvZGVCbG9ja1NldExvY2tlciwgY29uc3QgTG9ja0hvbGRlciYgbWFjaGluZVRocmVh
ZHNMb2NrZXIpCisgICAgRnJhbWVXYWxrZXIoVk0mIHZtLCBFeGVjU3RhdGUqIGNhbGxGcmFtZSwg
Y29uc3QgTG9ja0hvbGRlciYgY29kZUJsb2NrU2V0TG9ja2VyLCBjb25zdCBMb2NrSG9sZGVyJiBt
YWNoaW5lVGhyZWFkc0xvY2tlcikKICAgICAgICAgOiBtX3ZtKHZtKQogICAgICAgICAsIG1fY2Fs
bEZyYW1lKGNhbGxGcmFtZSkKICAgICAgICAgLCBtX3ZtRW50cnlGcmFtZSh2bS50b3BWTUVudHJ5
RnJhbWUpCkBAIC05MiwxNSArOTcsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJlc2V0QXRNYWNoaW5l
RnJhbWUoKTsKICAgICAgICAgc2l6ZV90IG1heFN0YWNrVHJhY2VTaXplID0gc3RhY2tUcmFjZS5z
aXplKCk7CiAgICAgICAgIHdoaWxlICghaXNBdFRvcCgpICYmICFtX2JhaWxpbmdPdXQgJiYgbV9k
ZXB0aCA8IG1heFN0YWNrVHJhY2VTaXplKSB7Ci0gICAgICAgICAgICBDYWxsU2l0ZUluZGV4IGNh
bGxTaXRlSW5kZXg7Ci0gICAgICAgICAgICBKU1ZhbHVlIHVuc2FmZUNhbGxlZSA9IG1fY2FsbEZy
YW1lLT51bnNhZmVDYWxsZWUoKTsKLSAgICAgICAgICAgIENvZGVCbG9jayogY29kZUJsb2NrID0g
bV9jYWxsRnJhbWUtPnVuc2FmZUNvZGVCbG9jaygpOwotICAgICAgICAgICAgaWYgKGNvZGVCbG9j
aykgewotICAgICAgICAgICAgICAgIEFTU0VSVChpc1ZhbGlkQ29kZUJsb2NrKGNvZGVCbG9jaykp
OwotICAgICAgICAgICAgICAgIGNhbGxTaXRlSW5kZXggPSBtX2NhbGxGcmFtZS0+dW5zYWZlQ2Fs
bFNpdGVJbmRleCgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RhY2tUcmFjZVttX2Rl
cHRoXSA9IFVucHJvY2Vzc2VkU3RhY2tGcmFtZShjb2RlQmxvY2ssIEpTVmFsdWU6OmVuY29kZSh1
bnNhZmVDYWxsZWUpLCBjYWxsU2l0ZUluZGV4KTsKLSAgICAgICAgICAgIG1fZGVwdGgrKzsKKyAg
ICAgICAgICAgIHJlY29yZEpTRnJhbWUoc3RhY2tUcmFjZSk7CiAgICAgICAgICAgICBhZHZhbmNl
VG9QYXJlbnRGcmFtZSgpOwogICAgICAgICAgICAgcmVzZXRBdE1hY2hpbmVGcmFtZSgpOwogICAg
ICAgICB9CkBAIC0xMTQsNyArMTExLDIxIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuICFtX2Jh
aWxpbmdPdXQ7CiAgICAgfQogCi1wcml2YXRlOgorcHJvdGVjdGVkOgorCisgICAgU1VQUFJFU1Nf
QVNBTgorICAgIHZvaWQgcmVjb3JkSlNGcmFtZShWZWN0b3I8VW5wcm9jZXNzZWRTdGFja0ZyYW1l
PiYgc3RhY2tUcmFjZSkKKyAgICB7CisgICAgICAgIENhbGxTaXRlSW5kZXggY2FsbFNpdGVJbmRl
eDsKKyAgICAgICAgSlNWYWx1ZSB1bnNhZmVDYWxsZWUgPSBtX2NhbGxGcmFtZS0+dW5zYWZlQ2Fs
bGVlKCk7CisgICAgICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gbV9jYWxsRnJhbWUtPnVuc2Fm
ZUNvZGVCbG9jaygpOworICAgICAgICBpZiAoY29kZUJsb2NrKSB7CisgICAgICAgICAgICBBU1NF
UlQoaXNWYWxpZENvZGVCbG9jayhjb2RlQmxvY2spKTsKKyAgICAgICAgICAgIGNhbGxTaXRlSW5k
ZXggPSBtX2NhbGxGcmFtZS0+dW5zYWZlQ2FsbFNpdGVJbmRleCgpOworICAgICAgICB9CisgICAg
ICAgIHN0YWNrVHJhY2VbbV9kZXB0aF0gPSBVbnByb2Nlc3NlZFN0YWNrRnJhbWUoY29kZUJsb2Nr
LCBKU1ZhbHVlOjplbmNvZGUodW5zYWZlQ2FsbGVlKSwgY2FsbFNpdGVJbmRleCk7CisgICAgICAg
IG1fZGVwdGgrKzsKKyAgICB9CiAKICAgICBTVVBQUkVTU19BU0FOCiAgICAgdm9pZCBhZHZhbmNl
VG9QYXJlbnRGcmFtZSgpCkBAIC0xODQsNiArMTk1LDY0IEBAIHByaXZhdGU6CiAgICAgc2l6ZV90
IG1fZGVwdGggeyAwIH07CiB9OwogCitjbGFzcyBDRnJhbWVXYWxrZXIgOiBwdWJsaWMgRnJhbWVX
YWxrZXIgeworcHVibGljOgorICAgIHR5cGVkZWYgRnJhbWVXYWxrZXIgQmFzZTsKKworICAgIENG
cmFtZVdhbGtlcihWTSYgdm0sIHZvaWQqIG1hY2hpbmVGcmFtZSwgRXhlY1N0YXRlKiBjYWxsRnJh
bWUsIGNvbnN0IExvY2tIb2xkZXImIGNvZGVCbG9ja1NldExvY2tlciwgY29uc3QgTG9ja0hvbGRl
ciYgbWFjaGluZVRocmVhZHNMb2NrZXIpCisgICAgICAgIDogQmFzZSh2bSwgY2FsbEZyYW1lLCBj
b2RlQmxvY2tTZXRMb2NrZXIsIG1hY2hpbmVUaHJlYWRzTG9ja2VyKQorICAgICAgICAsIG1fbWFj
aGluZUZyYW1lKG1hY2hpbmVGcmFtZSkKKyAgICB7CisgICAgfQorCisgICAgc2l6ZV90IHdhbGso
VmVjdG9yPFVucHJvY2Vzc2VkU3RhY2tGcmFtZT4mIHN0YWNrVHJhY2UsIGJvb2wmIGRpZFJ1bk91
dE9mU3BhY2UpCisgICAgeworICAgICAgICBpZiAoc1JlcG9ydFN0YXRzKQorICAgICAgICAgICAg
c051bVRvdGFsV2Fsa3MrKzsKKyAgICAgICAgcmVzZXRBdE1hY2hpbmVGcmFtZSgpOworICAgICAg
ICBzaXplX3QgbWF4U3RhY2tUcmFjZVNpemUgPSBzdGFja1RyYWNlLnNpemUoKTsKKyAgICAgICAg
d2hpbGUgKCFpc0F0VG9wKCkgJiYgIW1fYmFpbGluZ091dCAmJiBtX2RlcHRoIDwgbWF4U3RhY2tU
cmFjZVNpemUpIHsKKyAgICAgICAgICAgIGlmIChtX21hY2hpbmVGcmFtZSA+IG1fY2FsbEZyYW1l
KSB7CisgICAgICAgICAgICAgICAgLy8gSWYgd2UgZ2V0IHRvIHRoaXMgc3RhdGUgd2UgcHJvYmFi
bHkgaGF2ZSBhbiBpbnZhbGlkIHRyYWNlLgorICAgICAgICAgICAgICAgIG1fYmFpbGluZ091dCA9
IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIGlmIChpc0NGcmFtZSgpKSB7CisgICAgICAgICAgICAgICAgc3RhY2tUcmFjZVttX2RlcHRo
XSA9IFVucHJvY2Vzc2VkU3RhY2tGcmFtZShmcmFtZSgpLT5wYyk7CisgICAgICAgICAgICAgICAg
bV9kZXB0aCsrOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgcmVjb3JkSlNG
cmFtZShzdGFja1RyYWNlKTsKKyAgICAgICAgICAgIGFkdmFuY2VUb1BhcmVudEZyYW1lKCk7Cisg
ICAgICAgICAgICByZXNldEF0TWFjaGluZUZyYW1lKCk7CisgICAgICAgIH0KKyAgICAgICAgZGlk
UnVuT3V0T2ZTcGFjZSA9IG1fZGVwdGggPj0gbWF4U3RhY2tUcmFjZVNpemUgJiYgIWlzQXRUb3Ao
KTsKKyAgICAgICAgcmVwb3J0U3RhdHMoKTsKKyAgICAgICAgcmV0dXJuIG1fZGVwdGg7CisgICAg
fQorCitwcml2YXRlOgorCisgICAgYm9vbCBpc0NGcmFtZSgpCisgICAgeworICAgICAgICByZXR1
cm4gbV9tYWNoaW5lRnJhbWUgIT0gbV9jYWxsRnJhbWU7CisgICAgfQorCisgICAgdm9pZCBhZHZh
bmNlVG9QYXJlbnRGcmFtZSgpCisgICAgeworICAgICAgICBpZiAoIWlzQ0ZyYW1lKCkpCisgICAg
ICAgICAgICBCYXNlOjphZHZhbmNlVG9QYXJlbnRGcmFtZSgpOworICAgICAgICBtX21hY2hpbmVG
cmFtZSA9IGZyYW1lKCktPmNhbGxlckZyYW1lOworICAgIH0KKworICAgIENhbGxlckZyYW1lQW5k
UEMqIGZyYW1lKCkKKyAgICB7CisgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PENhbGxl
ckZyYW1lQW5kUEMqPihtX21hY2hpbmVGcmFtZSk7CisgICAgfQorCisgICAgdm9pZCogbV9tYWNo
aW5lRnJhbWU7Cit9OworCiBTYW1wbGluZ1Byb2ZpbGVyOjpTYW1wbGluZ1Byb2ZpbGVyKFZNJiB2
bSwgUmVmUHRyPFN0b3B3YXRjaD4mJiBzdG9wd2F0Y2gpCiAgICAgOiBtX3ZtKHZtKQogICAgICwg
bV9zdG9wd2F0Y2goV1RGTW92ZShzdG9wd2F0Y2gpKQpAQCAtMjU3LDYgKzMyNiw3IEBAIHZvaWQg
U2FtcGxpbmdQcm9maWxlcjo6dGFrZVNhbXBsZShjb25zdCBMb2NrSG9sZGVyJiwgc3RkOjpjaHJv
bm86Om1pY3Jvc2Vjb25kcyYKICAgICAgICAgaWYgKGRpZFN1c3BlbmQpIHsKICAgICAgICAgICAg
IC8vIFdoaWxlIHRoZSBKU0MgdGhyZWFkIGlzIHN1c3BlbmRlZCwgd2UgY2FuJ3QgZG8gdGhpbmdz
IGxpa2UgbWFsbG9jIGJlY2F1c2UgdGhlIEpTQyB0aHJlYWQKICAgICAgICAgICAgIC8vIG1heSBi
ZSBob2xkaW5nIHRoZSBtYWxsb2MgbG9jay4KKyAgICAgICAgICAgIHZvaWQqIG1hY2hpbmVGcmFt
ZTsKICAgICAgICAgICAgIEV4ZWNTdGF0ZSogY2FsbEZyYW1lOwogICAgICAgICAgICAgdm9pZCog
bWFjaGluZVBDOwogICAgICAgICAgICAgYm9vbCB0b3BGcmFtZUlzTExJbnQgPSBmYWxzZTsKQEAg
LTI2NCw3ICszMzQsOCBAQCB2b2lkIFNhbXBsaW5nUHJvZmlsZXI6OnRha2VTYW1wbGUoY29uc3Qg
TG9ja0hvbGRlciYsIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMmCiAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgTWFjaGluZVRocmVhZHM6OlRocmVhZDo6UmVnaXN0ZXJzIHJlZ2lzdGVy
czsKICAgICAgICAgICAgICAgICBtX2pzY0V4ZWN1dGlvblRocmVhZC0+Z2V0UmVnaXN0ZXJzKHJl
Z2lzdGVycyk7Ci0gICAgICAgICAgICAgICAgY2FsbEZyYW1lID0gc3RhdGljX2Nhc3Q8RXhlY1N0
YXRlKj4ocmVnaXN0ZXJzLmZyYW1lUG9pbnRlcigpKTsKKyAgICAgICAgICAgICAgICBtYWNoaW5l
RnJhbWUgPSByZWdpc3RlcnMuZnJhbWVQb2ludGVyKCk7CisgICAgICAgICAgICAgICAgY2FsbEZy
YW1lID0gc3RhdGljX2Nhc3Q8RXhlY1N0YXRlKj4obWFjaGluZUZyYW1lKTsKICAgICAgICAgICAg
ICAgICBtYWNoaW5lUEMgPSByZWdpc3RlcnMuaW5zdHJ1Y3Rpb25Qb2ludGVyKCk7CiAgICAgICAg
ICAgICAgICAgbGxpbnRQQyA9IHJlZ2lzdGVycy5sbGludFBDKCk7CiAgICAgICAgICAgICAgICAg
bV9qc2NFeGVjdXRpb25UaHJlYWQtPmZyZWVSZWdpc3RlcnMocmVnaXN0ZXJzKTsKQEAgLTI5MCw4
ICszNjEsMTIgQEAgdm9pZCBTYW1wbGluZ1Byb2ZpbGVyOjp0YWtlU2FtcGxlKGNvbnN0IExvY2tI
b2xkZXImLCBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzJgogICAgICAgICAgICAgc2l6ZV90IHdh
bGtTaXplOwogICAgICAgICAgICAgYm9vbCB3YXNWYWxpZFdhbGs7CiAgICAgICAgICAgICBib29s
IGRpZFJ1bk91dE9mVmVjdG9yU3BhY2U7Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
RnJhbWVXYWxrZXIgd2Fsa2VyKGNhbGxGcmFtZSwgbV92bSwgY29kZUJsb2NrU2V0TG9ja2VyLCBt
YWNoaW5lVGhyZWFkc0xvY2tlcik7CisgICAgICAgICAgICBpZiAoT3B0aW9uczo6c2FtcGxlQ0Nv
ZGUoKSkgeworICAgICAgICAgICAgICAgIENGcmFtZVdhbGtlciB3YWxrZXIobV92bSwgbWFjaGlu
ZUZyYW1lLCBjYWxsRnJhbWUsIGNvZGVCbG9ja1NldExvY2tlciwgbWFjaGluZVRocmVhZHNMb2Nr
ZXIpOworICAgICAgICAgICAgICAgIHdhbGtTaXplID0gd2Fsa2VyLndhbGsobV9jdXJyZW50RnJh
bWVzLCBkaWRSdW5PdXRPZlZlY3RvclNwYWNlKTsKKyAgICAgICAgICAgICAgICB3YXNWYWxpZFdh
bGsgPSB3YWxrZXIud2FzVmFsaWRXYWxrKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgICAgIEZyYW1lV2Fsa2VyIHdhbGtlcihtX3ZtLCBjYWxsRnJhbWUsIGNvZGVCbG9ja1Nl
dExvY2tlciwgbWFjaGluZVRocmVhZHNMb2NrZXIpOwogICAgICAgICAgICAgICAgIHdhbGtTaXpl
ID0gd2Fsa2VyLndhbGsobV9jdXJyZW50RnJhbWVzLCBkaWRSdW5PdXRPZlZlY3RvclNwYWNlKTsK
ICAgICAgICAgICAgICAgICB3YXNWYWxpZFdhbGsgPSB3YWxrZXIud2FzVmFsaWRXYWxrKCk7CiAg
ICAgICAgICAgICB9CkBAIC01MDMsMTIgKzU3OCwxNyBAQCB2b2lkIFNhbXBsaW5nUHJvZmlsZXI6
OnByb2Nlc3NVbnZlcmlmaWVkU3RhY2tUcmFjZXMoKQogI2Vsc2UKICAgICAgICAgICAgICAgICBh
cHBlbmRDb2RlQmxvY2tOb0lubGluaW5nKCk7CiAjZW5kaWYKKyAgICAgICAgICAgIH0gZWxzZSBp
ZiAodW5wcm9jZXNzZWRTdGFja0ZyYW1lLmNDb2RlUEMpIHsKKyAgICAgICAgICAgICAgICBhcHBl
bmRFbXB0eUZyYW1lKCk7CisgICAgICAgICAgICAgICAgc3RhY2tUcmFjZS5mcmFtZXMubGFzdCgp
LmNDb2RlUEMgPSB1bnByb2Nlc3NlZFN0YWNrRnJhbWUuY0NvZGVQQzsKKyAgICAgICAgICAgICAg
ICBzdGFja1RyYWNlLmZyYW1lcy5sYXN0KCkuZnJhbWVUeXBlID0gRnJhbWVUeXBlOjpIb3N0Owog
ICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgYXBwZW5kRW1wdHlGcmFtZSgpOwog
CiAgICAgICAgICAgICAvLyBOb3RlIHRoYXQgdGhpcyBpcyBva2F5IHRvIGRvIGlmIHdlIHdhbGtl
ZCB0aGUgaW5saW5lIHN0YWNrIGJlY2F1c2UKICAgICAgICAgICAgIC8vIHRoZSBtYWNoaW5lIGZy
YW1lIHdpbGwgYmUgYXQgdGhlIHRvcCBvZiB0aGUgcHJvY2Vzc2VkIHN0YWNrIHRyYWNlLgotICAg
ICAgICAgICAgc3RvcmVDYWxsZWVJbnRvVG9wRnJhbWUodW5wcm9jZXNzZWRTdGFja0ZyYW1lLnVu
dmVyaWZpZWRDYWxsZWUpOworICAgICAgICAgICAgaWYgKCF1bnByb2Nlc3NlZFN0YWNrRnJhbWUu
Y0NvZGVQQykKKyAgICAgICAgICAgICAgICBzdG9yZUNhbGxlZUludG9Ub3BGcmFtZSh1bnByb2Nl
c3NlZFN0YWNrRnJhbWUudW52ZXJpZmllZENhbGxlZSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAg
LTYyMiw5ICs3MDIsMjIgQEAgU3RyaW5nIFNhbXBsaW5nUHJvZmlsZXI6OlN0YWNrRnJhbWU6OmRp
c3BsYXlOYW1lKFZNJiB2bSkKIAogICAgIGlmIChmcmFtZVR5cGUgPT0gRnJhbWVUeXBlOjpVbmtu
b3duKQogICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCIodW5rbm93bikiKTsKLSAgICBpZiAo
ZnJhbWVUeXBlID09IEZyYW1lVHlwZTo6SG9zdCkKKyAgICBpZiAoZnJhbWVUeXBlID09IEZyYW1l
VHlwZTo6SG9zdCkgeworI2lmIE9TKERBUldJTikKKyAgICAgICAgaWYgKE9wdGlvbnM6OnNhbXBs
ZUNDb2RlKCkpIHsKKyAgICAgICAgICAgIGNvbnN0IGNoYXIqIG1hbmdsZWROYW1lID0gbnVsbHB0
cjsKKyAgICAgICAgICAgIGNvbnN0IGNoYXIqIGN4YURlbWFuZ2xlZCA9IG51bGxwdHI7CisgICAg
ICAgICAgICBEbF9pbmZvIGluZm87CisgICAgICAgICAgICBpZiAoZGxhZGRyKGNDb2RlUEMsICZp
bmZvKSAmJiBpbmZvLmRsaV9zbmFtZSkKKyAgICAgICAgICAgICAgICBtYW5nbGVkTmFtZSA9IGlu
Zm8uZGxpX3NuYW1lOworICAgICAgICAgICAgaWYgKG1hbmdsZWROYW1lKSB7CisgICAgICAgICAg
ICAgICAgY3hhRGVtYW5nbGVkID0gYWJpOjpfX2N4YV9kZW1hbmdsZShtYW5nbGVkTmFtZSwgMCwg
MCwgMCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhjeGFEZW1hbmdsZWQgPyBjeGFE
ZW1hbmdsZWQgOiBtYW5nbGVkTmFtZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyNlbmRp
ZgogICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCIoaG9zdCkiKTsKLQorICAgIH0KICAgICBp
ZiAoZXhlY3V0YWJsZS0+aXNIb3N0RnVuY3Rpb24oKSkKICAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PE5hdGl2ZUV4ZWN1dGFibGUqPihleGVjdXRhYmxlKS0+bmFtZSgpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmgKaW5kZXggYzkyZGU2
ZjgwNzM2NGU4Mjg5MTBkM2ZjYTYzMDIzMmY1YjhmZDgzYy4uZTc3ODg0NTQ3Zjc0NzVkNDUzODM4
MTJlNTNkODY5ODA2NDEwM2U5OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU2FtcGxpbmdQcm9maWxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1NhbXBsaW5nUHJvZmlsZXIuaApAQCAtNTEsMjEgKzUxLDI2IEBAIHB1YmxpYzoKICAgICAg
ICAgICAgICwgdmVyaWZpZWRDb2RlQmxvY2soY29kZUJsb2NrKQogICAgICAgICAgICAgLCBjYWxs
U2l0ZUluZGV4KGNhbGxTaXRlSW5kZXgpCiAgICAgICAgIHsgfQorCisgICAgICAgIFVucHJvY2Vz
c2VkU3RhY2tGcmFtZSh2b2lkKiBwYykKKyAgICAgICAgICAgIDogY0NvZGVQQyhwYykKKyAgICAg
ICAgeyB9CisKICAgICAgICAgVW5wcm9jZXNzZWRTdGFja0ZyYW1lKCkKICAgICAgICAgewogICAg
ICAgICAgICAgdW52ZXJpZmllZENhbGxlZSA9IEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOwot
ICAgICAgICAgICAgdmVyaWZpZWRDb2RlQmxvY2sgPSBudWxscHRyOwogICAgICAgICB9CiAKKyAg
ICAgICAgdm9pZCogY0NvZGVQQyB7IG51bGxwdHIgfTsKICAgICAgICAgRW5jb2RlZEpTVmFsdWUg
dW52ZXJpZmllZENhbGxlZTsKLSAgICAgICAgQ29kZUJsb2NrKiB2ZXJpZmllZENvZGVCbG9jazsK
KyAgICAgICAgQ29kZUJsb2NrKiB2ZXJpZmllZENvZGVCbG9jayB7IG51bGxwdHIgfTsKICAgICAg
ICAgQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZUluZGV4OwogICAgIH07CiAKICAgICBlbnVtIGNsYXNz
IEZyYW1lVHlwZSB7IAogICAgICAgICBFeGVjdXRhYmxlLAogICAgICAgICBIb3N0LAotICAgICAg
ICBVbmtub3duIAorICAgICAgICBVbmtub3duCiAgICAgfTsKIAogICAgIHN0cnVjdCBTdGFja0Zy
YW1lIHsKQEAgLTc4LDYgKzgzLDcgQEAgcHVibGljOgogICAgICAgICB7IH0KIAogICAgICAgICBG
cmFtZVR5cGUgZnJhbWVUeXBlIHsgRnJhbWVUeXBlOjpVbmtub3duIH07CisgICAgICAgIHZvaWQq
IGNDb2RlUEMgeyBudWxscHRyIH07CiAgICAgICAgIEV4ZWN1dGFibGVCYXNlKiBleGVjdXRhYmxl
IHsgbnVsbHB0ciB9OwogICAgICAgICBKU09iamVjdCogY2FsbGVlIHsgbnVsbHB0ciB9OwogICAg
ICAgICAvLyBUaGVzZSBhdHRlbXB0IHRvIGJlIGV4cHJlc3Npb24tbGV2ZWwgbGluZSBhbmQgY29s
dW1uIG51bWJlci4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300224</attachid>
            <date>2017-01-31 09:39:39 -0800</date>
            <delta_ts>2017-01-31 11:13:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167614-20170131093728.patch</filename>
            <type>text/plain</type>
            <size>11995</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMjQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
ODE3YzljOGQzNjRkMTgyNTAzNWVmMmY0ZTQ0NDhkOTg4ZmU5ZjU4Li5kMDQ1NzNjM2VmNGU5ODM1
NDNkZmUwMmRmOGE1ZmNlYzY5ZjdkMWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAxNy0wMS0zMCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBUaGUgc2FtcGxpbmcgcHJvZmlsZSBzaG91bGQgaGF2ZSBhbiBvcHRp
b24gdG8gc2FtcGxlIGZyb20gQyBmcmFtZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc2MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZSBzaG91bGQgYmUgYWJsZSB0byB1c2UgdGhlIHNhbXBsaW5n
IHByb2ZpbGVyLCBhdCBsZWFzdAorICAgICAgICBpbnRlcm5hbGx5LCB0byB0cmFjZSBDIGNhbGxz
LiAgVGhpcyBwYXRjaCBvbmx5IG1vZGlmaWVzIHRoZSBKU0MKKyAgICAgICAgc2hlbGwgYWx0aG91
Z2ggaXQgd291bGQgYmUgbmljZSB0byBhZGQgaXQgdG8gdGhlIFdlYiBJbnNwZWN0b3IgaW4KKyAg
ICAgICAgYSBmdXR1cmUgcGF0Y2guCisKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuaDoKKyAg
ICAgICAgKiBydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwOgorICAgICAgICAoSlNDOjpGcmFt
ZVdhbGtlcjo6RnJhbWVXYWxrZXIpOgorICAgICAgICAoSlNDOjpGcmFtZVdhbGtlcjo6d2Fsayk6
CisgICAgICAgIChKU0M6OkZyYW1lV2Fsa2VyOjpyZWNvcmRKU0ZyYW1lKToKKyAgICAgICAgKEpT
Qzo6Q0ZyYW1lV2Fsa2VyOjpDRnJhbWVXYWxrZXIpOgorICAgICAgICAoSlNDOjpDRnJhbWVXYWxr
ZXI6OndhbGspOgorICAgICAgICAoSlNDOjpDRnJhbWVXYWxrZXI6OmlzQ0ZyYW1lKToKKyAgICAg
ICAgKEpTQzo6Q0ZyYW1lV2Fsa2VyOjphZHZhbmNlVG9QYXJlbnRGcmFtZSk6CisgICAgICAgIChK
U0M6OkNGcmFtZVdhbGtlcjo6ZnJhbWUpOgorICAgICAgICAoSlNDOjpTYW1wbGluZ1Byb2ZpbGVy
Ojp0YWtlU2FtcGxlKToKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6cHJvY2Vzc1Vu
dmVyaWZpZWRTdGFja1RyYWNlcyk6CisgICAgICAgIChKU0M6OlNhbXBsaW5nUHJvZmlsZXI6OlN0
YWNrRnJhbWU6OmRpc3BsYXlOYW1lKToKKyAgICAgICAgKiBydW50aW1lL1NhbXBsaW5nUHJvZmls
ZXIuaDoKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6VW5wcm9jZXNzZWRTdGFja0Zy
YW1lOjpVbnByb2Nlc3NlZFN0YWNrRnJhbWUpOgorCiAyMDE3LTAxLTI2ICBLZWl0aCBNaWxsZXIg
IDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIGNsYXNzSW5mbyBzaG91bGQgdGFr
ZSBhIFZNIHNvIGl0IGlzIG5vdCBtYXRlcmlhbGl6ZWQgZnJvbSB0aGUgb2JqZWN0IG9uIGVhY2gg
Y2FsbApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCmluZGV4IGYzZjZmNDZi
YjEyMzJkYzY2MWQxYzE0ODdlOTZhMTk5N2YyMGI2NjYuLmQ5N2IzNmRlMTU0MWJiZjNkOWI5YWVk
NDllZmExNGRlODRhN2JkOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09wdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25z
LmgKQEAgLTM2Miw2ICszNjIsNyBAQCB0eXBlZGVmIGNvbnN0IGNoYXIqIG9wdGlvblN0cmluZzsK
ICAgICB2KHVuc2lnbmVkLCBzYW1wbGVJbnRlcnZhbCwgMTAwMCwgTm9ybWFsLCAiVGltZSBiZXR3
ZWVuIHN0YWNrIHRyYWNlcyBpbiBtaWNyb3NlY29uZHMuIikgXAogICAgIHYoYm9vbCwgY29sbGVj
dFNhbXBsaW5nUHJvZmlsZXJEYXRhRm9ySlNDU2hlbGwsIGZhbHNlLCBOb3JtYWwsICJUaGlzIGNv
cnJlc3BvbmRzIHRvIHRoZSBKU0Mgc2hlbGwncyAtLXNhbXBsZSBvcHRpb24uIikgXAogICAgIHYo
b3B0aW9uU3RyaW5nLCBzYW1wbGluZ1Byb2ZpbGVyUGF0aCwgbnVsbHB0ciwgTm9ybWFsLCAiVGhl
IHBhdGggdG8gdGhlIGRpcmVjdG9yeSB0byB3cml0ZSBzYW1waWxpbmcgcHJvZmlsZXIgb3V0cHV0
IHRvLiBUaGlzIHByb2JhYmx5IHdpbGwgbm90IHdvcmsgd2l0aCBXSzIgdW5sZXNzIHRoZSBwYXRo
IGlzIGluIHRoZSB3aGl0ZWxpc3QuIikgXAorICAgIHYoYm9vbCwgc2FtcGxlQ0NvZGUsIGZhbHNl
LCBOb3JtYWwsICJDYXVzZXMgdGhlIHNhbXBsaW5nIHByb2ZpbGVyIHRvIHJlY29yZCBwcm9maWxp
bmcgZGF0YXQgZnJvbSBDIGZyYW1lcy4iKSBcCiAgICAgXAogICAgIHYoYm9vbCwgYWx3YXlzR2Vu
ZXJhdGVQQ1RvQ29kZU9yaWdpbk1hcCwgZmFsc2UsIE5vcm1hbCwgIlRoaXMgd2lsbCBtYWtlIHN1
cmUgd2UgYWx3YXlzIGdlbmVyYXRlIGEgUENUb0NvZGVPcmlnaW5NYXAgZm9yIEpJVGVkIGNvZGUu
IikgXAogICAgIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Nh
bXBsaW5nUHJvZmlsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxp
bmdQcm9maWxlci5jcHAKaW5kZXggOGJmMjE3NGYwNjA3NzU2NjQ5YTViNDdmMzM1NDRjOGNiMGZl
MjY1OC4uYjBlOGI5NjM3M2JiMDdjNzA3ZjlkMmU1NDZiMTgwOWQ5YTUyMTRjOSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAKQEAg
LTUwLDYgKzUwLDExIEBACiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAorI2lmIE9TKERBUldJTikKKyNpbmNsdWRlIDxjeHhhYmku
aD4KKyNpbmNsdWRlIDxkbGZjbi5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBKU0MgewogCiBzdGF0
aWMgZG91YmxlIHNOdW1Ub3RhbFN0YWNrVHJhY2VzID0gMDsKQEAgLTc1LDcgKzgwLDcgQEAgQUxX
QVlTX0lOTElORSBzdGF0aWMgdm9pZCByZXBvcnRTdGF0cygpCiAKIGNsYXNzIEZyYW1lV2Fsa2Vy
IHsKIHB1YmxpYzoKLSAgICBGcmFtZVdhbGtlcihFeGVjU3RhdGUqIGNhbGxGcmFtZSwgVk0mIHZt
LCBjb25zdCBMb2NrSG9sZGVyJiBjb2RlQmxvY2tTZXRMb2NrZXIsIGNvbnN0IExvY2tIb2xkZXIm
IG1hY2hpbmVUaHJlYWRzTG9ja2VyKQorICAgIEZyYW1lV2Fsa2VyKFZNJiB2bSwgRXhlY1N0YXRl
KiBjYWxsRnJhbWUsIGNvbnN0IExvY2tIb2xkZXImIGNvZGVCbG9ja1NldExvY2tlciwgY29uc3Qg
TG9ja0hvbGRlciYgbWFjaGluZVRocmVhZHNMb2NrZXIpCiAgICAgICAgIDogbV92bSh2bSkKICAg
ICAgICAgLCBtX2NhbGxGcmFtZShjYWxsRnJhbWUpCiAgICAgICAgICwgbV92bUVudHJ5RnJhbWUo
dm0udG9wVk1FbnRyeUZyYW1lKQpAQCAtOTIsMTUgKzk3LDcgQEAgcHVibGljOgogICAgICAgICBy
ZXNldEF0TWFjaGluZUZyYW1lKCk7CiAgICAgICAgIHNpemVfdCBtYXhTdGFja1RyYWNlU2l6ZSA9
IHN0YWNrVHJhY2Uuc2l6ZSgpOwogICAgICAgICB3aGlsZSAoIWlzQXRUb3AoKSAmJiAhbV9iYWls
aW5nT3V0ICYmIG1fZGVwdGggPCBtYXhTdGFja1RyYWNlU2l6ZSkgewotICAgICAgICAgICAgQ2Fs
bFNpdGVJbmRleCBjYWxsU2l0ZUluZGV4OwotICAgICAgICAgICAgSlNWYWx1ZSB1bnNhZmVDYWxs
ZWUgPSBtX2NhbGxGcmFtZS0+dW5zYWZlQ2FsbGVlKCk7Ci0gICAgICAgICAgICBDb2RlQmxvY2sq
IGNvZGVCbG9jayA9IG1fY2FsbEZyYW1lLT51bnNhZmVDb2RlQmxvY2soKTsKLSAgICAgICAgICAg
IGlmIChjb2RlQmxvY2spIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQoaXNWYWxpZENvZGVCbG9j
ayhjb2RlQmxvY2spKTsKLSAgICAgICAgICAgICAgICBjYWxsU2l0ZUluZGV4ID0gbV9jYWxsRnJh
bWUtPnVuc2FmZUNhbGxTaXRlSW5kZXgoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0
YWNrVHJhY2VbbV9kZXB0aF0gPSBVbnByb2Nlc3NlZFN0YWNrRnJhbWUoY29kZUJsb2NrLCBKU1Zh
bHVlOjplbmNvZGUodW5zYWZlQ2FsbGVlKSwgY2FsbFNpdGVJbmRleCk7Ci0gICAgICAgICAgICBt
X2RlcHRoKys7CisgICAgICAgICAgICByZWNvcmRKU0ZyYW1lKHN0YWNrVHJhY2UpOwogICAgICAg
ICAgICAgYWR2YW5jZVRvUGFyZW50RnJhbWUoKTsKICAgICAgICAgICAgIHJlc2V0QXRNYWNoaW5l
RnJhbWUoKTsKICAgICAgICAgfQpAQCAtMTE0LDcgKzExMSwyMSBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiAhbV9iYWlsaW5nT3V0OwogICAgIH0KIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoKKwor
ICAgIFNVUFBSRVNTX0FTQU4KKyAgICB2b2lkIHJlY29yZEpTRnJhbWUoVmVjdG9yPFVucHJvY2Vz
c2VkU3RhY2tGcmFtZT4mIHN0YWNrVHJhY2UpCisgICAgeworICAgICAgICBDYWxsU2l0ZUluZGV4
IGNhbGxTaXRlSW5kZXg7CisgICAgICAgIEpTVmFsdWUgdW5zYWZlQ2FsbGVlID0gbV9jYWxsRnJh
bWUtPnVuc2FmZUNhbGxlZSgpOworICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IG1fY2Fs
bEZyYW1lLT51bnNhZmVDb2RlQmxvY2soKTsKKyAgICAgICAgaWYgKGNvZGVCbG9jaykgeworICAg
ICAgICAgICAgQVNTRVJUKGlzVmFsaWRDb2RlQmxvY2soY29kZUJsb2NrKSk7CisgICAgICAgICAg
ICBjYWxsU2l0ZUluZGV4ID0gbV9jYWxsRnJhbWUtPnVuc2FmZUNhbGxTaXRlSW5kZXgoKTsKKyAg
ICAgICAgfQorICAgICAgICBzdGFja1RyYWNlW21fZGVwdGhdID0gVW5wcm9jZXNzZWRTdGFja0Zy
YW1lKGNvZGVCbG9jaywgSlNWYWx1ZTo6ZW5jb2RlKHVuc2FmZUNhbGxlZSksIGNhbGxTaXRlSW5k
ZXgpOworICAgICAgICBtX2RlcHRoKys7CisgICAgfQogCiAgICAgU1VQUFJFU1NfQVNBTgogICAg
IHZvaWQgYWR2YW5jZVRvUGFyZW50RnJhbWUoKQpAQCAtMTg0LDYgKzE5NSw2NCBAQCBwcml2YXRl
OgogICAgIHNpemVfdCBtX2RlcHRoIHsgMCB9OwogfTsKIAorY2xhc3MgQ0ZyYW1lV2Fsa2VyIDog
cHVibGljIEZyYW1lV2Fsa2VyIHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIEZyYW1lV2Fsa2VyIEJh
c2U7CisKKyAgICBDRnJhbWVXYWxrZXIoVk0mIHZtLCB2b2lkKiBtYWNoaW5lRnJhbWUsIEV4ZWNT
dGF0ZSogY2FsbEZyYW1lLCBjb25zdCBMb2NrSG9sZGVyJiBjb2RlQmxvY2tTZXRMb2NrZXIsIGNv
bnN0IExvY2tIb2xkZXImIG1hY2hpbmVUaHJlYWRzTG9ja2VyKQorICAgICAgICA6IEJhc2Uodm0s
IGNhbGxGcmFtZSwgY29kZUJsb2NrU2V0TG9ja2VyLCBtYWNoaW5lVGhyZWFkc0xvY2tlcikKKyAg
ICAgICAgLCBtX21hY2hpbmVGcmFtZShtYWNoaW5lRnJhbWUpCisgICAgeworICAgIH0KKworICAg
IHNpemVfdCB3YWxrKFZlY3RvcjxVbnByb2Nlc3NlZFN0YWNrRnJhbWU+JiBzdGFja1RyYWNlLCBi
b29sJiBkaWRSdW5PdXRPZlNwYWNlKQorICAgIHsKKyAgICAgICAgaWYgKHNSZXBvcnRTdGF0cykK
KyAgICAgICAgICAgIHNOdW1Ub3RhbFdhbGtzKys7CisgICAgICAgIHJlc2V0QXRNYWNoaW5lRnJh
bWUoKTsKKyAgICAgICAgc2l6ZV90IG1heFN0YWNrVHJhY2VTaXplID0gc3RhY2tUcmFjZS5zaXpl
KCk7CisgICAgICAgIHdoaWxlICghaXNBdFRvcCgpICYmICFtX2JhaWxpbmdPdXQgJiYgbV9kZXB0
aCA8IG1heFN0YWNrVHJhY2VTaXplKSB7CisgICAgICAgICAgICBpZiAobV9tYWNoaW5lRnJhbWUg
PiBtX2NhbGxGcmFtZSkgeworICAgICAgICAgICAgICAgIC8vIElmIHdlIGdldCB0byB0aGlzIHN0
YXRlIHdlIHByb2JhYmx5IGhhdmUgYW4gaW52YWxpZCB0cmFjZS4KKyAgICAgICAgICAgICAgICBt
X2JhaWxpbmdPdXQgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBpZiAoaXNDRnJhbWUoKSkgeworICAgICAgICAgICAgICAgIHN0YWNr
VHJhY2VbbV9kZXB0aF0gPSBVbnByb2Nlc3NlZFN0YWNrRnJhbWUoZnJhbWUoKS0+cGMpOworICAg
ICAgICAgICAgICAgIG1fZGVwdGgrKzsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
ICAgIHJlY29yZEpTRnJhbWUoc3RhY2tUcmFjZSk7CisgICAgICAgICAgICBhZHZhbmNlVG9QYXJl
bnRGcmFtZSgpOworICAgICAgICAgICAgcmVzZXRBdE1hY2hpbmVGcmFtZSgpOworICAgICAgICB9
CisgICAgICAgIGRpZFJ1bk91dE9mU3BhY2UgPSBtX2RlcHRoID49IG1heFN0YWNrVHJhY2VTaXpl
ICYmICFpc0F0VG9wKCk7CisgICAgICAgIHJlcG9ydFN0YXRzKCk7CisgICAgICAgIHJldHVybiBt
X2RlcHRoOworICAgIH0KKworcHJpdmF0ZToKKworICAgIGJvb2wgaXNDRnJhbWUoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIG1fbWFjaGluZUZyYW1lICE9IG1fY2FsbEZyYW1lOworICAgIH0KKwor
ICAgIHZvaWQgYWR2YW5jZVRvUGFyZW50RnJhbWUoKQorICAgIHsKKyAgICAgICAgaWYgKCFpc0NG
cmFtZSgpKQorICAgICAgICAgICAgQmFzZTo6YWR2YW5jZVRvUGFyZW50RnJhbWUoKTsKKyAgICAg
ICAgbV9tYWNoaW5lRnJhbWUgPSBmcmFtZSgpLT5jYWxsZXJGcmFtZTsKKyAgICB9CisKKyAgICBD
YWxsZXJGcmFtZUFuZFBDKiBmcmFtZSgpCisgICAgeworICAgICAgICByZXR1cm4gcmVpbnRlcnBy
ZXRfY2FzdDxDYWxsZXJGcmFtZUFuZFBDKj4obV9tYWNoaW5lRnJhbWUpOworICAgIH0KKworICAg
IHZvaWQqIG1fbWFjaGluZUZyYW1lOworfTsKKwogU2FtcGxpbmdQcm9maWxlcjo6U2FtcGxpbmdQ
cm9maWxlcihWTSYgdm0sIFJlZlB0cjxTdG9wd2F0Y2g+JiYgc3RvcHdhdGNoKQogICAgIDogbV92
bSh2bSkKICAgICAsIG1fc3RvcHdhdGNoKFdURk1vdmUoc3RvcHdhdGNoKSkKQEAgLTI1Nyw2ICsz
MjYsNyBAQCB2b2lkIFNhbXBsaW5nUHJvZmlsZXI6OnRha2VTYW1wbGUoY29uc3QgTG9ja0hvbGRl
ciYsIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMmCiAgICAgICAgIGlmIChkaWRTdXNwZW5kKSB7
CiAgICAgICAgICAgICAvLyBXaGlsZSB0aGUgSlNDIHRocmVhZCBpcyBzdXNwZW5kZWQsIHdlIGNh
bid0IGRvIHRoaW5ncyBsaWtlIG1hbGxvYyBiZWNhdXNlIHRoZSBKU0MgdGhyZWFkCiAgICAgICAg
ICAgICAvLyBtYXkgYmUgaG9sZGluZyB0aGUgbWFsbG9jIGxvY2suCisgICAgICAgICAgICB2b2lk
KiBtYWNoaW5lRnJhbWU7CiAgICAgICAgICAgICBFeGVjU3RhdGUqIGNhbGxGcmFtZTsKICAgICAg
ICAgICAgIHZvaWQqIG1hY2hpbmVQQzsKICAgICAgICAgICAgIGJvb2wgdG9wRnJhbWVJc0xMSW50
ID0gZmFsc2U7CkBAIC0yNjQsNyArMzM0LDggQEAgdm9pZCBTYW1wbGluZ1Byb2ZpbGVyOjp0YWtl
U2FtcGxlKGNvbnN0IExvY2tIb2xkZXImLCBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzJgogICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgIE1hY2hpbmVUaHJlYWRzOjpUaHJlYWQ6OlJlZ2lz
dGVycyByZWdpc3RlcnM7CiAgICAgICAgICAgICAgICAgbV9qc2NFeGVjdXRpb25UaHJlYWQtPmdl
dFJlZ2lzdGVycyhyZWdpc3RlcnMpOwotICAgICAgICAgICAgICAgIGNhbGxGcmFtZSA9IHN0YXRp
Y19jYXN0PEV4ZWNTdGF0ZSo+KHJlZ2lzdGVycy5mcmFtZVBvaW50ZXIoKSk7CisgICAgICAgICAg
ICAgICAgbWFjaGluZUZyYW1lID0gcmVnaXN0ZXJzLmZyYW1lUG9pbnRlcigpOworICAgICAgICAg
ICAgICAgIGNhbGxGcmFtZSA9IHN0YXRpY19jYXN0PEV4ZWNTdGF0ZSo+KG1hY2hpbmVGcmFtZSk7
CiAgICAgICAgICAgICAgICAgbWFjaGluZVBDID0gcmVnaXN0ZXJzLmluc3RydWN0aW9uUG9pbnRl
cigpOwogICAgICAgICAgICAgICAgIGxsaW50UEMgPSByZWdpc3RlcnMubGxpbnRQQygpOwogICAg
ICAgICAgICAgICAgIG1fanNjRXhlY3V0aW9uVGhyZWFkLT5mcmVlUmVnaXN0ZXJzKHJlZ2lzdGVy
cyk7CkBAIC0yOTAsOCArMzYxLDEyIEBAIHZvaWQgU2FtcGxpbmdQcm9maWxlcjo6dGFrZVNhbXBs
ZShjb25zdCBMb2NrSG9sZGVyJiwgc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyYKICAgICAgICAg
ICAgIHNpemVfdCB3YWxrU2l6ZTsKICAgICAgICAgICAgIGJvb2wgd2FzVmFsaWRXYWxrOwogICAg
ICAgICAgICAgYm9vbCBkaWRSdW5PdXRPZlZlY3RvclNwYWNlOwotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIEZyYW1lV2Fsa2VyIHdhbGtlcihjYWxsRnJhbWUsIG1fdm0sIGNvZGVCbG9j
a1NldExvY2tlciwgbWFjaGluZVRocmVhZHNMb2NrZXIpOworICAgICAgICAgICAgaWYgKE9wdGlv
bnM6OnNhbXBsZUNDb2RlKCkpIHsKKyAgICAgICAgICAgICAgICBDRnJhbWVXYWxrZXIgd2Fsa2Vy
KG1fdm0sIG1hY2hpbmVGcmFtZSwgY2FsbEZyYW1lLCBjb2RlQmxvY2tTZXRMb2NrZXIsIG1hY2hp
bmVUaHJlYWRzTG9ja2VyKTsKKyAgICAgICAgICAgICAgICB3YWxrU2l6ZSA9IHdhbGtlci53YWxr
KG1fY3VycmVudEZyYW1lcywgZGlkUnVuT3V0T2ZWZWN0b3JTcGFjZSk7CisgICAgICAgICAgICAg
ICAgd2FzVmFsaWRXYWxrID0gd2Fsa2VyLndhc1ZhbGlkV2FsaygpOworICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICBGcmFtZVdhbGtlciB3YWxrZXIobV92bSwgY2FsbEZyYW1l
LCBjb2RlQmxvY2tTZXRMb2NrZXIsIG1hY2hpbmVUaHJlYWRzTG9ja2VyKTsKICAgICAgICAgICAg
ICAgICB3YWxrU2l6ZSA9IHdhbGtlci53YWxrKG1fY3VycmVudEZyYW1lcywgZGlkUnVuT3V0T2ZW
ZWN0b3JTcGFjZSk7CiAgICAgICAgICAgICAgICAgd2FzVmFsaWRXYWxrID0gd2Fsa2VyLndhc1Zh
bGlkV2FsaygpOwogICAgICAgICAgICAgfQpAQCAtNTAzLDEyICs1NzgsMTcgQEAgdm9pZCBTYW1w
bGluZ1Byb2ZpbGVyOjpwcm9jZXNzVW52ZXJpZmllZFN0YWNrVHJhY2VzKCkKICNlbHNlCiAgICAg
ICAgICAgICAgICAgYXBwZW5kQ29kZUJsb2NrTm9JbmxpbmluZygpOwogI2VuZGlmCisgICAgICAg
ICAgICB9IGVsc2UgaWYgKHVucHJvY2Vzc2VkU3RhY2tGcmFtZS5jQ29kZVBDKSB7CisgICAgICAg
ICAgICAgICAgYXBwZW5kRW1wdHlGcmFtZSgpOworICAgICAgICAgICAgICAgIHN0YWNrVHJhY2Uu
ZnJhbWVzLmxhc3QoKS5jQ29kZVBDID0gdW5wcm9jZXNzZWRTdGFja0ZyYW1lLmNDb2RlUEM7Cisg
ICAgICAgICAgICAgICAgc3RhY2tUcmFjZS5mcmFtZXMubGFzdCgpLmZyYW1lVHlwZSA9IEZyYW1l
VHlwZTo6SG9zdDsKICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIGFwcGVuZEVt
cHR5RnJhbWUoKTsKIAogICAgICAgICAgICAgLy8gTm90ZSB0aGF0IHRoaXMgaXMgb2theSB0byBk
byBpZiB3ZSB3YWxrZWQgdGhlIGlubGluZSBzdGFjayBiZWNhdXNlCiAgICAgICAgICAgICAvLyB0
aGUgbWFjaGluZSBmcmFtZSB3aWxsIGJlIGF0IHRoZSB0b3Agb2YgdGhlIHByb2Nlc3NlZCBzdGFj
ayB0cmFjZS4KLSAgICAgICAgICAgIHN0b3JlQ2FsbGVlSW50b1RvcEZyYW1lKHVucHJvY2Vzc2Vk
U3RhY2tGcmFtZS51bnZlcmlmaWVkQ2FsbGVlKTsKKyAgICAgICAgICAgIGlmICghdW5wcm9jZXNz
ZWRTdGFja0ZyYW1lLmNDb2RlUEMpCisgICAgICAgICAgICAgICAgc3RvcmVDYWxsZWVJbnRvVG9w
RnJhbWUodW5wcm9jZXNzZWRTdGFja0ZyYW1lLnVudmVyaWZpZWRDYWxsZWUpOwogICAgICAgICB9
CiAgICAgfQogCkBAIC02MjIsOSArNzAyLDIyIEBAIFN0cmluZyBTYW1wbGluZ1Byb2ZpbGVyOjpT
dGFja0ZyYW1lOjpkaXNwbGF5TmFtZShWTSYgdm0pCiAKICAgICBpZiAoZnJhbWVUeXBlID09IEZy
YW1lVHlwZTo6VW5rbm93bikKICAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiKHVua25vd24p
Iik7Ci0gICAgaWYgKGZyYW1lVHlwZSA9PSBGcmFtZVR5cGU6Okhvc3QpCisgICAgaWYgKGZyYW1l
VHlwZSA9PSBGcmFtZVR5cGU6Okhvc3QpIHsKKyNpZiBPUyhEQVJXSU4pCisgICAgICAgIGlmIChP
cHRpb25zOjpzYW1wbGVDQ29kZSgpKSB7CisgICAgICAgICAgICBjb25zdCBjaGFyKiBtYW5nbGVk
TmFtZSA9IG51bGxwdHI7CisgICAgICAgICAgICBjb25zdCBjaGFyKiBjeGFEZW1hbmdsZWQgPSBu
dWxscHRyOworICAgICAgICAgICAgRGxfaW5mbyBpbmZvOworICAgICAgICAgICAgaWYgKGRsYWRk
cihjQ29kZVBDLCAmaW5mbykgJiYgaW5mby5kbGlfc25hbWUpCisgICAgICAgICAgICAgICAgbWFu
Z2xlZE5hbWUgPSBpbmZvLmRsaV9zbmFtZTsKKyAgICAgICAgICAgIGlmIChtYW5nbGVkTmFtZSkg
eworICAgICAgICAgICAgICAgIGN4YURlbWFuZ2xlZCA9IGFiaTo6X19jeGFfZGVtYW5nbGUobWFu
Z2xlZE5hbWUsIDAsIDAsIDApOworICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoY3hhRGVt
YW5nbGVkID8gY3hhRGVtYW5nbGVkIDogbWFuZ2xlZE5hbWUpOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisjZW5kaWYKICAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiKGhvc3QpIik7Ci0K
KyAgICB9CiAgICAgaWYgKGV4ZWN1dGFibGUtPmlzSG9zdEZ1bmN0aW9uKCkpCiAgICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxOYXRpdmVFeGVjdXRhYmxlKj4oZXhlY3V0YWJsZSktPm5hbWUoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9m
aWxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5o
CmluZGV4IGM5MmRlNmY4MDczNjRlODI4OTEwZDNmY2E2MzAyMzJmNWI4ZmQ4M2MuLmU3Nzg4NDU0
N2Y3NDc1ZDQ1MzgzODEyZTUzZDg2OTgwNjQxMDNlOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmgKQEAgLTUxLDIxICs1MSwyNiBAQCBw
dWJsaWM6CiAgICAgICAgICAgICAsIHZlcmlmaWVkQ29kZUJsb2NrKGNvZGVCbG9jaykKICAgICAg
ICAgICAgICwgY2FsbFNpdGVJbmRleChjYWxsU2l0ZUluZGV4KQogICAgICAgICB7IH0KKworICAg
ICAgICBVbnByb2Nlc3NlZFN0YWNrRnJhbWUodm9pZCogcGMpCisgICAgICAgICAgICA6IGNDb2Rl
UEMocGMpCisgICAgICAgIHsgfQorCiAgICAgICAgIFVucHJvY2Vzc2VkU3RhY2tGcmFtZSgpCiAg
ICAgICAgIHsKICAgICAgICAgICAgIHVudmVyaWZpZWRDYWxsZWUgPSBKU1ZhbHVlOjplbmNvZGUo
SlNWYWx1ZSgpKTsKLSAgICAgICAgICAgIHZlcmlmaWVkQ29kZUJsb2NrID0gbnVsbHB0cjsKICAg
ICAgICAgfQogCisgICAgICAgIHZvaWQqIGNDb2RlUEMgeyBudWxscHRyIH07CiAgICAgICAgIEVu
Y29kZWRKU1ZhbHVlIHVudmVyaWZpZWRDYWxsZWU7Ci0gICAgICAgIENvZGVCbG9jayogdmVyaWZp
ZWRDb2RlQmxvY2s7CisgICAgICAgIENvZGVCbG9jayogdmVyaWZpZWRDb2RlQmxvY2sgeyBudWxs
cHRyIH07CiAgICAgICAgIENhbGxTaXRlSW5kZXggY2FsbFNpdGVJbmRleDsKICAgICB9OwogCiAg
ICAgZW51bSBjbGFzcyBGcmFtZVR5cGUgeyAKICAgICAgICAgRXhlY3V0YWJsZSwKICAgICAgICAg
SG9zdCwKLSAgICAgICAgVW5rbm93biAKKyAgICAgICAgVW5rbm93bgogICAgIH07CiAKICAgICBz
dHJ1Y3QgU3RhY2tGcmFtZSB7CkBAIC03OCw2ICs4Myw3IEBAIHB1YmxpYzoKICAgICAgICAgeyB9
CiAKICAgICAgICAgRnJhbWVUeXBlIGZyYW1lVHlwZSB7IEZyYW1lVHlwZTo6VW5rbm93biB9Owor
ICAgICAgICB2b2lkKiBjQ29kZVBDIHsgbnVsbHB0ciB9OwogICAgICAgICBFeGVjdXRhYmxlQmFz
ZSogZXhlY3V0YWJsZSB7IG51bGxwdHIgfTsKICAgICAgICAgSlNPYmplY3QqIGNhbGxlZSB7IG51
bGxwdHIgfTsKICAgICAgICAgLy8gVGhlc2UgYXR0ZW1wdCB0byBiZSBleHByZXNzaW9uLWxldmVs
IGxpbmUgYW5kIGNvbHVtbiBudW1iZXIuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300238</attachid>
            <date>2017-01-31 11:14:00 -0800</date>
            <delta_ts>2017-01-31 11:14:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167614-20170131111149.patch</filename>
            <type>text/plain</type>
            <size>11944</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExNDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
MmM2OWM3NDlkOTFiNTdkNTdiMmI5NGQzOWFlOWY4YTBmZWM5YTg2Li45YTk2YzY4MzY4MWZhMTE4
MjcxYmZlZGM5MGRhYmE2ZjNlMDRlZTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAxNy0wMS0zMCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBUaGUgc2FtcGxpbmcgcHJvZmlsZSBzaG91bGQgaGF2ZSBhbiBvcHRp
b24gdG8gc2FtcGxlIGZyb20gQyBmcmFtZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc2MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZSBzaG91bGQgYmUgYWJsZSB0byB1c2UgdGhlIHNhbXBsaW5n
IHByb2ZpbGVyLCBhdCBsZWFzdAorICAgICAgICBpbnRlcm5hbGx5LCB0byB0cmFjZSBDIGNhbGxz
LiAgVGhpcyBwYXRjaCBvbmx5IG1vZGlmaWVzIHRoZSBKU0MKKyAgICAgICAgc2hlbGwgYWx0aG91
Z2ggaXQgd291bGQgYmUgbmljZSB0byBhZGQgaXQgdG8gdGhlIFdlYiBJbnNwZWN0b3IgaW4KKyAg
ICAgICAgYSBmdXR1cmUgcGF0Y2guCisKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuaDoKKyAg
ICAgICAgKiBydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwOgorICAgICAgICAoSlNDOjpGcmFt
ZVdhbGtlcjo6RnJhbWVXYWxrZXIpOgorICAgICAgICAoSlNDOjpGcmFtZVdhbGtlcjo6d2Fsayk6
CisgICAgICAgIChKU0M6OkZyYW1lV2Fsa2VyOjpyZWNvcmRKU0ZyYW1lKToKKyAgICAgICAgKEpT
Qzo6Q0ZyYW1lV2Fsa2VyOjpDRnJhbWVXYWxrZXIpOgorICAgICAgICAoSlNDOjpDRnJhbWVXYWxr
ZXI6OndhbGspOgorICAgICAgICAoSlNDOjpDRnJhbWVXYWxrZXI6OmlzQ0ZyYW1lKToKKyAgICAg
ICAgKEpTQzo6Q0ZyYW1lV2Fsa2VyOjphZHZhbmNlVG9QYXJlbnRGcmFtZSk6CisgICAgICAgIChK
U0M6OkNGcmFtZVdhbGtlcjo6ZnJhbWUpOgorICAgICAgICAoSlNDOjpTYW1wbGluZ1Byb2ZpbGVy
Ojp0YWtlU2FtcGxlKToKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6cHJvY2Vzc1Vu
dmVyaWZpZWRTdGFja1RyYWNlcyk6CisgICAgICAgIChKU0M6OlNhbXBsaW5nUHJvZmlsZXI6OlN0
YWNrRnJhbWU6OmRpc3BsYXlOYW1lKToKKyAgICAgICAgKiBydW50aW1lL1NhbXBsaW5nUHJvZmls
ZXIuaDoKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6VW5wcm9jZXNzZWRTdGFja0Zy
YW1lOjpVbnByb2Nlc3NlZFN0YWNrRnJhbWUpOgorCiAyMDE3LTAxLTMxICBUb21hcyBQb3BlbGEg
IDx0cG9wZWxhQHJlZGhhdC5jb20+CiAKICAgICAgICAgQ29tcGlsYXRpb24gZXJyb3IgaW4gSlNB
cnJheUJ1ZmZlclZpZXcuaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT3B0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCmlu
ZGV4IDdmNTNkYzQ4NGI5ZTUwM2ZlOTMxMjk3MzhkNGYwZTM4YTI5ZjAyYjMuLjBhYzBkNDM0YjE4
YmM4OGJhMWU5ZmM1YWZjM2UzYjdkNGU1Y2ExYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PcHRpb25zLmgKQEAgLTM2NCw2ICszNjQsNyBAQCB0eXBlZGVmIGNvbnN0IGNoYXIqIG9w
dGlvblN0cmluZzsKICAgICB2KHVuc2lnbmVkLCBzYW1wbGluZ1Byb2ZpbGVyVG9wRnVuY3Rpb25z
Q291bnQsIDEyLCBOb3JtYWwsICJOdW1iZXIgb2YgdG9wIGZ1bmN0aW9ucyB0byByZXBvcnQgd2hl
biB1c2luZyB0aGUgY29tbWFuZCBsaW5lIGludGVyZmFjZS4iKSBcCiAgICAgdih1bnNpZ25lZCwg
c2FtcGxpbmdQcm9maWxlclRvcEJ5dGVjb2Rlc0NvdW50LCA0MCwgTm9ybWFsLCAiTnVtYmVyIG9m
IHRvcCBieXRlY29kZXMgdG8gcmVwb3J0IHdoZW4gdXNpbmcgdGhlIGNvbW1hbmQgbGluZSBpbnRl
cmZhY2UuIikgXAogICAgIHYob3B0aW9uU3RyaW5nLCBzYW1wbGluZ1Byb2ZpbGVyUGF0aCwgbnVs
bHB0ciwgTm9ybWFsLCAiVGhlIHBhdGggdG8gdGhlIGRpcmVjdG9yeSB0byB3cml0ZSBzYW1waWxp
bmcgcHJvZmlsZXIgb3V0cHV0IHRvLiBUaGlzIHByb2JhYmx5IHdpbGwgbm90IHdvcmsgd2l0aCBX
SzIgdW5sZXNzIHRoZSBwYXRoIGlzIGluIHRoZSB3aGl0ZWxpc3QuIikgXAorICAgIHYoYm9vbCwg
c2FtcGxlQ0NvZGUsIGZhbHNlLCBOb3JtYWwsICJDYXVzZXMgdGhlIHNhbXBsaW5nIHByb2ZpbGVy
IHRvIHJlY29yZCBwcm9maWxpbmcgZGF0YXQgZnJvbSBDIGZyYW1lcy4iKSBcCiAgICAgXAogICAg
IHYoYm9vbCwgYWx3YXlzR2VuZXJhdGVQQ1RvQ29kZU9yaWdpbk1hcCwgZmFsc2UsIE5vcm1hbCwg
IlRoaXMgd2lsbCBtYWtlIHN1cmUgd2UgYWx3YXlzIGdlbmVyYXRlIGEgUENUb0NvZGVPcmlnaW5N
YXAgZm9yIEpJVGVkIGNvZGUuIikgXAogICAgIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5jcHAKaW5kZXggMmUwN2EwNGQ5OTY1ZWNkNDEx
Y2M1YWZlMTBiYjlmZTljZTdlNzM5My4uMGMzYWNmMGY1MTFhNzE1MmZhNGE2ZGRlM2M4YzA0OTdk
ZDIxMjZiMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxp
bmdQcm9maWxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxp
bmdQcm9maWxlci5jcHAKQEAgLTUxLDYgKzUxLDExIEBACiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAorI2lmIE9TKERBUldJTikK
KyNpbmNsdWRlIDxjeHhhYmkuaD4KKyNpbmNsdWRlIDxkbGZjbi5oPgorI2VuZGlmCisKIG5hbWVz
cGFjZSBKU0MgewogCiBzdGF0aWMgZG91YmxlIHNOdW1Ub3RhbFN0YWNrVHJhY2VzID0gMDsKQEAg
LTc2LDcgKzgxLDcgQEAgQUxXQVlTX0lOTElORSBzdGF0aWMgdm9pZCByZXBvcnRTdGF0cygpCiAK
IGNsYXNzIEZyYW1lV2Fsa2VyIHsKIHB1YmxpYzoKLSAgICBGcmFtZVdhbGtlcihFeGVjU3RhdGUq
IGNhbGxGcmFtZSwgVk0mIHZtLCBjb25zdCBMb2NrSG9sZGVyJiBjb2RlQmxvY2tTZXRMb2NrZXIs
IGNvbnN0IExvY2tIb2xkZXImIG1hY2hpbmVUaHJlYWRzTG9ja2VyKQorICAgIEZyYW1lV2Fsa2Vy
KFZNJiB2bSwgRXhlY1N0YXRlKiBjYWxsRnJhbWUsIGNvbnN0IExvY2tIb2xkZXImIGNvZGVCbG9j
a1NldExvY2tlciwgY29uc3QgTG9ja0hvbGRlciYgbWFjaGluZVRocmVhZHNMb2NrZXIpCiAgICAg
ICAgIDogbV92bSh2bSkKICAgICAgICAgLCBtX2NhbGxGcmFtZShjYWxsRnJhbWUpCiAgICAgICAg
ICwgbV92bUVudHJ5RnJhbWUodm0udG9wVk1FbnRyeUZyYW1lKQpAQCAtOTMsMTUgKzk4LDcgQEAg
cHVibGljOgogICAgICAgICByZXNldEF0TWFjaGluZUZyYW1lKCk7CiAgICAgICAgIHNpemVfdCBt
YXhTdGFja1RyYWNlU2l6ZSA9IHN0YWNrVHJhY2Uuc2l6ZSgpOwogICAgICAgICB3aGlsZSAoIWlz
QXRUb3AoKSAmJiAhbV9iYWlsaW5nT3V0ICYmIG1fZGVwdGggPCBtYXhTdGFja1RyYWNlU2l6ZSkg
ewotICAgICAgICAgICAgQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZUluZGV4OwotICAgICAgICAgICAg
SlNWYWx1ZSB1bnNhZmVDYWxsZWUgPSBtX2NhbGxGcmFtZS0+dW5zYWZlQ2FsbGVlKCk7Ci0gICAg
ICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IG1fY2FsbEZyYW1lLT51bnNhZmVDb2RlQmxv
Y2soKTsKLSAgICAgICAgICAgIGlmIChjb2RlQmxvY2spIHsKLSAgICAgICAgICAgICAgICBBU1NF
UlQoaXNWYWxpZENvZGVCbG9jayhjb2RlQmxvY2spKTsKLSAgICAgICAgICAgICAgICBjYWxsU2l0
ZUluZGV4ID0gbV9jYWxsRnJhbWUtPnVuc2FmZUNhbGxTaXRlSW5kZXgoKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIHN0YWNrVHJhY2VbbV9kZXB0aF0gPSBVbnByb2Nlc3NlZFN0YWNrRnJh
bWUoY29kZUJsb2NrLCBKU1ZhbHVlOjplbmNvZGUodW5zYWZlQ2FsbGVlKSwgY2FsbFNpdGVJbmRl
eCk7Ci0gICAgICAgICAgICBtX2RlcHRoKys7CisgICAgICAgICAgICByZWNvcmRKU0ZyYW1lKHN0
YWNrVHJhY2UpOwogICAgICAgICAgICAgYWR2YW5jZVRvUGFyZW50RnJhbWUoKTsKICAgICAgICAg
ICAgIHJlc2V0QXRNYWNoaW5lRnJhbWUoKTsKICAgICAgICAgfQpAQCAtMTE1LDcgKzExMiwyMSBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiAhbV9iYWlsaW5nT3V0OwogICAgIH0KIAotcHJpdmF0
ZToKK3Byb3RlY3RlZDoKKworICAgIFNVUFBSRVNTX0FTQU4KKyAgICB2b2lkIHJlY29yZEpTRnJh
bWUoVmVjdG9yPFVucHJvY2Vzc2VkU3RhY2tGcmFtZT4mIHN0YWNrVHJhY2UpCisgICAgeworICAg
ICAgICBDYWxsU2l0ZUluZGV4IGNhbGxTaXRlSW5kZXg7CisgICAgICAgIEpTVmFsdWUgdW5zYWZl
Q2FsbGVlID0gbV9jYWxsRnJhbWUtPnVuc2FmZUNhbGxlZSgpOworICAgICAgICBDb2RlQmxvY2sq
IGNvZGVCbG9jayA9IG1fY2FsbEZyYW1lLT51bnNhZmVDb2RlQmxvY2soKTsKKyAgICAgICAgaWYg
KGNvZGVCbG9jaykgeworICAgICAgICAgICAgQVNTRVJUKGlzVmFsaWRDb2RlQmxvY2soY29kZUJs
b2NrKSk7CisgICAgICAgICAgICBjYWxsU2l0ZUluZGV4ID0gbV9jYWxsRnJhbWUtPnVuc2FmZUNh
bGxTaXRlSW5kZXgoKTsKKyAgICAgICAgfQorICAgICAgICBzdGFja1RyYWNlW21fZGVwdGhdID0g
VW5wcm9jZXNzZWRTdGFja0ZyYW1lKGNvZGVCbG9jaywgSlNWYWx1ZTo6ZW5jb2RlKHVuc2FmZUNh
bGxlZSksIGNhbGxTaXRlSW5kZXgpOworICAgICAgICBtX2RlcHRoKys7CisgICAgfQogCiAgICAg
U1VQUFJFU1NfQVNBTgogICAgIHZvaWQgYWR2YW5jZVRvUGFyZW50RnJhbWUoKQpAQCAtMTg1LDYg
KzE5Niw2NCBAQCBwcml2YXRlOgogICAgIHNpemVfdCBtX2RlcHRoIHsgMCB9OwogfTsKIAorY2xh
c3MgQ0ZyYW1lV2Fsa2VyIDogcHVibGljIEZyYW1lV2Fsa2VyIHsKK3B1YmxpYzoKKyAgICB0eXBl
ZGVmIEZyYW1lV2Fsa2VyIEJhc2U7CisKKyAgICBDRnJhbWVXYWxrZXIoVk0mIHZtLCB2b2lkKiBt
YWNoaW5lRnJhbWUsIEV4ZWNTdGF0ZSogY2FsbEZyYW1lLCBjb25zdCBMb2NrSG9sZGVyJiBjb2Rl
QmxvY2tTZXRMb2NrZXIsIGNvbnN0IExvY2tIb2xkZXImIG1hY2hpbmVUaHJlYWRzTG9ja2VyKQor
ICAgICAgICA6IEJhc2Uodm0sIGNhbGxGcmFtZSwgY29kZUJsb2NrU2V0TG9ja2VyLCBtYWNoaW5l
VGhyZWFkc0xvY2tlcikKKyAgICAgICAgLCBtX21hY2hpbmVGcmFtZShtYWNoaW5lRnJhbWUpCisg
ICAgeworICAgIH0KKworICAgIHNpemVfdCB3YWxrKFZlY3RvcjxVbnByb2Nlc3NlZFN0YWNrRnJh
bWU+JiBzdGFja1RyYWNlLCBib29sJiBkaWRSdW5PdXRPZlNwYWNlKQorICAgIHsKKyAgICAgICAg
aWYgKHNSZXBvcnRTdGF0cykKKyAgICAgICAgICAgIHNOdW1Ub3RhbFdhbGtzKys7CisgICAgICAg
IHJlc2V0QXRNYWNoaW5lRnJhbWUoKTsKKyAgICAgICAgc2l6ZV90IG1heFN0YWNrVHJhY2VTaXpl
ID0gc3RhY2tUcmFjZS5zaXplKCk7CisgICAgICAgIHdoaWxlICghaXNBdFRvcCgpICYmICFtX2Jh
aWxpbmdPdXQgJiYgbV9kZXB0aCA8IG1heFN0YWNrVHJhY2VTaXplKSB7CisgICAgICAgICAgICBp
ZiAobV9tYWNoaW5lRnJhbWUgPiBtX2NhbGxGcmFtZSkgeworICAgICAgICAgICAgICAgIC8vIElm
IHdlIGdldCB0byB0aGlzIHN0YXRlIHdlIHByb2JhYmx5IGhhdmUgYW4gaW52YWxpZCB0cmFjZS4K
KyAgICAgICAgICAgICAgICBtX2JhaWxpbmdPdXQgPSB0cnVlOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoaXNDRnJhbWUoKSkgeworICAg
ICAgICAgICAgICAgIHN0YWNrVHJhY2VbbV9kZXB0aF0gPSBVbnByb2Nlc3NlZFN0YWNrRnJhbWUo
ZnJhbWUoKS0+cGMpOworICAgICAgICAgICAgICAgIG1fZGVwdGgrKzsKKyAgICAgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgICAgIHJlY29yZEpTRnJhbWUoc3RhY2tUcmFjZSk7CisgICAgICAg
ICAgICBhZHZhbmNlVG9QYXJlbnRGcmFtZSgpOworICAgICAgICAgICAgcmVzZXRBdE1hY2hpbmVG
cmFtZSgpOworICAgICAgICB9CisgICAgICAgIGRpZFJ1bk91dE9mU3BhY2UgPSBtX2RlcHRoID49
IG1heFN0YWNrVHJhY2VTaXplICYmICFpc0F0VG9wKCk7CisgICAgICAgIHJlcG9ydFN0YXRzKCk7
CisgICAgICAgIHJldHVybiBtX2RlcHRoOworICAgIH0KKworcHJpdmF0ZToKKworICAgIGJvb2wg
aXNDRnJhbWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fbWFjaGluZUZyYW1lICE9IG1fY2Fs
bEZyYW1lOworICAgIH0KKworICAgIHZvaWQgYWR2YW5jZVRvUGFyZW50RnJhbWUoKQorICAgIHsK
KyAgICAgICAgaWYgKCFpc0NGcmFtZSgpKQorICAgICAgICAgICAgQmFzZTo6YWR2YW5jZVRvUGFy
ZW50RnJhbWUoKTsKKyAgICAgICAgbV9tYWNoaW5lRnJhbWUgPSBmcmFtZSgpLT5jYWxsZXJGcmFt
ZTsKKyAgICB9CisKKyAgICBDYWxsZXJGcmFtZUFuZFBDKiBmcmFtZSgpCisgICAgeworICAgICAg
ICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxDYWxsZXJGcmFtZUFuZFBDKj4obV9tYWNoaW5lRnJh
bWUpOworICAgIH0KKworICAgIHZvaWQqIG1fbWFjaGluZUZyYW1lOworfTsKKwogU2FtcGxpbmdQ
cm9maWxlcjo6U2FtcGxpbmdQcm9maWxlcihWTSYgdm0sIFJlZlB0cjxTdG9wd2F0Y2g+JiYgc3Rv
cHdhdGNoKQogICAgIDogbV92bSh2bSkKICAgICAsIG1fc3RvcHdhdGNoKFdURk1vdmUoc3RvcHdh
dGNoKSkKQEAgLTI1OCw2ICszMjcsNyBAQCB2b2lkIFNhbXBsaW5nUHJvZmlsZXI6OnRha2VTYW1w
bGUoY29uc3QgTG9ja0hvbGRlciYsIHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMmCiAgICAgICAg
IGlmIChkaWRTdXNwZW5kKSB7CiAgICAgICAgICAgICAvLyBXaGlsZSB0aGUgSlNDIHRocmVhZCBp
cyBzdXNwZW5kZWQsIHdlIGNhbid0IGRvIHRoaW5ncyBsaWtlIG1hbGxvYyBiZWNhdXNlIHRoZSBK
U0MgdGhyZWFkCiAgICAgICAgICAgICAvLyBtYXkgYmUgaG9sZGluZyB0aGUgbWFsbG9jIGxvY2su
CisgICAgICAgICAgICB2b2lkKiBtYWNoaW5lRnJhbWU7CiAgICAgICAgICAgICBFeGVjU3RhdGUq
IGNhbGxGcmFtZTsKICAgICAgICAgICAgIHZvaWQqIG1hY2hpbmVQQzsKICAgICAgICAgICAgIGJv
b2wgdG9wRnJhbWVJc0xMSW50ID0gZmFsc2U7CkBAIC0yNjUsNyArMzM1LDggQEAgdm9pZCBTYW1w
bGluZ1Byb2ZpbGVyOjp0YWtlU2FtcGxlKGNvbnN0IExvY2tIb2xkZXImLCBzdGQ6OmNocm9ubzo6
bWljcm9zZWNvbmRzJgogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIE1hY2hpbmVUaHJl
YWRzOjpUaHJlYWQ6OlJlZ2lzdGVycyByZWdpc3RlcnM7CiAgICAgICAgICAgICAgICAgbV9qc2NF
eGVjdXRpb25UaHJlYWQtPmdldFJlZ2lzdGVycyhyZWdpc3RlcnMpOwotICAgICAgICAgICAgICAg
IGNhbGxGcmFtZSA9IHN0YXRpY19jYXN0PEV4ZWNTdGF0ZSo+KHJlZ2lzdGVycy5mcmFtZVBvaW50
ZXIoKSk7CisgICAgICAgICAgICAgICAgbWFjaGluZUZyYW1lID0gcmVnaXN0ZXJzLmZyYW1lUG9p
bnRlcigpOworICAgICAgICAgICAgICAgIGNhbGxGcmFtZSA9IHN0YXRpY19jYXN0PEV4ZWNTdGF0
ZSo+KG1hY2hpbmVGcmFtZSk7CiAgICAgICAgICAgICAgICAgbWFjaGluZVBDID0gcmVnaXN0ZXJz
Lmluc3RydWN0aW9uUG9pbnRlcigpOwogICAgICAgICAgICAgICAgIGxsaW50UEMgPSByZWdpc3Rl
cnMubGxpbnRQQygpOwogICAgICAgICAgICAgICAgIG1fanNjRXhlY3V0aW9uVGhyZWFkLT5mcmVl
UmVnaXN0ZXJzKHJlZ2lzdGVycyk7CkBAIC0yOTEsOCArMzYyLDEyIEBAIHZvaWQgU2FtcGxpbmdQ
cm9maWxlcjo6dGFrZVNhbXBsZShjb25zdCBMb2NrSG9sZGVyJiwgc3RkOjpjaHJvbm86Om1pY3Jv
c2Vjb25kcyYKICAgICAgICAgICAgIHNpemVfdCB3YWxrU2l6ZTsKICAgICAgICAgICAgIGJvb2wg
d2FzVmFsaWRXYWxrOwogICAgICAgICAgICAgYm9vbCBkaWRSdW5PdXRPZlZlY3RvclNwYWNlOwot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEZyYW1lV2Fsa2VyIHdhbGtlcihjYWxsRnJh
bWUsIG1fdm0sIGNvZGVCbG9ja1NldExvY2tlciwgbWFjaGluZVRocmVhZHNMb2NrZXIpOworICAg
ICAgICAgICAgaWYgKE9wdGlvbnM6OnNhbXBsZUNDb2RlKCkpIHsKKyAgICAgICAgICAgICAgICBD
RnJhbWVXYWxrZXIgd2Fsa2VyKG1fdm0sIG1hY2hpbmVGcmFtZSwgY2FsbEZyYW1lLCBjb2RlQmxv
Y2tTZXRMb2NrZXIsIG1hY2hpbmVUaHJlYWRzTG9ja2VyKTsKKyAgICAgICAgICAgICAgICB3YWxr
U2l6ZSA9IHdhbGtlci53YWxrKG1fY3VycmVudEZyYW1lcywgZGlkUnVuT3V0T2ZWZWN0b3JTcGFj
ZSk7CisgICAgICAgICAgICAgICAgd2FzVmFsaWRXYWxrID0gd2Fsa2VyLndhc1ZhbGlkV2Fsaygp
OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBGcmFtZVdhbGtlciB3YWxr
ZXIobV92bSwgY2FsbEZyYW1lLCBjb2RlQmxvY2tTZXRMb2NrZXIsIG1hY2hpbmVUaHJlYWRzTG9j
a2VyKTsKICAgICAgICAgICAgICAgICB3YWxrU2l6ZSA9IHdhbGtlci53YWxrKG1fY3VycmVudEZy
YW1lcywgZGlkUnVuT3V0T2ZWZWN0b3JTcGFjZSk7CiAgICAgICAgICAgICAgICAgd2FzVmFsaWRX
YWxrID0gd2Fsa2VyLndhc1ZhbGlkV2FsaygpOwogICAgICAgICAgICAgfQpAQCAtNTI3LDEyICs2
MDIsMTcgQEAgdm9pZCBTYW1wbGluZ1Byb2ZpbGVyOjpwcm9jZXNzVW52ZXJpZmllZFN0YWNrVHJh
Y2VzKCkKICNlbHNlCiAgICAgICAgICAgICAgICAgYXBwZW5kQ29kZUJsb2NrTm9JbmxpbmluZygp
OwogI2VuZGlmCisgICAgICAgICAgICB9IGVsc2UgaWYgKHVucHJvY2Vzc2VkU3RhY2tGcmFtZS5j
Q29kZVBDKSB7CisgICAgICAgICAgICAgICAgYXBwZW5kRW1wdHlGcmFtZSgpOworICAgICAgICAg
ICAgICAgIHN0YWNrVHJhY2UuZnJhbWVzLmxhc3QoKS5jQ29kZVBDID0gdW5wcm9jZXNzZWRTdGFj
a0ZyYW1lLmNDb2RlUEM7CisgICAgICAgICAgICAgICAgc3RhY2tUcmFjZS5mcmFtZXMubGFzdCgp
LmZyYW1lVHlwZSA9IEZyYW1lVHlwZTo6SG9zdDsKICAgICAgICAgICAgIH0gZWxzZQogICAgICAg
ICAgICAgICAgIGFwcGVuZEVtcHR5RnJhbWUoKTsKIAogICAgICAgICAgICAgLy8gTm90ZSB0aGF0
IHRoaXMgaXMgb2theSB0byBkbyBpZiB3ZSB3YWxrZWQgdGhlIGlubGluZSBzdGFjayBiZWNhdXNl
CiAgICAgICAgICAgICAvLyB0aGUgbWFjaGluZSBmcmFtZSB3aWxsIGJlIGF0IHRoZSB0b3Agb2Yg
dGhlIHByb2Nlc3NlZCBzdGFjayB0cmFjZS4KLSAgICAgICAgICAgIHN0b3JlQ2FsbGVlSW50b0xh
c3RGcmFtZSh1bnByb2Nlc3NlZFN0YWNrRnJhbWUudW52ZXJpZmllZENhbGxlZSk7CisgICAgICAg
ICAgICBpZiAoIXVucHJvY2Vzc2VkU3RhY2tGcmFtZS5jQ29kZVBDKQorICAgICAgICAgICAgICAg
IHN0b3JlQ2FsbGVlSW50b0xhc3RGcmFtZSh1bnByb2Nlc3NlZFN0YWNrRnJhbWUudW52ZXJpZmll
ZENhbGxlZSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTY0Niw5ICs3MjYsMjIgQEAgU3RyaW5n
IFNhbXBsaW5nUHJvZmlsZXI6OlN0YWNrRnJhbWU6OmRpc3BsYXlOYW1lKFZNJiB2bSkKIAogICAg
IGlmIChmcmFtZVR5cGUgPT0gRnJhbWVUeXBlOjpVbmtub3duKQogICAgICAgICByZXR1cm4gQVND
SUlMaXRlcmFsKCIodW5rbm93bikiKTsKLSAgICBpZiAoZnJhbWVUeXBlID09IEZyYW1lVHlwZTo6
SG9zdCkKKyAgICBpZiAoZnJhbWVUeXBlID09IEZyYW1lVHlwZTo6SG9zdCkgeworI2lmIE9TKERB
UldJTikKKyAgICAgICAgaWYgKE9wdGlvbnM6OnNhbXBsZUNDb2RlKCkpIHsKKyAgICAgICAgICAg
IGNvbnN0IGNoYXIqIG1hbmdsZWROYW1lID0gbnVsbHB0cjsKKyAgICAgICAgICAgIGNvbnN0IGNo
YXIqIGN4YURlbWFuZ2xlZCA9IG51bGxwdHI7CisgICAgICAgICAgICBEbF9pbmZvIGluZm87Cisg
ICAgICAgICAgICBpZiAoZGxhZGRyKGNDb2RlUEMsICZpbmZvKSAmJiBpbmZvLmRsaV9zbmFtZSkK
KyAgICAgICAgICAgICAgICBtYW5nbGVkTmFtZSA9IGluZm8uZGxpX3NuYW1lOworICAgICAgICAg
ICAgaWYgKG1hbmdsZWROYW1lKSB7CisgICAgICAgICAgICAgICAgY3hhRGVtYW5nbGVkID0gYWJp
OjpfX2N4YV9kZW1hbmdsZShtYW5nbGVkTmFtZSwgMCwgMCwgMCk7CisgICAgICAgICAgICAgICAg
cmV0dXJuIFN0cmluZyhjeGFEZW1hbmdsZWQgPyBjeGFEZW1hbmdsZWQgOiBtYW5nbGVkTmFtZSk7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICByZXR1cm4gQVNDSUlM
aXRlcmFsKCIoaG9zdCkiKTsKLQorICAgIH0KICAgICBpZiAoZXhlY3V0YWJsZS0+aXNIb3N0RnVu
Y3Rpb24oKSkKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PE5hdGl2ZUV4ZWN1dGFibGUqPihl
eGVjdXRhYmxlKS0+bmFtZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TYW1wbGluZ1Byb2ZpbGVyLmgKaW5kZXggMDI5Y2M3MGViMzUwMGU5YmFlNjY4MzA5NTE0N2Uw
ZjQzZjc1NGNjYS4uNjY5Nzg1NmRhZGEzNjRlN2I5ZTQ4MmUzNDMwNTlhOTNiNWIwOTdjZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9maWxlci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuaApA
QCAtNTEsMjEgKzUxLDI2IEBAIHB1YmxpYzoKICAgICAgICAgICAgICwgdmVyaWZpZWRDb2RlQmxv
Y2soY29kZUJsb2NrKQogICAgICAgICAgICAgLCBjYWxsU2l0ZUluZGV4KGNhbGxTaXRlSW5kZXgp
CiAgICAgICAgIHsgfQorCisgICAgICAgIFVucHJvY2Vzc2VkU3RhY2tGcmFtZSh2b2lkKiBwYykK
KyAgICAgICAgICAgIDogY0NvZGVQQyhwYykKKyAgICAgICAgeyB9CisKICAgICAgICAgVW5wcm9j
ZXNzZWRTdGFja0ZyYW1lKCkKICAgICAgICAgewogICAgICAgICAgICAgdW52ZXJpZmllZENhbGxl
ZSA9IEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOwotICAgICAgICAgICAgdmVyaWZpZWRDb2Rl
QmxvY2sgPSBudWxscHRyOwogICAgICAgICB9CiAKKyAgICAgICAgdm9pZCogY0NvZGVQQyB7IG51
bGxwdHIgfTsKICAgICAgICAgRW5jb2RlZEpTVmFsdWUgdW52ZXJpZmllZENhbGxlZTsKLSAgICAg
ICAgQ29kZUJsb2NrKiB2ZXJpZmllZENvZGVCbG9jazsKKyAgICAgICAgQ29kZUJsb2NrKiB2ZXJp
ZmllZENvZGVCbG9jayB7IG51bGxwdHIgfTsKICAgICAgICAgQ2FsbFNpdGVJbmRleCBjYWxsU2l0
ZUluZGV4OwogICAgIH07CiAKICAgICBlbnVtIGNsYXNzIEZyYW1lVHlwZSB7IAogICAgICAgICBF
eGVjdXRhYmxlLAogICAgICAgICBIb3N0LAotICAgICAgICBVbmtub3duIAorICAgICAgICBVbmtu
b3duCiAgICAgfTsKIAogICAgIHN0cnVjdCBTdGFja0ZyYW1lIHsKQEAgLTc4LDYgKzgzLDcgQEAg
cHVibGljOgogICAgICAgICB7IH0KIAogICAgICAgICBGcmFtZVR5cGUgZnJhbWVUeXBlIHsgRnJh
bWVUeXBlOjpVbmtub3duIH07CisgICAgICAgIHZvaWQqIGNDb2RlUEMgeyBudWxscHRyIH07CiAg
ICAgICAgIEV4ZWN1dGFibGVCYXNlKiBleGVjdXRhYmxlIHsgbnVsbHB0ciB9OwogICAgICAgICBK
U09iamVjdCogY2FsbGVlIHsgbnVsbHB0ciB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300239</attachid>
            <date>2017-01-31 11:14:50 -0800</date>
            <delta_ts>2017-02-01 11:55:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167614-20170131111239.patch</filename>
            <type>text/plain</type>
            <size>11942</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExNDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
MmM2OWM3NDlkOTFiNTdkNTdiMmI5NGQzOWFlOWY4YTBmZWM5YTg2Li45YTk2YzY4MzY4MWZhMTE4
MjcxYmZlZGM5MGRhYmE2ZjNlMDRlZTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAxNy0wMS0zMCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBUaGUgc2FtcGxpbmcgcHJvZmlsZSBzaG91bGQgaGF2ZSBhbiBvcHRp
b24gdG8gc2FtcGxlIGZyb20gQyBmcmFtZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc2MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZSBzaG91bGQgYmUgYWJsZSB0byB1c2UgdGhlIHNhbXBsaW5n
IHByb2ZpbGVyLCBhdCBsZWFzdAorICAgICAgICBpbnRlcm5hbGx5LCB0byB0cmFjZSBDIGNhbGxz
LiAgVGhpcyBwYXRjaCBvbmx5IG1vZGlmaWVzIHRoZSBKU0MKKyAgICAgICAgc2hlbGwgYWx0aG91
Z2ggaXQgd291bGQgYmUgbmljZSB0byBhZGQgaXQgdG8gdGhlIFdlYiBJbnNwZWN0b3IgaW4KKyAg
ICAgICAgYSBmdXR1cmUgcGF0Y2guCisKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuaDoKKyAg
ICAgICAgKiBydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwOgorICAgICAgICAoSlNDOjpGcmFt
ZVdhbGtlcjo6RnJhbWVXYWxrZXIpOgorICAgICAgICAoSlNDOjpGcmFtZVdhbGtlcjo6d2Fsayk6
CisgICAgICAgIChKU0M6OkZyYW1lV2Fsa2VyOjpyZWNvcmRKU0ZyYW1lKToKKyAgICAgICAgKEpT
Qzo6Q0ZyYW1lV2Fsa2VyOjpDRnJhbWVXYWxrZXIpOgorICAgICAgICAoSlNDOjpDRnJhbWVXYWxr
ZXI6OndhbGspOgorICAgICAgICAoSlNDOjpDRnJhbWVXYWxrZXI6OmlzQ0ZyYW1lKToKKyAgICAg
ICAgKEpTQzo6Q0ZyYW1lV2Fsa2VyOjphZHZhbmNlVG9QYXJlbnRGcmFtZSk6CisgICAgICAgIChK
U0M6OkNGcmFtZVdhbGtlcjo6ZnJhbWUpOgorICAgICAgICAoSlNDOjpTYW1wbGluZ1Byb2ZpbGVy
Ojp0YWtlU2FtcGxlKToKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6cHJvY2Vzc1Vu
dmVyaWZpZWRTdGFja1RyYWNlcyk6CisgICAgICAgIChKU0M6OlNhbXBsaW5nUHJvZmlsZXI6OlN0
YWNrRnJhbWU6OmRpc3BsYXlOYW1lKToKKyAgICAgICAgKiBydW50aW1lL1NhbXBsaW5nUHJvZmls
ZXIuaDoKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6VW5wcm9jZXNzZWRTdGFja0Zy
YW1lOjpVbnByb2Nlc3NlZFN0YWNrRnJhbWUpOgorCiAyMDE3LTAxLTMxICBUb21hcyBQb3BlbGEg
IDx0cG9wZWxhQHJlZGhhdC5jb20+CiAKICAgICAgICAgQ29tcGlsYXRpb24gZXJyb3IgaW4gSlNB
cnJheUJ1ZmZlclZpZXcuaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT3B0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCmlu
ZGV4IDdmNTNkYzQ4NGI5ZTUwM2ZlOTMxMjk3MzhkNGYwZTM4YTI5ZjAyYjMuLmE0NmM3ZmE1Njkw
ODY3NGI0ZmFhNWZmYTIzMTMzNDNlMTgyNjViODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PcHRpb25zLmgKQEAgLTM2NCw2ICszNjQsNyBAQCB0eXBlZGVmIGNvbnN0IGNoYXIqIG9w
dGlvblN0cmluZzsKICAgICB2KHVuc2lnbmVkLCBzYW1wbGluZ1Byb2ZpbGVyVG9wRnVuY3Rpb25z
Q291bnQsIDEyLCBOb3JtYWwsICJOdW1iZXIgb2YgdG9wIGZ1bmN0aW9ucyB0byByZXBvcnQgd2hl
biB1c2luZyB0aGUgY29tbWFuZCBsaW5lIGludGVyZmFjZS4iKSBcCiAgICAgdih1bnNpZ25lZCwg
c2FtcGxpbmdQcm9maWxlclRvcEJ5dGVjb2Rlc0NvdW50LCA0MCwgTm9ybWFsLCAiTnVtYmVyIG9m
IHRvcCBieXRlY29kZXMgdG8gcmVwb3J0IHdoZW4gdXNpbmcgdGhlIGNvbW1hbmQgbGluZSBpbnRl
cmZhY2UuIikgXAogICAgIHYob3B0aW9uU3RyaW5nLCBzYW1wbGluZ1Byb2ZpbGVyUGF0aCwgbnVs
bHB0ciwgTm9ybWFsLCAiVGhlIHBhdGggdG8gdGhlIGRpcmVjdG9yeSB0byB3cml0ZSBzYW1waWxp
bmcgcHJvZmlsZXIgb3V0cHV0IHRvLiBUaGlzIHByb2JhYmx5IHdpbGwgbm90IHdvcmsgd2l0aCBX
SzIgdW5sZXNzIHRoZSBwYXRoIGlzIGluIHRoZSB3aGl0ZWxpc3QuIikgXAorICAgIHYoYm9vbCwg
c2FtcGxlQ0NvZGUsIGZhbHNlLCBOb3JtYWwsICJDYXVzZXMgdGhlIHNhbXBsaW5nIHByb2ZpbGVy
IHRvIHJlY29yZCBwcm9maWxpbmcgZGF0YSBmb3IgQyBmcmFtZXMuIikgXAogICAgIFwKICAgICB2
KGJvb2wsIGFsd2F5c0dlbmVyYXRlUENUb0NvZGVPcmlnaW5NYXAsIGZhbHNlLCBOb3JtYWwsICJU
aGlzIHdpbGwgbWFrZSBzdXJlIHdlIGFsd2F5cyBnZW5lcmF0ZSBhIFBDVG9Db2RlT3JpZ2luTWFw
IGZvciBKSVRlZCBjb2RlLiIpIFwKICAgICBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCmluZGV4IDJlMDdhMDRkOTk2NWVjZDQxMWNj
NWFmZTEwYmI5ZmU5Y2U3ZTczOTMuLjBjM2FjZjBmNTExYTcxNTJmYTRhNmRkZTNjOGMwNDk3ZGQy
MTI2YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5n
UHJvZmlsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5n
UHJvZmlsZXIuY3BwCkBAIC01MSw2ICs1MSwxMSBAQAogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKKyNpZiBPUyhEQVJXSU4pCisj
aW5jbHVkZSA8Y3h4YWJpLmg+CisjaW5jbHVkZSA8ZGxmY24uaD4KKyNlbmRpZgorCiBuYW1lc3Bh
Y2UgSlNDIHsKIAogc3RhdGljIGRvdWJsZSBzTnVtVG90YWxTdGFja1RyYWNlcyA9IDA7CkBAIC03
Niw3ICs4MSw3IEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIHZvaWQgcmVwb3J0U3RhdHMoKQogCiBj
bGFzcyBGcmFtZVdhbGtlciB7CiBwdWJsaWM6Ci0gICAgRnJhbWVXYWxrZXIoRXhlY1N0YXRlKiBj
YWxsRnJhbWUsIFZNJiB2bSwgY29uc3QgTG9ja0hvbGRlciYgY29kZUJsb2NrU2V0TG9ja2VyLCBj
b25zdCBMb2NrSG9sZGVyJiBtYWNoaW5lVGhyZWFkc0xvY2tlcikKKyAgICBGcmFtZVdhbGtlcihW
TSYgdm0sIEV4ZWNTdGF0ZSogY2FsbEZyYW1lLCBjb25zdCBMb2NrSG9sZGVyJiBjb2RlQmxvY2tT
ZXRMb2NrZXIsIGNvbnN0IExvY2tIb2xkZXImIG1hY2hpbmVUaHJlYWRzTG9ja2VyKQogICAgICAg
ICA6IG1fdm0odm0pCiAgICAgICAgICwgbV9jYWxsRnJhbWUoY2FsbEZyYW1lKQogICAgICAgICAs
IG1fdm1FbnRyeUZyYW1lKHZtLnRvcFZNRW50cnlGcmFtZSkKQEAgLTkzLDE1ICs5OCw3IEBAIHB1
YmxpYzoKICAgICAgICAgcmVzZXRBdE1hY2hpbmVGcmFtZSgpOwogICAgICAgICBzaXplX3QgbWF4
U3RhY2tUcmFjZVNpemUgPSBzdGFja1RyYWNlLnNpemUoKTsKICAgICAgICAgd2hpbGUgKCFpc0F0
VG9wKCkgJiYgIW1fYmFpbGluZ091dCAmJiBtX2RlcHRoIDwgbWF4U3RhY2tUcmFjZVNpemUpIHsK
LSAgICAgICAgICAgIENhbGxTaXRlSW5kZXggY2FsbFNpdGVJbmRleDsKLSAgICAgICAgICAgIEpT
VmFsdWUgdW5zYWZlQ2FsbGVlID0gbV9jYWxsRnJhbWUtPnVuc2FmZUNhbGxlZSgpOwotICAgICAg
ICAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBtX2NhbGxGcmFtZS0+dW5zYWZlQ29kZUJsb2Nr
KCk7Ci0gICAgICAgICAgICBpZiAoY29kZUJsb2NrKSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJU
KGlzVmFsaWRDb2RlQmxvY2soY29kZUJsb2NrKSk7Ci0gICAgICAgICAgICAgICAgY2FsbFNpdGVJ
bmRleCA9IG1fY2FsbEZyYW1lLT51bnNhZmVDYWxsU2l0ZUluZGV4KCk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBzdGFja1RyYWNlW21fZGVwdGhdID0gVW5wcm9jZXNzZWRTdGFja0ZyYW1l
KGNvZGVCbG9jaywgSlNWYWx1ZTo6ZW5jb2RlKHVuc2FmZUNhbGxlZSksIGNhbGxTaXRlSW5kZXgp
OwotICAgICAgICAgICAgbV9kZXB0aCsrOworICAgICAgICAgICAgcmVjb3JkSlNGcmFtZShzdGFj
a1RyYWNlKTsKICAgICAgICAgICAgIGFkdmFuY2VUb1BhcmVudEZyYW1lKCk7CiAgICAgICAgICAg
ICByZXNldEF0TWFjaGluZUZyYW1lKCk7CiAgICAgICAgIH0KQEAgLTExNSw3ICsxMTIsMjEgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gIW1fYmFpbGluZ091dDsKICAgICB9CiAKLXByaXZhdGU6
Citwcm90ZWN0ZWQ6CisKKyAgICBTVVBQUkVTU19BU0FOCisgICAgdm9pZCByZWNvcmRKU0ZyYW1l
KFZlY3RvcjxVbnByb2Nlc3NlZFN0YWNrRnJhbWU+JiBzdGFja1RyYWNlKQorICAgIHsKKyAgICAg
ICAgQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZUluZGV4OworICAgICAgICBKU1ZhbHVlIHVuc2FmZUNh
bGxlZSA9IG1fY2FsbEZyYW1lLT51bnNhZmVDYWxsZWUoKTsKKyAgICAgICAgQ29kZUJsb2NrKiBj
b2RlQmxvY2sgPSBtX2NhbGxGcmFtZS0+dW5zYWZlQ29kZUJsb2NrKCk7CisgICAgICAgIGlmIChj
b2RlQmxvY2spIHsKKyAgICAgICAgICAgIEFTU0VSVChpc1ZhbGlkQ29kZUJsb2NrKGNvZGVCbG9j
aykpOworICAgICAgICAgICAgY2FsbFNpdGVJbmRleCA9IG1fY2FsbEZyYW1lLT51bnNhZmVDYWxs
U2l0ZUluZGV4KCk7CisgICAgICAgIH0KKyAgICAgICAgc3RhY2tUcmFjZVttX2RlcHRoXSA9IFVu
cHJvY2Vzc2VkU3RhY2tGcmFtZShjb2RlQmxvY2ssIEpTVmFsdWU6OmVuY29kZSh1bnNhZmVDYWxs
ZWUpLCBjYWxsU2l0ZUluZGV4KTsKKyAgICAgICAgbV9kZXB0aCsrOworICAgIH0KIAogICAgIFNV
UFBSRVNTX0FTQU4KICAgICB2b2lkIGFkdmFuY2VUb1BhcmVudEZyYW1lKCkKQEAgLTE4NSw2ICsx
OTYsNjQgQEAgcHJpdmF0ZToKICAgICBzaXplX3QgbV9kZXB0aCB7IDAgfTsKIH07CiAKK2NsYXNz
IENGcmFtZVdhbGtlciA6IHB1YmxpYyBGcmFtZVdhbGtlciB7CitwdWJsaWM6CisgICAgdHlwZWRl
ZiBGcmFtZVdhbGtlciBCYXNlOworCisgICAgQ0ZyYW1lV2Fsa2VyKFZNJiB2bSwgdm9pZCogbWFj
aGluZUZyYW1lLCBFeGVjU3RhdGUqIGNhbGxGcmFtZSwgY29uc3QgTG9ja0hvbGRlciYgY29kZUJs
b2NrU2V0TG9ja2VyLCBjb25zdCBMb2NrSG9sZGVyJiBtYWNoaW5lVGhyZWFkc0xvY2tlcikKKyAg
ICAgICAgOiBCYXNlKHZtLCBjYWxsRnJhbWUsIGNvZGVCbG9ja1NldExvY2tlciwgbWFjaGluZVRo
cmVhZHNMb2NrZXIpCisgICAgICAgICwgbV9tYWNoaW5lRnJhbWUobWFjaGluZUZyYW1lKQorICAg
IHsKKyAgICB9CisKKyAgICBzaXplX3Qgd2FsayhWZWN0b3I8VW5wcm9jZXNzZWRTdGFja0ZyYW1l
PiYgc3RhY2tUcmFjZSwgYm9vbCYgZGlkUnVuT3V0T2ZTcGFjZSkKKyAgICB7CisgICAgICAgIGlm
IChzUmVwb3J0U3RhdHMpCisgICAgICAgICAgICBzTnVtVG90YWxXYWxrcysrOworICAgICAgICBy
ZXNldEF0TWFjaGluZUZyYW1lKCk7CisgICAgICAgIHNpemVfdCBtYXhTdGFja1RyYWNlU2l6ZSA9
IHN0YWNrVHJhY2Uuc2l6ZSgpOworICAgICAgICB3aGlsZSAoIWlzQXRUb3AoKSAmJiAhbV9iYWls
aW5nT3V0ICYmIG1fZGVwdGggPCBtYXhTdGFja1RyYWNlU2l6ZSkgeworICAgICAgICAgICAgaWYg
KG1fbWFjaGluZUZyYW1lID4gbV9jYWxsRnJhbWUpIHsKKyAgICAgICAgICAgICAgICAvLyBJZiB3
ZSBnZXQgdG8gdGhpcyBzdGF0ZSB3ZSBwcm9iYWJseSBoYXZlIGFuIGludmFsaWQgdHJhY2UuCisg
ICAgICAgICAgICAgICAgbV9iYWlsaW5nT3V0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGlzQ0ZyYW1lKCkpIHsKKyAgICAg
ICAgICAgICAgICBzdGFja1RyYWNlW21fZGVwdGhdID0gVW5wcm9jZXNzZWRTdGFja0ZyYW1lKGZy
YW1lKCktPnBjKTsKKyAgICAgICAgICAgICAgICBtX2RlcHRoKys7CisgICAgICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgICAgICByZWNvcmRKU0ZyYW1lKHN0YWNrVHJhY2UpOworICAgICAgICAg
ICAgYWR2YW5jZVRvUGFyZW50RnJhbWUoKTsKKyAgICAgICAgICAgIHJlc2V0QXRNYWNoaW5lRnJh
bWUoKTsKKyAgICAgICAgfQorICAgICAgICBkaWRSdW5PdXRPZlNwYWNlID0gbV9kZXB0aCA+PSBt
YXhTdGFja1RyYWNlU2l6ZSAmJiAhaXNBdFRvcCgpOworICAgICAgICByZXBvcnRTdGF0cygpOwor
ICAgICAgICByZXR1cm4gbV9kZXB0aDsKKyAgICB9CisKK3ByaXZhdGU6CisKKyAgICBib29sIGlz
Q0ZyYW1lKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX21hY2hpbmVGcmFtZSAhPSBtX2NhbGxG
cmFtZTsKKyAgICB9CisKKyAgICB2b2lkIGFkdmFuY2VUb1BhcmVudEZyYW1lKCkKKyAgICB7Cisg
ICAgICAgIGlmICghaXNDRnJhbWUoKSkKKyAgICAgICAgICAgIEJhc2U6OmFkdmFuY2VUb1BhcmVu
dEZyYW1lKCk7CisgICAgICAgIG1fbWFjaGluZUZyYW1lID0gZnJhbWUoKS0+Y2FsbGVyRnJhbWU7
CisgICAgfQorCisgICAgQ2FsbGVyRnJhbWVBbmRQQyogZnJhbWUoKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Q2FsbGVyRnJhbWVBbmRQQyo+KG1fbWFjaGluZUZyYW1l
KTsKKyAgICB9CisKKyAgICB2b2lkKiBtX21hY2hpbmVGcmFtZTsKK307CisKIFNhbXBsaW5nUHJv
ZmlsZXI6OlNhbXBsaW5nUHJvZmlsZXIoVk0mIHZtLCBSZWZQdHI8U3RvcHdhdGNoPiYmIHN0b3B3
YXRjaCkKICAgICA6IG1fdm0odm0pCiAgICAgLCBtX3N0b3B3YXRjaChXVEZNb3ZlKHN0b3B3YXRj
aCkpCkBAIC0yNTgsNiArMzI3LDcgQEAgdm9pZCBTYW1wbGluZ1Byb2ZpbGVyOjp0YWtlU2FtcGxl
KGNvbnN0IExvY2tIb2xkZXImLCBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzJgogICAgICAgICBp
ZiAoZGlkU3VzcGVuZCkgewogICAgICAgICAgICAgLy8gV2hpbGUgdGhlIEpTQyB0aHJlYWQgaXMg
c3VzcGVuZGVkLCB3ZSBjYW4ndCBkbyB0aGluZ3MgbGlrZSBtYWxsb2MgYmVjYXVzZSB0aGUgSlND
IHRocmVhZAogICAgICAgICAgICAgLy8gbWF5IGJlIGhvbGRpbmcgdGhlIG1hbGxvYyBsb2NrLgor
ICAgICAgICAgICAgdm9pZCogbWFjaGluZUZyYW1lOwogICAgICAgICAgICAgRXhlY1N0YXRlKiBj
YWxsRnJhbWU7CiAgICAgICAgICAgICB2b2lkKiBtYWNoaW5lUEM7CiAgICAgICAgICAgICBib29s
IHRvcEZyYW1lSXNMTEludCA9IGZhbHNlOwpAQCAtMjY1LDcgKzMzNSw4IEBAIHZvaWQgU2FtcGxp
bmdQcm9maWxlcjo6dGFrZVNhbXBsZShjb25zdCBMb2NrSG9sZGVyJiwgc3RkOjpjaHJvbm86Om1p
Y3Jvc2Vjb25kcyYKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBNYWNoaW5lVGhyZWFk
czo6VGhyZWFkOjpSZWdpc3RlcnMgcmVnaXN0ZXJzOwogICAgICAgICAgICAgICAgIG1fanNjRXhl
Y3V0aW9uVGhyZWFkLT5nZXRSZWdpc3RlcnMocmVnaXN0ZXJzKTsKLSAgICAgICAgICAgICAgICBj
YWxsRnJhbWUgPSBzdGF0aWNfY2FzdDxFeGVjU3RhdGUqPihyZWdpc3RlcnMuZnJhbWVQb2ludGVy
KCkpOworICAgICAgICAgICAgICAgIG1hY2hpbmVGcmFtZSA9IHJlZ2lzdGVycy5mcmFtZVBvaW50
ZXIoKTsKKyAgICAgICAgICAgICAgICBjYWxsRnJhbWUgPSBzdGF0aWNfY2FzdDxFeGVjU3RhdGUq
PihtYWNoaW5lRnJhbWUpOwogICAgICAgICAgICAgICAgIG1hY2hpbmVQQyA9IHJlZ2lzdGVycy5p
bnN0cnVjdGlvblBvaW50ZXIoKTsKICAgICAgICAgICAgICAgICBsbGludFBDID0gcmVnaXN0ZXJz
LmxsaW50UEMoKTsKICAgICAgICAgICAgICAgICBtX2pzY0V4ZWN1dGlvblRocmVhZC0+ZnJlZVJl
Z2lzdGVycyhyZWdpc3RlcnMpOwpAQCAtMjkxLDggKzM2MiwxMiBAQCB2b2lkIFNhbXBsaW5nUHJv
ZmlsZXI6OnRha2VTYW1wbGUoY29uc3QgTG9ja0hvbGRlciYsIHN0ZDo6Y2hyb25vOjptaWNyb3Nl
Y29uZHMmCiAgICAgICAgICAgICBzaXplX3Qgd2Fsa1NpemU7CiAgICAgICAgICAgICBib29sIHdh
c1ZhbGlkV2FsazsKICAgICAgICAgICAgIGJvb2wgZGlkUnVuT3V0T2ZWZWN0b3JTcGFjZTsKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBGcmFtZVdhbGtlciB3YWxrZXIoY2FsbEZyYW1l
LCBtX3ZtLCBjb2RlQmxvY2tTZXRMb2NrZXIsIG1hY2hpbmVUaHJlYWRzTG9ja2VyKTsKKyAgICAg
ICAgICAgIGlmIChPcHRpb25zOjpzYW1wbGVDQ29kZSgpKSB7CisgICAgICAgICAgICAgICAgQ0Zy
YW1lV2Fsa2VyIHdhbGtlcihtX3ZtLCBtYWNoaW5lRnJhbWUsIGNhbGxGcmFtZSwgY29kZUJsb2Nr
U2V0TG9ja2VyLCBtYWNoaW5lVGhyZWFkc0xvY2tlcik7CisgICAgICAgICAgICAgICAgd2Fsa1Np
emUgPSB3YWxrZXIud2FsayhtX2N1cnJlbnRGcmFtZXMsIGRpZFJ1bk91dE9mVmVjdG9yU3BhY2Up
OworICAgICAgICAgICAgICAgIHdhc1ZhbGlkV2FsayA9IHdhbGtlci53YXNWYWxpZFdhbGsoKTsK
KyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgRnJhbWVXYWxrZXIgd2Fsa2Vy
KG1fdm0sIGNhbGxGcmFtZSwgY29kZUJsb2NrU2V0TG9ja2VyLCBtYWNoaW5lVGhyZWFkc0xvY2tl
cik7CiAgICAgICAgICAgICAgICAgd2Fsa1NpemUgPSB3YWxrZXIud2FsayhtX2N1cnJlbnRGcmFt
ZXMsIGRpZFJ1bk91dE9mVmVjdG9yU3BhY2UpOwogICAgICAgICAgICAgICAgIHdhc1ZhbGlkV2Fs
ayA9IHdhbGtlci53YXNWYWxpZFdhbGsoKTsKICAgICAgICAgICAgIH0KQEAgLTUyNywxMiArNjAy
LDE3IEBAIHZvaWQgU2FtcGxpbmdQcm9maWxlcjo6cHJvY2Vzc1VudmVyaWZpZWRTdGFja1RyYWNl
cygpCiAjZWxzZQogICAgICAgICAgICAgICAgIGFwcGVuZENvZGVCbG9ja05vSW5saW5pbmcoKTsK
ICNlbmRpZgorICAgICAgICAgICAgfSBlbHNlIGlmICh1bnByb2Nlc3NlZFN0YWNrRnJhbWUuY0Nv
ZGVQQykgeworICAgICAgICAgICAgICAgIGFwcGVuZEVtcHR5RnJhbWUoKTsKKyAgICAgICAgICAg
ICAgICBzdGFja1RyYWNlLmZyYW1lcy5sYXN0KCkuY0NvZGVQQyA9IHVucHJvY2Vzc2VkU3RhY2tG
cmFtZS5jQ29kZVBDOworICAgICAgICAgICAgICAgIHN0YWNrVHJhY2UuZnJhbWVzLmxhc3QoKS5m
cmFtZVR5cGUgPSBGcmFtZVR5cGU6Okhvc3Q7CiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAg
ICAgICAgICBhcHBlbmRFbXB0eUZyYW1lKCk7CiAKICAgICAgICAgICAgIC8vIE5vdGUgdGhhdCB0
aGlzIGlzIG9rYXkgdG8gZG8gaWYgd2Ugd2Fsa2VkIHRoZSBpbmxpbmUgc3RhY2sgYmVjYXVzZQog
ICAgICAgICAgICAgLy8gdGhlIG1hY2hpbmUgZnJhbWUgd2lsbCBiZSBhdCB0aGUgdG9wIG9mIHRo
ZSBwcm9jZXNzZWQgc3RhY2sgdHJhY2UuCi0gICAgICAgICAgICBzdG9yZUNhbGxlZUludG9MYXN0
RnJhbWUodW5wcm9jZXNzZWRTdGFja0ZyYW1lLnVudmVyaWZpZWRDYWxsZWUpOworICAgICAgICAg
ICAgaWYgKCF1bnByb2Nlc3NlZFN0YWNrRnJhbWUuY0NvZGVQQykKKyAgICAgICAgICAgICAgICBz
dG9yZUNhbGxlZUludG9MYXN0RnJhbWUodW5wcm9jZXNzZWRTdGFja0ZyYW1lLnVudmVyaWZpZWRD
YWxsZWUpOwogICAgICAgICB9CiAgICAgfQogCkBAIC02NDYsOSArNzI2LDIyIEBAIFN0cmluZyBT
YW1wbGluZ1Byb2ZpbGVyOjpTdGFja0ZyYW1lOjpkaXNwbGF5TmFtZShWTSYgdm0pCiAKICAgICBp
ZiAoZnJhbWVUeXBlID09IEZyYW1lVHlwZTo6VW5rbm93bikKICAgICAgICAgcmV0dXJuIEFTQ0lJ
TGl0ZXJhbCgiKHVua25vd24pIik7Ci0gICAgaWYgKGZyYW1lVHlwZSA9PSBGcmFtZVR5cGU6Okhv
c3QpCisgICAgaWYgKGZyYW1lVHlwZSA9PSBGcmFtZVR5cGU6Okhvc3QpIHsKKyNpZiBPUyhEQVJX
SU4pCisgICAgICAgIGlmIChPcHRpb25zOjpzYW1wbGVDQ29kZSgpKSB7CisgICAgICAgICAgICBj
b25zdCBjaGFyKiBtYW5nbGVkTmFtZSA9IG51bGxwdHI7CisgICAgICAgICAgICBjb25zdCBjaGFy
KiBjeGFEZW1hbmdsZWQgPSBudWxscHRyOworICAgICAgICAgICAgRGxfaW5mbyBpbmZvOworICAg
ICAgICAgICAgaWYgKGRsYWRkcihjQ29kZVBDLCAmaW5mbykgJiYgaW5mby5kbGlfc25hbWUpCisg
ICAgICAgICAgICAgICAgbWFuZ2xlZE5hbWUgPSBpbmZvLmRsaV9zbmFtZTsKKyAgICAgICAgICAg
IGlmIChtYW5nbGVkTmFtZSkgeworICAgICAgICAgICAgICAgIGN4YURlbWFuZ2xlZCA9IGFiaTo6
X19jeGFfZGVtYW5nbGUobWFuZ2xlZE5hbWUsIDAsIDAsIDApOworICAgICAgICAgICAgICAgIHJl
dHVybiBTdHJpbmcoY3hhRGVtYW5nbGVkID8gY3hhRGVtYW5nbGVkIDogbWFuZ2xlZE5hbWUpOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CisjZW5kaWYKICAgICAgICAgcmV0dXJuIEFTQ0lJTGl0
ZXJhbCgiKGhvc3QpIik7Ci0KKyAgICB9CiAgICAgaWYgKGV4ZWN1dGFibGUtPmlzSG9zdEZ1bmN0
aW9uKCkpCiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxOYXRpdmVFeGVjdXRhYmxlKj4oZXhl
Y3V0YWJsZSktPm5hbWUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU2FtcGxpbmdQcm9maWxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U2FtcGxpbmdQcm9maWxlci5oCmluZGV4IDAyOWNjNzBlYjM1MDBlOWJhZTY2ODMwOTUxNDdlMGY0
M2Y3NTRjY2EuLjY2OTc4NTZkYWRhMzY0ZTdiOWU0ODJlMzQzMDU5YTkzYjViMDk3Y2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmgKQEAg
LTUxLDIxICs1MSwyNiBAQCBwdWJsaWM6CiAgICAgICAgICAgICAsIHZlcmlmaWVkQ29kZUJsb2Nr
KGNvZGVCbG9jaykKICAgICAgICAgICAgICwgY2FsbFNpdGVJbmRleChjYWxsU2l0ZUluZGV4KQog
ICAgICAgICB7IH0KKworICAgICAgICBVbnByb2Nlc3NlZFN0YWNrRnJhbWUodm9pZCogcGMpCisg
ICAgICAgICAgICA6IGNDb2RlUEMocGMpCisgICAgICAgIHsgfQorCiAgICAgICAgIFVucHJvY2Vz
c2VkU3RhY2tGcmFtZSgpCiAgICAgICAgIHsKICAgICAgICAgICAgIHVudmVyaWZpZWRDYWxsZWUg
PSBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsKLSAgICAgICAgICAgIHZlcmlmaWVkQ29kZUJs
b2NrID0gbnVsbHB0cjsKICAgICAgICAgfQogCisgICAgICAgIHZvaWQqIGNDb2RlUEMgeyBudWxs
cHRyIH07CiAgICAgICAgIEVuY29kZWRKU1ZhbHVlIHVudmVyaWZpZWRDYWxsZWU7Ci0gICAgICAg
IENvZGVCbG9jayogdmVyaWZpZWRDb2RlQmxvY2s7CisgICAgICAgIENvZGVCbG9jayogdmVyaWZp
ZWRDb2RlQmxvY2sgeyBudWxscHRyIH07CiAgICAgICAgIENhbGxTaXRlSW5kZXggY2FsbFNpdGVJ
bmRleDsKICAgICB9OwogCiAgICAgZW51bSBjbGFzcyBGcmFtZVR5cGUgeyAKICAgICAgICAgRXhl
Y3V0YWJsZSwKICAgICAgICAgSG9zdCwKLSAgICAgICAgVW5rbm93biAKKyAgICAgICAgVW5rbm93
bgogICAgIH07CiAKICAgICBzdHJ1Y3QgU3RhY2tGcmFtZSB7CkBAIC03OCw2ICs4Myw3IEBAIHB1
YmxpYzoKICAgICAgICAgeyB9CiAKICAgICAgICAgRnJhbWVUeXBlIGZyYW1lVHlwZSB7IEZyYW1l
VHlwZTo6VW5rbm93biB9OworICAgICAgICB2b2lkKiBjQ29kZVBDIHsgbnVsbHB0ciB9OwogICAg
ICAgICBFeGVjdXRhYmxlQmFzZSogZXhlY3V0YWJsZSB7IG51bGxwdHIgfTsKICAgICAgICAgSlNP
YmplY3QqIGNhbGxlZSB7IG51bGxwdHIgfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300362</attachid>
            <date>2017-02-01 16:03:57 -0800</date>
            <delta_ts>2017-02-01 16:04:18 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-167614-20170201160144.patch</filename>
            <type>text/plain</type>
            <size>15542</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExNDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
MmM2OWM3NDlkOTFiNTdkNTdiMmI5NGQzOWFlOWY4YTBmZWM5YTg2Li5jZDRhZjc4YzBhMDBiNzVh
YmNhNzJkYWM5M2E4NDU0MDM4NmY4ZTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAxNy0wMS0zMCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBUaGUgc2FtcGxpbmcgcHJvZmlsZSBzaG91bGQgaGF2ZSBhbiBvcHRp
b24gdG8gc2FtcGxlIGZyb20gQyBmcmFtZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc2MTQKKworICAgICAgICBSZXZpZXdlZCBieSBTYWFtIEJh
cmF0aS4KKworICAgICAgICBXZSBzaG91bGQgYmUgYWJsZSB0byB1c2UgdGhlIHNhbXBsaW5nIHBy
b2ZpbGVyLCBhdCBsZWFzdAorICAgICAgICBpbnRlcm5hbGx5LCB0byB0cmFjZSBDIGNhbGxzLiAg
VGhpcyBwYXRjaCBvbmx5IG1vZGlmaWVzIHRoZSBKU0MKKyAgICAgICAgc2hlbGwgYWx0aG91Z2gg
aXQgd291bGQgYmUgbmljZSB0byBhZGQgaXQgdG8gdGhlIFdlYiBJbnNwZWN0b3IgaW4KKyAgICAg
ICAgYSBmdXR1cmUgcGF0Y2guCisKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuaDoKKyAgICAg
ICAgKiBydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwOgorICAgICAgICAoSlNDOjpGcmFtZVdh
bGtlcjo6RnJhbWVXYWxrZXIpOgorICAgICAgICAoSlNDOjpGcmFtZVdhbGtlcjo6d2Fsayk6Cisg
ICAgICAgIChKU0M6OkZyYW1lV2Fsa2VyOjpyZWNvcmRKU0ZyYW1lKToKKyAgICAgICAgKEpTQzo6
Q0ZyYW1lV2Fsa2VyOjpDRnJhbWVXYWxrZXIpOgorICAgICAgICAoSlNDOjpDRnJhbWVXYWxrZXI6
OndhbGspOgorICAgICAgICAoSlNDOjpDRnJhbWVXYWxrZXI6OmlzQ0ZyYW1lKToKKyAgICAgICAg
KEpTQzo6Q0ZyYW1lV2Fsa2VyOjphZHZhbmNlVG9QYXJlbnRGcmFtZSk6CisgICAgICAgIChKU0M6
OkNGcmFtZVdhbGtlcjo6ZnJhbWUpOgorICAgICAgICAoSlNDOjpTYW1wbGluZ1Byb2ZpbGVyOjp0
YWtlU2FtcGxlKToKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6cHJvY2Vzc1VudmVy
aWZpZWRTdGFja1RyYWNlcyk6CisgICAgICAgIChKU0M6OlNhbXBsaW5nUHJvZmlsZXI6OlN0YWNr
RnJhbWU6OmRpc3BsYXlOYW1lKToKKyAgICAgICAgKiBydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIu
aDoKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6VW5wcm9jZXNzZWRTdGFja0ZyYW1l
OjpVbnByb2Nlc3NlZFN0YWNrRnJhbWUpOgorCiAyMDE3LTAxLTMxICBUb21hcyBQb3BlbGEgIDx0
cG9wZWxhQHJlZGhhdC5jb20+CiAKICAgICAgICAgQ29tcGlsYXRpb24gZXJyb3IgaW4gSlNBcnJh
eUJ1ZmZlclZpZXcuaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T3B0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCmluZGV4
IDdmNTNkYzQ4NGI5ZTUwM2ZlOTMxMjk3MzhkNGYwZTM4YTI5ZjAyYjMuLmE0NmM3ZmE1NjkwODY3
NGI0ZmFhNWZmYTIzMTMzNDNlMTgyNjViODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09wdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PcHRpb25zLmgKQEAgLTM2NCw2ICszNjQsNyBAQCB0eXBlZGVmIGNvbnN0IGNoYXIqIG9wdGlv
blN0cmluZzsKICAgICB2KHVuc2lnbmVkLCBzYW1wbGluZ1Byb2ZpbGVyVG9wRnVuY3Rpb25zQ291
bnQsIDEyLCBOb3JtYWwsICJOdW1iZXIgb2YgdG9wIGZ1bmN0aW9ucyB0byByZXBvcnQgd2hlbiB1
c2luZyB0aGUgY29tbWFuZCBsaW5lIGludGVyZmFjZS4iKSBcCiAgICAgdih1bnNpZ25lZCwgc2Ft
cGxpbmdQcm9maWxlclRvcEJ5dGVjb2Rlc0NvdW50LCA0MCwgTm9ybWFsLCAiTnVtYmVyIG9mIHRv
cCBieXRlY29kZXMgdG8gcmVwb3J0IHdoZW4gdXNpbmcgdGhlIGNvbW1hbmQgbGluZSBpbnRlcmZh
Y2UuIikgXAogICAgIHYob3B0aW9uU3RyaW5nLCBzYW1wbGluZ1Byb2ZpbGVyUGF0aCwgbnVsbHB0
ciwgTm9ybWFsLCAiVGhlIHBhdGggdG8gdGhlIGRpcmVjdG9yeSB0byB3cml0ZSBzYW1waWxpbmcg
cHJvZmlsZXIgb3V0cHV0IHRvLiBUaGlzIHByb2JhYmx5IHdpbGwgbm90IHdvcmsgd2l0aCBXSzIg
dW5sZXNzIHRoZSBwYXRoIGlzIGluIHRoZSB3aGl0ZWxpc3QuIikgXAorICAgIHYoYm9vbCwgc2Ft
cGxlQ0NvZGUsIGZhbHNlLCBOb3JtYWwsICJDYXVzZXMgdGhlIHNhbXBsaW5nIHByb2ZpbGVyIHRv
IHJlY29yZCBwcm9maWxpbmcgZGF0YSBmb3IgQyBmcmFtZXMuIikgXAogICAgIFwKICAgICB2KGJv
b2wsIGFsd2F5c0dlbmVyYXRlUENUb0NvZGVPcmlnaW5NYXAsIGZhbHNlLCBOb3JtYWwsICJUaGlz
IHdpbGwgbWFrZSBzdXJlIHdlIGFsd2F5cyBnZW5lcmF0ZSBhIFBDVG9Db2RlT3JpZ2luTWFwIGZv
ciBKSVRlZCBjb2RlLiIpIFwKICAgICBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCmluZGV4IDJlMDdhMDRkOTk2NWVjZDQxMWNjNWFm
ZTEwYmI5ZmU5Y2U3ZTczOTMuLjFjMjlhYWI5YTNjMjExYjYzNjE5ZjQ0NmIwMDYzYzM5NzVhMTA3
YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJv
ZmlsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJv
ZmlsZXIuY3BwCkBAIC01MSw2ICs1MSwxMSBAQAogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKKyNpZiBPUyhEQVJXSU4pCisjaW5j
bHVkZSA8Y3h4YWJpLmg+CisjaW5jbHVkZSA8ZGxmY24uaD4KKyNlbmRpZgorCiBuYW1lc3BhY2Ug
SlNDIHsKIAogc3RhdGljIGRvdWJsZSBzTnVtVG90YWxTdGFja1RyYWNlcyA9IDA7CkBAIC03Niw3
ICs4MSw3IEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIHZvaWQgcmVwb3J0U3RhdHMoKQogCiBjbGFz
cyBGcmFtZVdhbGtlciB7CiBwdWJsaWM6Ci0gICAgRnJhbWVXYWxrZXIoRXhlY1N0YXRlKiBjYWxs
RnJhbWUsIFZNJiB2bSwgY29uc3QgTG9ja0hvbGRlciYgY29kZUJsb2NrU2V0TG9ja2VyLCBjb25z
dCBMb2NrSG9sZGVyJiBtYWNoaW5lVGhyZWFkc0xvY2tlcikKKyAgICBGcmFtZVdhbGtlcihWTSYg
dm0sIEV4ZWNTdGF0ZSogY2FsbEZyYW1lLCBjb25zdCBMb2NrSG9sZGVyJiBjb2RlQmxvY2tTZXRM
b2NrZXIsIGNvbnN0IExvY2tIb2xkZXImIG1hY2hpbmVUaHJlYWRzTG9ja2VyKQogICAgICAgICA6
IG1fdm0odm0pCiAgICAgICAgICwgbV9jYWxsRnJhbWUoY2FsbEZyYW1lKQogICAgICAgICAsIG1f
dm1FbnRyeUZyYW1lKHZtLnRvcFZNRW50cnlGcmFtZSkKQEAgLTkzLDE1ICs5OCw3IEBAIHB1Ymxp
YzoKICAgICAgICAgcmVzZXRBdE1hY2hpbmVGcmFtZSgpOwogICAgICAgICBzaXplX3QgbWF4U3Rh
Y2tUcmFjZVNpemUgPSBzdGFja1RyYWNlLnNpemUoKTsKICAgICAgICAgd2hpbGUgKCFpc0F0VG9w
KCkgJiYgIW1fYmFpbGluZ091dCAmJiBtX2RlcHRoIDwgbWF4U3RhY2tUcmFjZVNpemUpIHsKLSAg
ICAgICAgICAgIENhbGxTaXRlSW5kZXggY2FsbFNpdGVJbmRleDsKLSAgICAgICAgICAgIEpTVmFs
dWUgdW5zYWZlQ2FsbGVlID0gbV9jYWxsRnJhbWUtPnVuc2FmZUNhbGxlZSgpOwotICAgICAgICAg
ICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBtX2NhbGxGcmFtZS0+dW5zYWZlQ29kZUJsb2NrKCk7
Ci0gICAgICAgICAgICBpZiAoY29kZUJsb2NrKSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKGlz
VmFsaWRDb2RlQmxvY2soY29kZUJsb2NrKSk7Ci0gICAgICAgICAgICAgICAgY2FsbFNpdGVJbmRl
eCA9IG1fY2FsbEZyYW1lLT51bnNhZmVDYWxsU2l0ZUluZGV4KCk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBzdGFja1RyYWNlW21fZGVwdGhdID0gVW5wcm9jZXNzZWRTdGFja0ZyYW1lKGNv
ZGVCbG9jaywgSlNWYWx1ZTo6ZW5jb2RlKHVuc2FmZUNhbGxlZSksIGNhbGxTaXRlSW5kZXgpOwot
ICAgICAgICAgICAgbV9kZXB0aCsrOworICAgICAgICAgICAgcmVjb3JkSlNGcmFtZShzdGFja1Ry
YWNlKTsKICAgICAgICAgICAgIGFkdmFuY2VUb1BhcmVudEZyYW1lKCk7CiAgICAgICAgICAgICBy
ZXNldEF0TWFjaGluZUZyYW1lKCk7CiAgICAgICAgIH0KQEAgLTExNSw3ICsxMTIsMjEgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gIW1fYmFpbGluZ091dDsKICAgICB9CiAKLXByaXZhdGU6Citw
cm90ZWN0ZWQ6CisKKyAgICBTVVBQUkVTU19BU0FOCisgICAgdm9pZCByZWNvcmRKU0ZyYW1lKFZl
Y3RvcjxVbnByb2Nlc3NlZFN0YWNrRnJhbWU+JiBzdGFja1RyYWNlKQorICAgIHsKKyAgICAgICAg
Q2FsbFNpdGVJbmRleCBjYWxsU2l0ZUluZGV4OworICAgICAgICBKU1ZhbHVlIHVuc2FmZUNhbGxl
ZSA9IG1fY2FsbEZyYW1lLT51bnNhZmVDYWxsZWUoKTsKKyAgICAgICAgQ29kZUJsb2NrKiBjb2Rl
QmxvY2sgPSBtX2NhbGxGcmFtZS0+dW5zYWZlQ29kZUJsb2NrKCk7CisgICAgICAgIGlmIChjb2Rl
QmxvY2spIHsKKyAgICAgICAgICAgIEFTU0VSVChpc1ZhbGlkQ29kZUJsb2NrKGNvZGVCbG9jaykp
OworICAgICAgICAgICAgY2FsbFNpdGVJbmRleCA9IG1fY2FsbEZyYW1lLT51bnNhZmVDYWxsU2l0
ZUluZGV4KCk7CisgICAgICAgIH0KKyAgICAgICAgc3RhY2tUcmFjZVttX2RlcHRoXSA9IFVucHJv
Y2Vzc2VkU3RhY2tGcmFtZShjb2RlQmxvY2ssIEpTVmFsdWU6OmVuY29kZSh1bnNhZmVDYWxsZWUp
LCBjYWxsU2l0ZUluZGV4KTsKKyAgICAgICAgbV9kZXB0aCsrOworICAgIH0KIAogICAgIFNVUFBS
RVNTX0FTQU4KICAgICB2b2lkIGFkdmFuY2VUb1BhcmVudEZyYW1lKCkKQEAgLTE1NCw3ICsxNjUs
NyBAQCBwcml2YXRlOgogICAgICAgICB9CiAgICAgfQogCi0gICAgYm9vbCBpc1ZhbGlkRnJhbWVQ
b2ludGVyKEV4ZWNTdGF0ZSogZXhlYykKKyAgICBib29sIGlzVmFsaWRGcmFtZVBvaW50ZXIodm9p
ZCogZXhlYykKICAgICB7CiAgICAgICAgIHVpbnQ4X3QqIGZwQ2FzdCA9IGJpdHdpc2VfY2FzdDx1
aW50OF90Kj4oZXhlYyk7CiAgICAgICAgIGZvciAoTWFjaGluZVRocmVhZHM6OlRocmVhZCogdGhy
ZWFkID0gbV92bS5oZWFwLm1hY2hpbmVUaHJlYWRzKCkudGhyZWFkc0xpc3RIZWFkKG1fbWFjaGlu
ZVRocmVhZHNMb2NrZXIpOyB0aHJlYWQ7IHRocmVhZCA9IHRocmVhZC0+bmV4dCkgewpAQCAtMTg1
LDYgKzE5Niw4NSBAQCBwcml2YXRlOgogICAgIHNpemVfdCBtX2RlcHRoIHsgMCB9OwogfTsKIAor
Y2xhc3MgQ0ZyYW1lV2Fsa2VyIDogcHVibGljIEZyYW1lV2Fsa2VyIHsKK3B1YmxpYzoKKyAgICB0
eXBlZGVmIEZyYW1lV2Fsa2VyIEJhc2U7CisKKyAgICBDRnJhbWVXYWxrZXIoVk0mIHZtLCB2b2lk
KiBtYWNoaW5lRnJhbWUsIEV4ZWNTdGF0ZSogY2FsbEZyYW1lLCBjb25zdCBMb2NrSG9sZGVyJiBj
b2RlQmxvY2tTZXRMb2NrZXIsIGNvbnN0IExvY2tIb2xkZXImIG1hY2hpbmVUaHJlYWRzTG9ja2Vy
KQorICAgICAgICA6IEJhc2Uodm0sIGNhbGxGcmFtZSwgY29kZUJsb2NrU2V0TG9ja2VyLCBtYWNo
aW5lVGhyZWFkc0xvY2tlcikKKyAgICAgICAgLCBtX21hY2hpbmVGcmFtZShtYWNoaW5lRnJhbWUp
CisgICAgeworICAgIH0KKworICAgIHNpemVfdCB3YWxrKFZlY3RvcjxVbnByb2Nlc3NlZFN0YWNr
RnJhbWU+JiBzdGFja1RyYWNlLCBib29sJiBkaWRSdW5PdXRPZlNwYWNlKQorICAgIHsKKyAgICAg
ICAgaWYgKHNSZXBvcnRTdGF0cykKKyAgICAgICAgICAgIHNOdW1Ub3RhbFdhbGtzKys7CisgICAg
ICAgIHJlc2V0QXRNYWNoaW5lRnJhbWUoKTsKKyAgICAgICAgc2l6ZV90IG1heFN0YWNrVHJhY2VT
aXplID0gc3RhY2tUcmFjZS5zaXplKCk7CisgICAgICAgIC8vIFRoZSB3YXkgdGhlIEMgd2Fsa2Vy
IGRlY2lkZXMgaWYgYSBmcmFtZSBpdCBpcyBhYm91dCB0byB0cmFjZSBpcyBDIG9yIEpTIGlzIGJ5
CisgICAgICAgIC8vIGVuc3VyaW5nIG1fY2FsbEZyYW1lIHBvaW50cyB0byBzb21lIGZyYW1lIGFi
b3ZlIHRoZSBtYWNoaW5lRnJhbWUuCisgICAgICAgIGlmICghaXNBdFRvcCgpICYmICFtX2JhaWxp
bmdPdXQgJiYgbV9tYWNoaW5lRnJhbWUgPT0gbV9jYWxsRnJhbWUpIHsKKyAgICAgICAgICAgIHJl
Y29yZEpTRnJhbWUoc3RhY2tUcmFjZSk7CisgICAgICAgICAgICBCYXNlOjphZHZhbmNlVG9QYXJl
bnRGcmFtZSgpOworICAgICAgICAgICAgcmVzZXRBdE1hY2hpbmVGcmFtZSgpOworICAgICAgICB9
CisKKyAgICAgICAgd2hpbGUgKCFpc0F0VG9wKCkgJiYgIW1fYmFpbGluZ091dCAmJiBtX2RlcHRo
IDwgbWF4U3RhY2tUcmFjZVNpemUpIHsKKyAgICAgICAgICAgIGlmIChtX21hY2hpbmVGcmFtZSA+
PSBtX2NhbGxGcmFtZSkgeworICAgICAgICAgICAgICAgIC8vIElmIHdlIGdldCB0byB0aGlzIHN0
YXRlIHdlIHByb2JhYmx5IGhhdmUgYW4gaW52YWxpZCB0cmFjZS4KKyAgICAgICAgICAgICAgICBt
X2JhaWxpbmdPdXQgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBpZiAoaXNDRnJhbWUoKSkgeworICAgICAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUKCFMTEludDo6aXNMTEludFBDKGZyYW1lKCktPmNhbGxlckZyYW1lKSk7CisgICAg
ICAgICAgICAgICAgc3RhY2tUcmFjZVttX2RlcHRoXSA9IFVucHJvY2Vzc2VkU3RhY2tGcmFtZShm
cmFtZSgpLT5wYyk7CisgICAgICAgICAgICAgICAgbV9kZXB0aCsrOworICAgICAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICAgICAgcmVjb3JkSlNGcmFtZShzdGFja1RyYWNlKTsKKyAgICAgICAg
ICAgIGFkdmFuY2VUb1BhcmVudEZyYW1lKCk7CisgICAgICAgICAgICByZXNldEF0TWFjaGluZUZy
YW1lKCk7CisgICAgICAgIH0KKyAgICAgICAgZGlkUnVuT3V0T2ZTcGFjZSA9IG1fZGVwdGggPj0g
bWF4U3RhY2tUcmFjZVNpemUgJiYgIWlzQXRUb3AoKTsKKyAgICAgICAgcmVwb3J0U3RhdHMoKTsK
KyAgICAgICAgcmV0dXJuIG1fZGVwdGg7CisgICAgfQorCitwcml2YXRlOgorCisgICAgYm9vbCBp
c0NGcmFtZSgpCisgICAgeworICAgICAgICByZXR1cm4gZnJhbWUoKS0+Y2FsbGVyRnJhbWUgIT0g
bV9jYWxsRnJhbWU7CisgICAgfQorCisgICAgdm9pZCBhZHZhbmNlVG9QYXJlbnRGcmFtZSgpCisg
ICAgeworICAgICAgICBpZiAoIWlzQ0ZyYW1lKCkpCisgICAgICAgICAgICBCYXNlOjphZHZhbmNl
VG9QYXJlbnRGcmFtZSgpOworICAgICAgICBtX21hY2hpbmVGcmFtZSA9IGZyYW1lKCktPmNhbGxl
ckZyYW1lOworICAgIH0KKworICAgIHZvaWQgcmVzZXRBdE1hY2hpbmVGcmFtZSgpCisgICAgewor
ICAgICAgICBpZiAoIWlzVmFsaWRGcmFtZVBvaW50ZXIobV9tYWNoaW5lRnJhbWUpKSB7CisgICAg
ICAgICAgICAvLyBHdWFyZCBhZ2FpbnN0IHBhdXNpbmcgdGhlIHByb2Nlc3MgYXQgd2VpcmQgcHJv
Z3JhbSBwb2ludHMuCisgICAgICAgICAgICBtX2JhaWxpbmdPdXQgPSB0cnVlOworICAgICAgICAg
ICAgaWYgKHNSZXBvcnRTdGF0cykKKyAgICAgICAgICAgICAgICBzTnVtRmFpbGVkV2Fsa3MrKzsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBCYXNlOjpyZXNldEF0TWFj
aGluZUZyYW1lKCk7CisgICAgfQorCisgICAgQ2FsbGVyRnJhbWVBbmRQQyogZnJhbWUoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Q2FsbGVyRnJhbWVBbmRQQyo+KG1f
bWFjaGluZUZyYW1lKTsKKyAgICB9CisKKyAgICB2b2lkKiBtX21hY2hpbmVGcmFtZTsKK307CisK
IFNhbXBsaW5nUHJvZmlsZXI6OlNhbXBsaW5nUHJvZmlsZXIoVk0mIHZtLCBSZWZQdHI8U3RvcHdh
dGNoPiYmIHN0b3B3YXRjaCkKICAgICA6IG1fdm0odm0pCiAgICAgLCBtX3N0b3B3YXRjaChXVEZN
b3ZlKHN0b3B3YXRjaCkpCkBAIC0yNTgsNiArMzQ4LDcgQEAgdm9pZCBTYW1wbGluZ1Byb2ZpbGVy
Ojp0YWtlU2FtcGxlKGNvbnN0IExvY2tIb2xkZXImLCBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRz
JgogICAgICAgICBpZiAoZGlkU3VzcGVuZCkgewogICAgICAgICAgICAgLy8gV2hpbGUgdGhlIEpT
QyB0aHJlYWQgaXMgc3VzcGVuZGVkLCB3ZSBjYW4ndCBkbyB0aGluZ3MgbGlrZSBtYWxsb2MgYmVj
YXVzZSB0aGUgSlNDIHRocmVhZAogICAgICAgICAgICAgLy8gbWF5IGJlIGhvbGRpbmcgdGhlIG1h
bGxvYyBsb2NrLgorICAgICAgICAgICAgdm9pZCogbWFjaGluZUZyYW1lOwogICAgICAgICAgICAg
RXhlY1N0YXRlKiBjYWxsRnJhbWU7CiAgICAgICAgICAgICB2b2lkKiBtYWNoaW5lUEM7CiAgICAg
ICAgICAgICBib29sIHRvcEZyYW1lSXNMTEludCA9IGZhbHNlOwpAQCAtMjY1LDcgKzM1Niw4IEBA
IHZvaWQgU2FtcGxpbmdQcm9maWxlcjo6dGFrZVNhbXBsZShjb25zdCBMb2NrSG9sZGVyJiwgc3Rk
OjpjaHJvbm86Om1pY3Jvc2Vjb25kcyYKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBN
YWNoaW5lVGhyZWFkczo6VGhyZWFkOjpSZWdpc3RlcnMgcmVnaXN0ZXJzOwogICAgICAgICAgICAg
ICAgIG1fanNjRXhlY3V0aW9uVGhyZWFkLT5nZXRSZWdpc3RlcnMocmVnaXN0ZXJzKTsKLSAgICAg
ICAgICAgICAgICBjYWxsRnJhbWUgPSBzdGF0aWNfY2FzdDxFeGVjU3RhdGUqPihyZWdpc3RlcnMu
ZnJhbWVQb2ludGVyKCkpOworICAgICAgICAgICAgICAgIG1hY2hpbmVGcmFtZSA9IHJlZ2lzdGVy
cy5mcmFtZVBvaW50ZXIoKTsKKyAgICAgICAgICAgICAgICBjYWxsRnJhbWUgPSBzdGF0aWNfY2Fz
dDxFeGVjU3RhdGUqPihtYWNoaW5lRnJhbWUpOwogICAgICAgICAgICAgICAgIG1hY2hpbmVQQyA9
IHJlZ2lzdGVycy5pbnN0cnVjdGlvblBvaW50ZXIoKTsKICAgICAgICAgICAgICAgICBsbGludFBD
ID0gcmVnaXN0ZXJzLmxsaW50UEMoKTsKICAgICAgICAgICAgICAgICBtX2pzY0V4ZWN1dGlvblRo
cmVhZC0+ZnJlZVJlZ2lzdGVycyhyZWdpc3RlcnMpOwpAQCAtMjkxLDggKzM4MywxMiBAQCB2b2lk
IFNhbXBsaW5nUHJvZmlsZXI6OnRha2VTYW1wbGUoY29uc3QgTG9ja0hvbGRlciYsIHN0ZDo6Y2hy
b25vOjptaWNyb3NlY29uZHMmCiAgICAgICAgICAgICBzaXplX3Qgd2Fsa1NpemU7CiAgICAgICAg
ICAgICBib29sIHdhc1ZhbGlkV2FsazsKICAgICAgICAgICAgIGJvb2wgZGlkUnVuT3V0T2ZWZWN0
b3JTcGFjZTsKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBGcmFtZVdhbGtlciB3YWxr
ZXIoY2FsbEZyYW1lLCBtX3ZtLCBjb2RlQmxvY2tTZXRMb2NrZXIsIG1hY2hpbmVUaHJlYWRzTG9j
a2VyKTsKKyAgICAgICAgICAgIGlmIChPcHRpb25zOjpzYW1wbGVDQ29kZSgpKSB7CisgICAgICAg
ICAgICAgICAgQ0ZyYW1lV2Fsa2VyIHdhbGtlcihtX3ZtLCBtYWNoaW5lRnJhbWUsIGNhbGxGcmFt
ZSwgY29kZUJsb2NrU2V0TG9ja2VyLCBtYWNoaW5lVGhyZWFkc0xvY2tlcik7CisgICAgICAgICAg
ICAgICAgd2Fsa1NpemUgPSB3YWxrZXIud2FsayhtX2N1cnJlbnRGcmFtZXMsIGRpZFJ1bk91dE9m
VmVjdG9yU3BhY2UpOworICAgICAgICAgICAgICAgIHdhc1ZhbGlkV2FsayA9IHdhbGtlci53YXNW
YWxpZFdhbGsoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgRnJhbWVX
YWxrZXIgd2Fsa2VyKG1fdm0sIGNhbGxGcmFtZSwgY29kZUJsb2NrU2V0TG9ja2VyLCBtYWNoaW5l
VGhyZWFkc0xvY2tlcik7CiAgICAgICAgICAgICAgICAgd2Fsa1NpemUgPSB3YWxrZXIud2Fsayht
X2N1cnJlbnRGcmFtZXMsIGRpZFJ1bk91dE9mVmVjdG9yU3BhY2UpOwogICAgICAgICAgICAgICAg
IHdhc1ZhbGlkV2FsayA9IHdhbGtlci53YXNWYWxpZFdhbGsoKTsKICAgICAgICAgICAgIH0KQEAg
LTUyNywxMiArNjIzLDE3IEBAIHZvaWQgU2FtcGxpbmdQcm9maWxlcjo6cHJvY2Vzc1VudmVyaWZp
ZWRTdGFja1RyYWNlcygpCiAjZWxzZQogICAgICAgICAgICAgICAgIGFwcGVuZENvZGVCbG9ja05v
SW5saW5pbmcoKTsKICNlbmRpZgorICAgICAgICAgICAgfSBlbHNlIGlmICh1bnByb2Nlc3NlZFN0
YWNrRnJhbWUuY0NvZGVQQykgeworICAgICAgICAgICAgICAgIGFwcGVuZEVtcHR5RnJhbWUoKTsK
KyAgICAgICAgICAgICAgICBzdGFja1RyYWNlLmZyYW1lcy5sYXN0KCkuY0NvZGVQQyA9IHVucHJv
Y2Vzc2VkU3RhY2tGcmFtZS5jQ29kZVBDOworICAgICAgICAgICAgICAgIHN0YWNrVHJhY2UuZnJh
bWVzLmxhc3QoKS5mcmFtZVR5cGUgPSBGcmFtZVR5cGU6OkM7CiAgICAgICAgICAgICB9IGVsc2UK
ICAgICAgICAgICAgICAgICBhcHBlbmRFbXB0eUZyYW1lKCk7CiAKICAgICAgICAgICAgIC8vIE5v
dGUgdGhhdCB0aGlzIGlzIG9rYXkgdG8gZG8gaWYgd2Ugd2Fsa2VkIHRoZSBpbmxpbmUgc3RhY2sg
YmVjYXVzZQogICAgICAgICAgICAgLy8gdGhlIG1hY2hpbmUgZnJhbWUgd2lsbCBiZSBhdCB0aGUg
dG9wIG9mIHRoZSBwcm9jZXNzZWQgc3RhY2sgdHJhY2UuCi0gICAgICAgICAgICBzdG9yZUNhbGxl
ZUludG9MYXN0RnJhbWUodW5wcm9jZXNzZWRTdGFja0ZyYW1lLnVudmVyaWZpZWRDYWxsZWUpOwor
ICAgICAgICAgICAgaWYgKCF1bnByb2Nlc3NlZFN0YWNrRnJhbWUuY0NvZGVQQykKKyAgICAgICAg
ICAgICAgICBzdG9yZUNhbGxlZUludG9MYXN0RnJhbWUodW5wcm9jZXNzZWRTdGFja0ZyYW1lLnVu
dmVyaWZpZWRDYWxsZWUpOwogICAgICAgICB9CiAgICAgfQogCkBAIC02NDQsMTAgKzc0NSwyOCBA
QCBTdHJpbmcgU2FtcGxpbmdQcm9maWxlcjo6U3RhY2tGcmFtZTo6ZGlzcGxheU5hbWUoVk0mIHZt
KQogICAgICAgICAgICAgcmV0dXJuIG5hbWU7CiAgICAgfQogCi0gICAgaWYgKGZyYW1lVHlwZSA9
PSBGcmFtZVR5cGU6OlVua25vd24pCi0gICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoIih1bmtu
b3duKSIpOwotICAgIGlmIChmcmFtZVR5cGUgPT0gRnJhbWVUeXBlOjpIb3N0KQorICAgIGlmIChm
cmFtZVR5cGUgPT0gRnJhbWVUeXBlOjpVbmtub3duIHx8IGZyYW1lVHlwZSA9PSBGcmFtZVR5cGU6
OkMpIHsKKyNpZiBPUyhEQVJXSU4pCisgICAgICAgIGlmIChmcmFtZVR5cGUgPT0gRnJhbWVUeXBl
OjpDKSB7CisgICAgICAgICAgICBjb25zdCBjaGFyKiBtYW5nbGVkTmFtZSA9IG51bGxwdHI7Cisg
ICAgICAgICAgICBjb25zdCBjaGFyKiBjeGFEZW1hbmdsZWQgPSBudWxscHRyOworICAgICAgICAg
ICAgRGxfaW5mbyBpbmZvOworICAgICAgICAgICAgaWYgKGRsYWRkcihjQ29kZVBDLCAmaW5mbykg
JiYgaW5mby5kbGlfc25hbWUpCisgICAgICAgICAgICAgICAgbWFuZ2xlZE5hbWUgPSBpbmZvLmRs
aV9zbmFtZTsKKyAgICAgICAgICAgIGlmIChtYW5nbGVkTmFtZSkgeworICAgICAgICAgICAgICAg
IGN4YURlbWFuZ2xlZCA9IGFiaTo6X19jeGFfZGVtYW5nbGUobWFuZ2xlZE5hbWUsIDAsIDAsIDAp
OworICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoY3hhRGVtYW5nbGVkID8gY3hhRGVtYW5n
bGVkIDogbWFuZ2xlZE5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgV1RGOjpkYXRh
TG9nKCJjb3VsZG4ndCBnZXQgYSBuYW1lIik7CisgICAgICAgIH0KKyNlbmRpZgorICAgICAgICBy
ZXR1cm4gQVNDSUlMaXRlcmFsKCIodW5rbm93bjEyKSIpOworICAgIH0KKyAgICBpZiAoZnJhbWVU
eXBlID09IEZyYW1lVHlwZTo6SG9zdCkgewogICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCIo
aG9zdCkiKTsKKyAgICB9CisKKwogCiAgICAgaWYgKGV4ZWN1dGFibGUtPmlzSG9zdEZ1bmN0aW9u
KCkpCiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxOYXRpdmVFeGVjdXRhYmxlKj4oZXhlY3V0
YWJsZSktPm5hbWUoKTsKQEAgLTY3MSw3ICs3OTAsNyBAQCBTdHJpbmcgU2FtcGxpbmdQcm9maWxl
cjo6U3RhY2tGcmFtZTo6ZGlzcGxheU5hbWVGb3JKU09OVGVzdHMoVk0mIHZtKQogICAgICAgICAg
ICAgcmV0dXJuIG5hbWU7CiAgICAgfQogCi0gICAgaWYgKGZyYW1lVHlwZSA9PSBGcmFtZVR5cGU6
OlVua25vd24pCisgICAgaWYgKGZyYW1lVHlwZSA9PSBGcmFtZVR5cGU6OlVua25vd24gfHwgZnJh
bWVUeXBlID09IEZyYW1lVHlwZTo6QykKICAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiKHVu
a25vd24pIik7CiAgICAgaWYgKGZyYW1lVHlwZSA9PSBGcmFtZVR5cGU6Okhvc3QpCiAgICAgICAg
IHJldHVybiBBU0NJSUxpdGVyYWwoIihob3N0KSIpOwpAQCAtNjk4LDcgKzgxNyw3IEBAIFN0cmlu
ZyBTYW1wbGluZ1Byb2ZpbGVyOjpTdGFja0ZyYW1lOjpkaXNwbGF5TmFtZUZvckpTT05UZXN0cyhW
TSYgdm0pCiAKIGludCBTYW1wbGluZ1Byb2ZpbGVyOjpTdGFja0ZyYW1lOjpmdW5jdGlvblN0YXJ0
TGluZSgpCiB7Ci0gICAgaWYgKGZyYW1lVHlwZSA9PSBGcmFtZVR5cGU6OlVua25vd24gfHwgZnJh
bWVUeXBlID09IEZyYW1lVHlwZTo6SG9zdCkKKyAgICBpZiAoZnJhbWVUeXBlID09IEZyYW1lVHlw
ZTo6VW5rbm93biB8fCBmcmFtZVR5cGUgPT0gRnJhbWVUeXBlOjpIb3N0IHx8IGZyYW1lVHlwZSA9
PSBGcmFtZVR5cGU6OkMpCiAgICAgICAgIHJldHVybiAtMTsKIAogICAgIGlmIChleGVjdXRhYmxl
LT5pc0hvc3RGdW5jdGlvbigpKQpAQCAtNzA4LDcgKzgyNyw3IEBAIGludCBTYW1wbGluZ1Byb2Zp
bGVyOjpTdGFja0ZyYW1lOjpmdW5jdGlvblN0YXJ0TGluZSgpCiAKIHVuc2lnbmVkIFNhbXBsaW5n
UHJvZmlsZXI6OlN0YWNrRnJhbWU6OmZ1bmN0aW9uU3RhcnRDb2x1bW4oKQogewotICAgIGlmIChm
cmFtZVR5cGUgPT0gRnJhbWVUeXBlOjpVbmtub3duIHx8IGZyYW1lVHlwZSA9PSBGcmFtZVR5cGU6
Okhvc3QpCisgICAgaWYgKGZyYW1lVHlwZSA9PSBGcmFtZVR5cGU6OlVua25vd24gfHwgZnJhbWVU
eXBlID09IEZyYW1lVHlwZTo6SG9zdCB8fCBmcmFtZVR5cGUgPT0gRnJhbWVUeXBlOjpDKQogICAg
ICAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpOwogCiAgICAg
aWYgKGV4ZWN1dGFibGUtPmlzSG9zdEZ1bmN0aW9uKCkpCkBAIC03MTksNyArODM4LDcgQEAgdW5z
aWduZWQgU2FtcGxpbmdQcm9maWxlcjo6U3RhY2tGcmFtZTo6ZnVuY3Rpb25TdGFydENvbHVtbigp
CiAKIGludHB0cl90IFNhbXBsaW5nUHJvZmlsZXI6OlN0YWNrRnJhbWU6OnNvdXJjZUlEKCkKIHsK
LSAgICBpZiAoZnJhbWVUeXBlID09IEZyYW1lVHlwZTo6VW5rbm93biB8fCBmcmFtZVR5cGUgPT0g
RnJhbWVUeXBlOjpIb3N0KQorICAgIGlmIChmcmFtZVR5cGUgPT0gRnJhbWVUeXBlOjpVbmtub3du
IHx8IGZyYW1lVHlwZSA9PSBGcmFtZVR5cGU6Okhvc3QgfHwgZnJhbWVUeXBlID09IEZyYW1lVHlw
ZTo6QykKICAgICAgICAgcmV0dXJuIC0xOwogCiAgICAgaWYgKGV4ZWN1dGFibGUtPmlzSG9zdEZ1
bmN0aW9uKCkpCkBAIC03MzAsNyArODQ5LDcgQEAgaW50cHRyX3QgU2FtcGxpbmdQcm9maWxlcjo6
U3RhY2tGcmFtZTo6c291cmNlSUQoKQogCiBTdHJpbmcgU2FtcGxpbmdQcm9maWxlcjo6U3RhY2tG
cmFtZTo6dXJsKCkKIHsKLSAgICBpZiAoZnJhbWVUeXBlID09IEZyYW1lVHlwZTo6VW5rbm93biB8
fCBmcmFtZVR5cGUgPT0gRnJhbWVUeXBlOjpIb3N0KQorICAgIGlmIChmcmFtZVR5cGUgPT0gRnJh
bWVUeXBlOjpVbmtub3duIHx8IGZyYW1lVHlwZSA9PSBGcmFtZVR5cGU6Okhvc3QgfHwgZnJhbWVU
eXBlID09IEZyYW1lVHlwZTo6QykKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAKICAg
ICBpZiAoZXhlY3V0YWJsZS0+aXNIb3N0RnVuY3Rpb24oKSkKQEAgLTk2OCw2ICsxMDg3LDcgQEAg
dm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIFNhbXBsaW5nUHJvZmlsZXI6OkZy
YW1lVHlwZSBmcmFtZVR5cGUpCiAgICAgY2FzZSBTYW1wbGluZ1Byb2ZpbGVyOjpGcmFtZVR5cGU6
Okhvc3Q6CiAgICAgICAgIG91dC5wcmludCgiSG9zdCIpOwogICAgICAgICBicmVhazsKKyAgICBj
YXNlIFNhbXBsaW5nUHJvZmlsZXI6OkZyYW1lVHlwZTo6QzoKICAgICBjYXNlIFNhbXBsaW5nUHJv
ZmlsZXI6OkZyYW1lVHlwZTo6VW5rbm93bjoKICAgICAgICAgb3V0LnByaW50KCJVbmtub3duIik7
CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU2FtcGxpbmdQcm9maWxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2Ft
cGxpbmdQcm9maWxlci5oCmluZGV4IDAyOWNjNzBlYjM1MDBlOWJhZTY2ODMwOTUxNDdlMGY0M2Y3
NTRjY2EuLjg5OWU1NTA4ZWRjMmNjOGI2Mjg0ODUwODlhNTg1OWI4NGRjOTYxN2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmgKQEAgLTUx
LDIxICs1MSwyNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAsIHZlcmlmaWVkQ29kZUJsb2NrKGNv
ZGVCbG9jaykKICAgICAgICAgICAgICwgY2FsbFNpdGVJbmRleChjYWxsU2l0ZUluZGV4KQogICAg
ICAgICB7IH0KKworICAgICAgICBVbnByb2Nlc3NlZFN0YWNrRnJhbWUodm9pZCogcGMpCisgICAg
ICAgICAgICA6IGNDb2RlUEMocGMpCisgICAgICAgIHsgfQorCiAgICAgICAgIFVucHJvY2Vzc2Vk
U3RhY2tGcmFtZSgpCiAgICAgICAgIHsKICAgICAgICAgICAgIHVudmVyaWZpZWRDYWxsZWUgPSBK
U1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsKLSAgICAgICAgICAgIHZlcmlmaWVkQ29kZUJsb2Nr
ID0gbnVsbHB0cjsKICAgICAgICAgfQogCisgICAgICAgIHZvaWQqIGNDb2RlUEMgeyBudWxscHRy
IH07CiAgICAgICAgIEVuY29kZWRKU1ZhbHVlIHVudmVyaWZpZWRDYWxsZWU7Ci0gICAgICAgIENv
ZGVCbG9jayogdmVyaWZpZWRDb2RlQmxvY2s7CisgICAgICAgIENvZGVCbG9jayogdmVyaWZpZWRD
b2RlQmxvY2sgeyBudWxscHRyIH07CiAgICAgICAgIENhbGxTaXRlSW5kZXggY2FsbFNpdGVJbmRl
eDsKICAgICB9OwogCiAgICAgZW51bSBjbGFzcyBGcmFtZVR5cGUgeyAKICAgICAgICAgRXhlY3V0
YWJsZSwKICAgICAgICAgSG9zdCwKLSAgICAgICAgVW5rbm93biAKKyAgICAgICAgQywKKyAgICAg
ICAgVW5rbm93bgogICAgIH07CiAKICAgICBzdHJ1Y3QgU3RhY2tGcmFtZSB7CkBAIC03OCw2ICs4
NCw3IEBAIHB1YmxpYzoKICAgICAgICAgeyB9CiAKICAgICAgICAgRnJhbWVUeXBlIGZyYW1lVHlw
ZSB7IEZyYW1lVHlwZTo6VW5rbm93biB9OworICAgICAgICB2b2lkKiBjQ29kZVBDIHsgbnVsbHB0
ciB9OwogICAgICAgICBFeGVjdXRhYmxlQmFzZSogZXhlY3V0YWJsZSB7IG51bGxwdHIgfTsKICAg
ICAgICAgSlNPYmplY3QqIGNhbGxlZSB7IG51bGxwdHIgfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300364</attachid>
            <date>2017-02-01 16:04:22 -0800</date>
            <delta_ts>2017-02-01 16:06:48 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-167614-20170201160209.patch</filename>
            <type>text/plain</type>
            <size>15542</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExNDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
MmM2OWM3NDlkOTFiNTdkNTdiMmI5NGQzOWFlOWY4YTBmZWM5YTg2Li5jZDRhZjc4YzBhMDBiNzVh
YmNhNzJkYWM5M2E4NDU0MDM4NmY4ZTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAxNy0wMS0zMCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBUaGUgc2FtcGxpbmcgcHJvZmlsZSBzaG91bGQgaGF2ZSBhbiBvcHRp
b24gdG8gc2FtcGxlIGZyb20gQyBmcmFtZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc2MTQKKworICAgICAgICBSZXZpZXdlZCBieSBTYWFtIEJh
cmF0aS4KKworICAgICAgICBXZSBzaG91bGQgYmUgYWJsZSB0byB1c2UgdGhlIHNhbXBsaW5nIHBy
b2ZpbGVyLCBhdCBsZWFzdAorICAgICAgICBpbnRlcm5hbGx5LCB0byB0cmFjZSBDIGNhbGxzLiAg
VGhpcyBwYXRjaCBvbmx5IG1vZGlmaWVzIHRoZSBKU0MKKyAgICAgICAgc2hlbGwgYWx0aG91Z2gg
aXQgd291bGQgYmUgbmljZSB0byBhZGQgaXQgdG8gdGhlIFdlYiBJbnNwZWN0b3IgaW4KKyAgICAg
ICAgYSBmdXR1cmUgcGF0Y2guCisKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuaDoKKyAgICAg
ICAgKiBydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwOgorICAgICAgICAoSlNDOjpGcmFtZVdh
bGtlcjo6RnJhbWVXYWxrZXIpOgorICAgICAgICAoSlNDOjpGcmFtZVdhbGtlcjo6d2Fsayk6Cisg
ICAgICAgIChKU0M6OkZyYW1lV2Fsa2VyOjpyZWNvcmRKU0ZyYW1lKToKKyAgICAgICAgKEpTQzo6
Q0ZyYW1lV2Fsa2VyOjpDRnJhbWVXYWxrZXIpOgorICAgICAgICAoSlNDOjpDRnJhbWVXYWxrZXI6
OndhbGspOgorICAgICAgICAoSlNDOjpDRnJhbWVXYWxrZXI6OmlzQ0ZyYW1lKToKKyAgICAgICAg
KEpTQzo6Q0ZyYW1lV2Fsa2VyOjphZHZhbmNlVG9QYXJlbnRGcmFtZSk6CisgICAgICAgIChKU0M6
OkNGcmFtZVdhbGtlcjo6ZnJhbWUpOgorICAgICAgICAoSlNDOjpTYW1wbGluZ1Byb2ZpbGVyOjp0
YWtlU2FtcGxlKToKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6cHJvY2Vzc1VudmVy
aWZpZWRTdGFja1RyYWNlcyk6CisgICAgICAgIChKU0M6OlNhbXBsaW5nUHJvZmlsZXI6OlN0YWNr
RnJhbWU6OmRpc3BsYXlOYW1lKToKKyAgICAgICAgKiBydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIu
aDoKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6VW5wcm9jZXNzZWRTdGFja0ZyYW1l
OjpVbnByb2Nlc3NlZFN0YWNrRnJhbWUpOgorCiAyMDE3LTAxLTMxICBUb21hcyBQb3BlbGEgIDx0
cG9wZWxhQHJlZGhhdC5jb20+CiAKICAgICAgICAgQ29tcGlsYXRpb24gZXJyb3IgaW4gSlNBcnJh
eUJ1ZmZlclZpZXcuaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T3B0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCmluZGV4
IDdmNTNkYzQ4NGI5ZTUwM2ZlOTMxMjk3MzhkNGYwZTM4YTI5ZjAyYjMuLmE0NmM3ZmE1NjkwODY3
NGI0ZmFhNWZmYTIzMTMzNDNlMTgyNjViODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09wdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PcHRpb25zLmgKQEAgLTM2NCw2ICszNjQsNyBAQCB0eXBlZGVmIGNvbnN0IGNoYXIqIG9wdGlv
blN0cmluZzsKICAgICB2KHVuc2lnbmVkLCBzYW1wbGluZ1Byb2ZpbGVyVG9wRnVuY3Rpb25zQ291
bnQsIDEyLCBOb3JtYWwsICJOdW1iZXIgb2YgdG9wIGZ1bmN0aW9ucyB0byByZXBvcnQgd2hlbiB1
c2luZyB0aGUgY29tbWFuZCBsaW5lIGludGVyZmFjZS4iKSBcCiAgICAgdih1bnNpZ25lZCwgc2Ft
cGxpbmdQcm9maWxlclRvcEJ5dGVjb2Rlc0NvdW50LCA0MCwgTm9ybWFsLCAiTnVtYmVyIG9mIHRv
cCBieXRlY29kZXMgdG8gcmVwb3J0IHdoZW4gdXNpbmcgdGhlIGNvbW1hbmQgbGluZSBpbnRlcmZh
Y2UuIikgXAogICAgIHYob3B0aW9uU3RyaW5nLCBzYW1wbGluZ1Byb2ZpbGVyUGF0aCwgbnVsbHB0
ciwgTm9ybWFsLCAiVGhlIHBhdGggdG8gdGhlIGRpcmVjdG9yeSB0byB3cml0ZSBzYW1waWxpbmcg
cHJvZmlsZXIgb3V0cHV0IHRvLiBUaGlzIHByb2JhYmx5IHdpbGwgbm90IHdvcmsgd2l0aCBXSzIg
dW5sZXNzIHRoZSBwYXRoIGlzIGluIHRoZSB3aGl0ZWxpc3QuIikgXAorICAgIHYoYm9vbCwgc2Ft
cGxlQ0NvZGUsIGZhbHNlLCBOb3JtYWwsICJDYXVzZXMgdGhlIHNhbXBsaW5nIHByb2ZpbGVyIHRv
IHJlY29yZCBwcm9maWxpbmcgZGF0YSBmb3IgQyBmcmFtZXMuIikgXAogICAgIFwKICAgICB2KGJv
b2wsIGFsd2F5c0dlbmVyYXRlUENUb0NvZGVPcmlnaW5NYXAsIGZhbHNlLCBOb3JtYWwsICJUaGlz
IHdpbGwgbWFrZSBzdXJlIHdlIGFsd2F5cyBnZW5lcmF0ZSBhIFBDVG9Db2RlT3JpZ2luTWFwIGZv
ciBKSVRlZCBjb2RlLiIpIFwKICAgICBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCmluZGV4IDJlMDdhMDRkOTk2NWVjZDQxMWNjNWFm
ZTEwYmI5ZmU5Y2U3ZTczOTMuLjFjMjlhYWI5YTNjMjExYjYzNjE5ZjQ0NmIwMDYzYzM5NzVhMTA3
YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJv
ZmlsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJv
ZmlsZXIuY3BwCkBAIC01MSw2ICs1MSwxMSBAQAogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKKyNpZiBPUyhEQVJXSU4pCisjaW5j
bHVkZSA8Y3h4YWJpLmg+CisjaW5jbHVkZSA8ZGxmY24uaD4KKyNlbmRpZgorCiBuYW1lc3BhY2Ug
SlNDIHsKIAogc3RhdGljIGRvdWJsZSBzTnVtVG90YWxTdGFja1RyYWNlcyA9IDA7CkBAIC03Niw3
ICs4MSw3IEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIHZvaWQgcmVwb3J0U3RhdHMoKQogCiBjbGFz
cyBGcmFtZVdhbGtlciB7CiBwdWJsaWM6Ci0gICAgRnJhbWVXYWxrZXIoRXhlY1N0YXRlKiBjYWxs
RnJhbWUsIFZNJiB2bSwgY29uc3QgTG9ja0hvbGRlciYgY29kZUJsb2NrU2V0TG9ja2VyLCBjb25z
dCBMb2NrSG9sZGVyJiBtYWNoaW5lVGhyZWFkc0xvY2tlcikKKyAgICBGcmFtZVdhbGtlcihWTSYg
dm0sIEV4ZWNTdGF0ZSogY2FsbEZyYW1lLCBjb25zdCBMb2NrSG9sZGVyJiBjb2RlQmxvY2tTZXRM
b2NrZXIsIGNvbnN0IExvY2tIb2xkZXImIG1hY2hpbmVUaHJlYWRzTG9ja2VyKQogICAgICAgICA6
IG1fdm0odm0pCiAgICAgICAgICwgbV9jYWxsRnJhbWUoY2FsbEZyYW1lKQogICAgICAgICAsIG1f
dm1FbnRyeUZyYW1lKHZtLnRvcFZNRW50cnlGcmFtZSkKQEAgLTkzLDE1ICs5OCw3IEBAIHB1Ymxp
YzoKICAgICAgICAgcmVzZXRBdE1hY2hpbmVGcmFtZSgpOwogICAgICAgICBzaXplX3QgbWF4U3Rh
Y2tUcmFjZVNpemUgPSBzdGFja1RyYWNlLnNpemUoKTsKICAgICAgICAgd2hpbGUgKCFpc0F0VG9w
KCkgJiYgIW1fYmFpbGluZ091dCAmJiBtX2RlcHRoIDwgbWF4U3RhY2tUcmFjZVNpemUpIHsKLSAg
ICAgICAgICAgIENhbGxTaXRlSW5kZXggY2FsbFNpdGVJbmRleDsKLSAgICAgICAgICAgIEpTVmFs
dWUgdW5zYWZlQ2FsbGVlID0gbV9jYWxsRnJhbWUtPnVuc2FmZUNhbGxlZSgpOwotICAgICAgICAg
ICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBtX2NhbGxGcmFtZS0+dW5zYWZlQ29kZUJsb2NrKCk7
Ci0gICAgICAgICAgICBpZiAoY29kZUJsb2NrKSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKGlz
VmFsaWRDb2RlQmxvY2soY29kZUJsb2NrKSk7Ci0gICAgICAgICAgICAgICAgY2FsbFNpdGVJbmRl
eCA9IG1fY2FsbEZyYW1lLT51bnNhZmVDYWxsU2l0ZUluZGV4KCk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBzdGFja1RyYWNlW21fZGVwdGhdID0gVW5wcm9jZXNzZWRTdGFja0ZyYW1lKGNv
ZGVCbG9jaywgSlNWYWx1ZTo6ZW5jb2RlKHVuc2FmZUNhbGxlZSksIGNhbGxTaXRlSW5kZXgpOwot
ICAgICAgICAgICAgbV9kZXB0aCsrOworICAgICAgICAgICAgcmVjb3JkSlNGcmFtZShzdGFja1Ry
YWNlKTsKICAgICAgICAgICAgIGFkdmFuY2VUb1BhcmVudEZyYW1lKCk7CiAgICAgICAgICAgICBy
ZXNldEF0TWFjaGluZUZyYW1lKCk7CiAgICAgICAgIH0KQEAgLTExNSw3ICsxMTIsMjEgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gIW1fYmFpbGluZ091dDsKICAgICB9CiAKLXByaXZhdGU6Citw
cm90ZWN0ZWQ6CisKKyAgICBTVVBQUkVTU19BU0FOCisgICAgdm9pZCByZWNvcmRKU0ZyYW1lKFZl
Y3RvcjxVbnByb2Nlc3NlZFN0YWNrRnJhbWU+JiBzdGFja1RyYWNlKQorICAgIHsKKyAgICAgICAg
Q2FsbFNpdGVJbmRleCBjYWxsU2l0ZUluZGV4OworICAgICAgICBKU1ZhbHVlIHVuc2FmZUNhbGxl
ZSA9IG1fY2FsbEZyYW1lLT51bnNhZmVDYWxsZWUoKTsKKyAgICAgICAgQ29kZUJsb2NrKiBjb2Rl
QmxvY2sgPSBtX2NhbGxGcmFtZS0+dW5zYWZlQ29kZUJsb2NrKCk7CisgICAgICAgIGlmIChjb2Rl
QmxvY2spIHsKKyAgICAgICAgICAgIEFTU0VSVChpc1ZhbGlkQ29kZUJsb2NrKGNvZGVCbG9jaykp
OworICAgICAgICAgICAgY2FsbFNpdGVJbmRleCA9IG1fY2FsbEZyYW1lLT51bnNhZmVDYWxsU2l0
ZUluZGV4KCk7CisgICAgICAgIH0KKyAgICAgICAgc3RhY2tUcmFjZVttX2RlcHRoXSA9IFVucHJv
Y2Vzc2VkU3RhY2tGcmFtZShjb2RlQmxvY2ssIEpTVmFsdWU6OmVuY29kZSh1bnNhZmVDYWxsZWUp
LCBjYWxsU2l0ZUluZGV4KTsKKyAgICAgICAgbV9kZXB0aCsrOworICAgIH0KIAogICAgIFNVUFBS
RVNTX0FTQU4KICAgICB2b2lkIGFkdmFuY2VUb1BhcmVudEZyYW1lKCkKQEAgLTE1NCw3ICsxNjUs
NyBAQCBwcml2YXRlOgogICAgICAgICB9CiAgICAgfQogCi0gICAgYm9vbCBpc1ZhbGlkRnJhbWVQ
b2ludGVyKEV4ZWNTdGF0ZSogZXhlYykKKyAgICBib29sIGlzVmFsaWRGcmFtZVBvaW50ZXIodm9p
ZCogZXhlYykKICAgICB7CiAgICAgICAgIHVpbnQ4X3QqIGZwQ2FzdCA9IGJpdHdpc2VfY2FzdDx1
aW50OF90Kj4oZXhlYyk7CiAgICAgICAgIGZvciAoTWFjaGluZVRocmVhZHM6OlRocmVhZCogdGhy
ZWFkID0gbV92bS5oZWFwLm1hY2hpbmVUaHJlYWRzKCkudGhyZWFkc0xpc3RIZWFkKG1fbWFjaGlu
ZVRocmVhZHNMb2NrZXIpOyB0aHJlYWQ7IHRocmVhZCA9IHRocmVhZC0+bmV4dCkgewpAQCAtMTg1
LDYgKzE5Niw4NSBAQCBwcml2YXRlOgogICAgIHNpemVfdCBtX2RlcHRoIHsgMCB9OwogfTsKIAor
Y2xhc3MgQ0ZyYW1lV2Fsa2VyIDogcHVibGljIEZyYW1lV2Fsa2VyIHsKK3B1YmxpYzoKKyAgICB0
eXBlZGVmIEZyYW1lV2Fsa2VyIEJhc2U7CisKKyAgICBDRnJhbWVXYWxrZXIoVk0mIHZtLCB2b2lk
KiBtYWNoaW5lRnJhbWUsIEV4ZWNTdGF0ZSogY2FsbEZyYW1lLCBjb25zdCBMb2NrSG9sZGVyJiBj
b2RlQmxvY2tTZXRMb2NrZXIsIGNvbnN0IExvY2tIb2xkZXImIG1hY2hpbmVUaHJlYWRzTG9ja2Vy
KQorICAgICAgICA6IEJhc2Uodm0sIGNhbGxGcmFtZSwgY29kZUJsb2NrU2V0TG9ja2VyLCBtYWNo
aW5lVGhyZWFkc0xvY2tlcikKKyAgICAgICAgLCBtX21hY2hpbmVGcmFtZShtYWNoaW5lRnJhbWUp
CisgICAgeworICAgIH0KKworICAgIHNpemVfdCB3YWxrKFZlY3RvcjxVbnByb2Nlc3NlZFN0YWNr
RnJhbWU+JiBzdGFja1RyYWNlLCBib29sJiBkaWRSdW5PdXRPZlNwYWNlKQorICAgIHsKKyAgICAg
ICAgaWYgKHNSZXBvcnRTdGF0cykKKyAgICAgICAgICAgIHNOdW1Ub3RhbFdhbGtzKys7CisgICAg
ICAgIHJlc2V0QXRNYWNoaW5lRnJhbWUoKTsKKyAgICAgICAgc2l6ZV90IG1heFN0YWNrVHJhY2VT
aXplID0gc3RhY2tUcmFjZS5zaXplKCk7CisgICAgICAgIC8vIFRoZSB3YXkgdGhlIEMgd2Fsa2Vy
IGRlY2lkZXMgaWYgYSBmcmFtZSBpdCBpcyBhYm91dCB0byB0cmFjZSBpcyBDIG9yIEpTIGlzIGJ5
CisgICAgICAgIC8vIGVuc3VyaW5nIG1fY2FsbEZyYW1lIHBvaW50cyB0byBzb21lIGZyYW1lIGFi
b3ZlIHRoZSBtYWNoaW5lRnJhbWUuCisgICAgICAgIGlmICghaXNBdFRvcCgpICYmICFtX2JhaWxp
bmdPdXQgJiYgbV9tYWNoaW5lRnJhbWUgPT0gbV9jYWxsRnJhbWUpIHsKKyAgICAgICAgICAgIHJl
Y29yZEpTRnJhbWUoc3RhY2tUcmFjZSk7CisgICAgICAgICAgICBCYXNlOjphZHZhbmNlVG9QYXJl
bnRGcmFtZSgpOworICAgICAgICAgICAgcmVzZXRBdE1hY2hpbmVGcmFtZSgpOworICAgICAgICB9
CisKKyAgICAgICAgd2hpbGUgKCFpc0F0VG9wKCkgJiYgIW1fYmFpbGluZ091dCAmJiBtX2RlcHRo
IDwgbWF4U3RhY2tUcmFjZVNpemUpIHsKKyAgICAgICAgICAgIGlmIChtX21hY2hpbmVGcmFtZSA+
PSBtX2NhbGxGcmFtZSkgeworICAgICAgICAgICAgICAgIC8vIElmIHdlIGdldCB0byB0aGlzIHN0
YXRlIHdlIHByb2JhYmx5IGhhdmUgYW4gaW52YWxpZCB0cmFjZS4KKyAgICAgICAgICAgICAgICBt
X2JhaWxpbmdPdXQgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBpZiAoaXNDRnJhbWUoKSkgeworICAgICAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUKCFMTEludDo6aXNMTEludFBDKGZyYW1lKCktPmNhbGxlckZyYW1lKSk7CisgICAg
ICAgICAgICAgICAgc3RhY2tUcmFjZVttX2RlcHRoXSA9IFVucHJvY2Vzc2VkU3RhY2tGcmFtZShm
cmFtZSgpLT5wYyk7CisgICAgICAgICAgICAgICAgbV9kZXB0aCsrOworICAgICAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICAgICAgcmVjb3JkSlNGcmFtZShzdGFja1RyYWNlKTsKKyAgICAgICAg
ICAgIGFkdmFuY2VUb1BhcmVudEZyYW1lKCk7CisgICAgICAgICAgICByZXNldEF0TWFjaGluZUZy
YW1lKCk7CisgICAgICAgIH0KKyAgICAgICAgZGlkUnVuT3V0T2ZTcGFjZSA9IG1fZGVwdGggPj0g
bWF4U3RhY2tUcmFjZVNpemUgJiYgIWlzQXRUb3AoKTsKKyAgICAgICAgcmVwb3J0U3RhdHMoKTsK
KyAgICAgICAgcmV0dXJuIG1fZGVwdGg7CisgICAgfQorCitwcml2YXRlOgorCisgICAgYm9vbCBp
c0NGcmFtZSgpCisgICAgeworICAgICAgICByZXR1cm4gZnJhbWUoKS0+Y2FsbGVyRnJhbWUgIT0g
bV9jYWxsRnJhbWU7CisgICAgfQorCisgICAgdm9pZCBhZHZhbmNlVG9QYXJlbnRGcmFtZSgpCisg
ICAgeworICAgICAgICBpZiAoIWlzQ0ZyYW1lKCkpCisgICAgICAgICAgICBCYXNlOjphZHZhbmNl
VG9QYXJlbnRGcmFtZSgpOworICAgICAgICBtX21hY2hpbmVGcmFtZSA9IGZyYW1lKCktPmNhbGxl
ckZyYW1lOworICAgIH0KKworICAgIHZvaWQgcmVzZXRBdE1hY2hpbmVGcmFtZSgpCisgICAgewor
ICAgICAgICBpZiAoIWlzVmFsaWRGcmFtZVBvaW50ZXIobV9tYWNoaW5lRnJhbWUpKSB7CisgICAg
ICAgICAgICAvLyBHdWFyZCBhZ2FpbnN0IHBhdXNpbmcgdGhlIHByb2Nlc3MgYXQgd2VpcmQgcHJv
Z3JhbSBwb2ludHMuCisgICAgICAgICAgICBtX2JhaWxpbmdPdXQgPSB0cnVlOworICAgICAgICAg
ICAgaWYgKHNSZXBvcnRTdGF0cykKKyAgICAgICAgICAgICAgICBzTnVtRmFpbGVkV2Fsa3MrKzsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBCYXNlOjpyZXNldEF0TWFj
aGluZUZyYW1lKCk7CisgICAgfQorCisgICAgQ2FsbGVyRnJhbWVBbmRQQyogZnJhbWUoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Q2FsbGVyRnJhbWVBbmRQQyo+KG1f
bWFjaGluZUZyYW1lKTsKKyAgICB9CisKKyAgICB2b2lkKiBtX21hY2hpbmVGcmFtZTsKK307CisK
IFNhbXBsaW5nUHJvZmlsZXI6OlNhbXBsaW5nUHJvZmlsZXIoVk0mIHZtLCBSZWZQdHI8U3RvcHdh
dGNoPiYmIHN0b3B3YXRjaCkKICAgICA6IG1fdm0odm0pCiAgICAgLCBtX3N0b3B3YXRjaChXVEZN
b3ZlKHN0b3B3YXRjaCkpCkBAIC0yNTgsNiArMzQ4LDcgQEAgdm9pZCBTYW1wbGluZ1Byb2ZpbGVy
Ojp0YWtlU2FtcGxlKGNvbnN0IExvY2tIb2xkZXImLCBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRz
JgogICAgICAgICBpZiAoZGlkU3VzcGVuZCkgewogICAgICAgICAgICAgLy8gV2hpbGUgdGhlIEpT
QyB0aHJlYWQgaXMgc3VzcGVuZGVkLCB3ZSBjYW4ndCBkbyB0aGluZ3MgbGlrZSBtYWxsb2MgYmVj
YXVzZSB0aGUgSlNDIHRocmVhZAogICAgICAgICAgICAgLy8gbWF5IGJlIGhvbGRpbmcgdGhlIG1h
bGxvYyBsb2NrLgorICAgICAgICAgICAgdm9pZCogbWFjaGluZUZyYW1lOwogICAgICAgICAgICAg
RXhlY1N0YXRlKiBjYWxsRnJhbWU7CiAgICAgICAgICAgICB2b2lkKiBtYWNoaW5lUEM7CiAgICAg
ICAgICAgICBib29sIHRvcEZyYW1lSXNMTEludCA9IGZhbHNlOwpAQCAtMjY1LDcgKzM1Niw4IEBA
IHZvaWQgU2FtcGxpbmdQcm9maWxlcjo6dGFrZVNhbXBsZShjb25zdCBMb2NrSG9sZGVyJiwgc3Rk
OjpjaHJvbm86Om1pY3Jvc2Vjb25kcyYKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBN
YWNoaW5lVGhyZWFkczo6VGhyZWFkOjpSZWdpc3RlcnMgcmVnaXN0ZXJzOwogICAgICAgICAgICAg
ICAgIG1fanNjRXhlY3V0aW9uVGhyZWFkLT5nZXRSZWdpc3RlcnMocmVnaXN0ZXJzKTsKLSAgICAg
ICAgICAgICAgICBjYWxsRnJhbWUgPSBzdGF0aWNfY2FzdDxFeGVjU3RhdGUqPihyZWdpc3RlcnMu
ZnJhbWVQb2ludGVyKCkpOworICAgICAgICAgICAgICAgIG1hY2hpbmVGcmFtZSA9IHJlZ2lzdGVy
cy5mcmFtZVBvaW50ZXIoKTsKKyAgICAgICAgICAgICAgICBjYWxsRnJhbWUgPSBzdGF0aWNfY2Fz
dDxFeGVjU3RhdGUqPihtYWNoaW5lRnJhbWUpOwogICAgICAgICAgICAgICAgIG1hY2hpbmVQQyA9
IHJlZ2lzdGVycy5pbnN0cnVjdGlvblBvaW50ZXIoKTsKICAgICAgICAgICAgICAgICBsbGludFBD
ID0gcmVnaXN0ZXJzLmxsaW50UEMoKTsKICAgICAgICAgICAgICAgICBtX2pzY0V4ZWN1dGlvblRo
cmVhZC0+ZnJlZVJlZ2lzdGVycyhyZWdpc3RlcnMpOwpAQCAtMjkxLDggKzM4MywxMiBAQCB2b2lk
IFNhbXBsaW5nUHJvZmlsZXI6OnRha2VTYW1wbGUoY29uc3QgTG9ja0hvbGRlciYsIHN0ZDo6Y2hy
b25vOjptaWNyb3NlY29uZHMmCiAgICAgICAgICAgICBzaXplX3Qgd2Fsa1NpemU7CiAgICAgICAg
ICAgICBib29sIHdhc1ZhbGlkV2FsazsKICAgICAgICAgICAgIGJvb2wgZGlkUnVuT3V0T2ZWZWN0
b3JTcGFjZTsKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBGcmFtZVdhbGtlciB3YWxr
ZXIoY2FsbEZyYW1lLCBtX3ZtLCBjb2RlQmxvY2tTZXRMb2NrZXIsIG1hY2hpbmVUaHJlYWRzTG9j
a2VyKTsKKyAgICAgICAgICAgIGlmIChPcHRpb25zOjpzYW1wbGVDQ29kZSgpKSB7CisgICAgICAg
ICAgICAgICAgQ0ZyYW1lV2Fsa2VyIHdhbGtlcihtX3ZtLCBtYWNoaW5lRnJhbWUsIGNhbGxGcmFt
ZSwgY29kZUJsb2NrU2V0TG9ja2VyLCBtYWNoaW5lVGhyZWFkc0xvY2tlcik7CisgICAgICAgICAg
ICAgICAgd2Fsa1NpemUgPSB3YWxrZXIud2FsayhtX2N1cnJlbnRGcmFtZXMsIGRpZFJ1bk91dE9m
VmVjdG9yU3BhY2UpOworICAgICAgICAgICAgICAgIHdhc1ZhbGlkV2FsayA9IHdhbGtlci53YXNW
YWxpZFdhbGsoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgRnJhbWVX
YWxrZXIgd2Fsa2VyKG1fdm0sIGNhbGxGcmFtZSwgY29kZUJsb2NrU2V0TG9ja2VyLCBtYWNoaW5l
VGhyZWFkc0xvY2tlcik7CiAgICAgICAgICAgICAgICAgd2Fsa1NpemUgPSB3YWxrZXIud2Fsayht
X2N1cnJlbnRGcmFtZXMsIGRpZFJ1bk91dE9mVmVjdG9yU3BhY2UpOwogICAgICAgICAgICAgICAg
IHdhc1ZhbGlkV2FsayA9IHdhbGtlci53YXNWYWxpZFdhbGsoKTsKICAgICAgICAgICAgIH0KQEAg
LTUyNywxMiArNjIzLDE3IEBAIHZvaWQgU2FtcGxpbmdQcm9maWxlcjo6cHJvY2Vzc1VudmVyaWZp
ZWRTdGFja1RyYWNlcygpCiAjZWxzZQogICAgICAgICAgICAgICAgIGFwcGVuZENvZGVCbG9ja05v
SW5saW5pbmcoKTsKICNlbmRpZgorICAgICAgICAgICAgfSBlbHNlIGlmICh1bnByb2Nlc3NlZFN0
YWNrRnJhbWUuY0NvZGVQQykgeworICAgICAgICAgICAgICAgIGFwcGVuZEVtcHR5RnJhbWUoKTsK
KyAgICAgICAgICAgICAgICBzdGFja1RyYWNlLmZyYW1lcy5sYXN0KCkuY0NvZGVQQyA9IHVucHJv
Y2Vzc2VkU3RhY2tGcmFtZS5jQ29kZVBDOworICAgICAgICAgICAgICAgIHN0YWNrVHJhY2UuZnJh
bWVzLmxhc3QoKS5mcmFtZVR5cGUgPSBGcmFtZVR5cGU6OkM7CiAgICAgICAgICAgICB9IGVsc2UK
ICAgICAgICAgICAgICAgICBhcHBlbmRFbXB0eUZyYW1lKCk7CiAKICAgICAgICAgICAgIC8vIE5v
dGUgdGhhdCB0aGlzIGlzIG9rYXkgdG8gZG8gaWYgd2Ugd2Fsa2VkIHRoZSBpbmxpbmUgc3RhY2sg
YmVjYXVzZQogICAgICAgICAgICAgLy8gdGhlIG1hY2hpbmUgZnJhbWUgd2lsbCBiZSBhdCB0aGUg
dG9wIG9mIHRoZSBwcm9jZXNzZWQgc3RhY2sgdHJhY2UuCi0gICAgICAgICAgICBzdG9yZUNhbGxl
ZUludG9MYXN0RnJhbWUodW5wcm9jZXNzZWRTdGFja0ZyYW1lLnVudmVyaWZpZWRDYWxsZWUpOwor
ICAgICAgICAgICAgaWYgKCF1bnByb2Nlc3NlZFN0YWNrRnJhbWUuY0NvZGVQQykKKyAgICAgICAg
ICAgICAgICBzdG9yZUNhbGxlZUludG9MYXN0RnJhbWUodW5wcm9jZXNzZWRTdGFja0ZyYW1lLnVu
dmVyaWZpZWRDYWxsZWUpOwogICAgICAgICB9CiAgICAgfQogCkBAIC02NDQsMTAgKzc0NSwyOCBA
QCBTdHJpbmcgU2FtcGxpbmdQcm9maWxlcjo6U3RhY2tGcmFtZTo6ZGlzcGxheU5hbWUoVk0mIHZt
KQogICAgICAgICAgICAgcmV0dXJuIG5hbWU7CiAgICAgfQogCi0gICAgaWYgKGZyYW1lVHlwZSA9
PSBGcmFtZVR5cGU6OlVua25vd24pCi0gICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoIih1bmtu
b3duKSIpOwotICAgIGlmIChmcmFtZVR5cGUgPT0gRnJhbWVUeXBlOjpIb3N0KQorICAgIGlmIChm
cmFtZVR5cGUgPT0gRnJhbWVUeXBlOjpVbmtub3duIHx8IGZyYW1lVHlwZSA9PSBGcmFtZVR5cGU6
OkMpIHsKKyNpZiBPUyhEQVJXSU4pCisgICAgICAgIGlmIChmcmFtZVR5cGUgPT0gRnJhbWVUeXBl
OjpDKSB7CisgICAgICAgICAgICBjb25zdCBjaGFyKiBtYW5nbGVkTmFtZSA9IG51bGxwdHI7Cisg
ICAgICAgICAgICBjb25zdCBjaGFyKiBjeGFEZW1hbmdsZWQgPSBudWxscHRyOworICAgICAgICAg
ICAgRGxfaW5mbyBpbmZvOworICAgICAgICAgICAgaWYgKGRsYWRkcihjQ29kZVBDLCAmaW5mbykg
JiYgaW5mby5kbGlfc25hbWUpCisgICAgICAgICAgICAgICAgbWFuZ2xlZE5hbWUgPSBpbmZvLmRs
aV9zbmFtZTsKKyAgICAgICAgICAgIGlmIChtYW5nbGVkTmFtZSkgeworICAgICAgICAgICAgICAg
IGN4YURlbWFuZ2xlZCA9IGFiaTo6X19jeGFfZGVtYW5nbGUobWFuZ2xlZE5hbWUsIDAsIDAsIDAp
OworICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoY3hhRGVtYW5nbGVkID8gY3hhRGVtYW5n
bGVkIDogbWFuZ2xlZE5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgV1RGOjpkYXRh
TG9nKCJjb3VsZG4ndCBnZXQgYSBuYW1lIik7CisgICAgICAgIH0KKyNlbmRpZgorICAgICAgICBy
ZXR1cm4gQVNDSUlMaXRlcmFsKCIodW5rbm93bjEyKSIpOworICAgIH0KKyAgICBpZiAoZnJhbWVU
eXBlID09IEZyYW1lVHlwZTo6SG9zdCkgewogICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCIo
aG9zdCkiKTsKKyAgICB9CisKKwogCiAgICAgaWYgKGV4ZWN1dGFibGUtPmlzSG9zdEZ1bmN0aW9u
KCkpCiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxOYXRpdmVFeGVjdXRhYmxlKj4oZXhlY3V0
YWJsZSktPm5hbWUoKTsKQEAgLTY3MSw3ICs3OTAsNyBAQCBTdHJpbmcgU2FtcGxpbmdQcm9maWxl
cjo6U3RhY2tGcmFtZTo6ZGlzcGxheU5hbWVGb3JKU09OVGVzdHMoVk0mIHZtKQogICAgICAgICAg
ICAgcmV0dXJuIG5hbWU7CiAgICAgfQogCi0gICAgaWYgKGZyYW1lVHlwZSA9PSBGcmFtZVR5cGU6
OlVua25vd24pCisgICAgaWYgKGZyYW1lVHlwZSA9PSBGcmFtZVR5cGU6OlVua25vd24gfHwgZnJh
bWVUeXBlID09IEZyYW1lVHlwZTo6QykKICAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiKHVu
a25vd24pIik7CiAgICAgaWYgKGZyYW1lVHlwZSA9PSBGcmFtZVR5cGU6Okhvc3QpCiAgICAgICAg
IHJldHVybiBBU0NJSUxpdGVyYWwoIihob3N0KSIpOwpAQCAtNjk4LDcgKzgxNyw3IEBAIFN0cmlu
ZyBTYW1wbGluZ1Byb2ZpbGVyOjpTdGFja0ZyYW1lOjpkaXNwbGF5TmFtZUZvckpTT05UZXN0cyhW
TSYgdm0pCiAKIGludCBTYW1wbGluZ1Byb2ZpbGVyOjpTdGFja0ZyYW1lOjpmdW5jdGlvblN0YXJ0
TGluZSgpCiB7Ci0gICAgaWYgKGZyYW1lVHlwZSA9PSBGcmFtZVR5cGU6OlVua25vd24gfHwgZnJh
bWVUeXBlID09IEZyYW1lVHlwZTo6SG9zdCkKKyAgICBpZiAoZnJhbWVUeXBlID09IEZyYW1lVHlw
ZTo6VW5rbm93biB8fCBmcmFtZVR5cGUgPT0gRnJhbWVUeXBlOjpIb3N0IHx8IGZyYW1lVHlwZSA9
PSBGcmFtZVR5cGU6OkMpCiAgICAgICAgIHJldHVybiAtMTsKIAogICAgIGlmIChleGVjdXRhYmxl
LT5pc0hvc3RGdW5jdGlvbigpKQpAQCAtNzA4LDcgKzgyNyw3IEBAIGludCBTYW1wbGluZ1Byb2Zp
bGVyOjpTdGFja0ZyYW1lOjpmdW5jdGlvblN0YXJ0TGluZSgpCiAKIHVuc2lnbmVkIFNhbXBsaW5n
UHJvZmlsZXI6OlN0YWNrRnJhbWU6OmZ1bmN0aW9uU3RhcnRDb2x1bW4oKQogewotICAgIGlmIChm
cmFtZVR5cGUgPT0gRnJhbWVUeXBlOjpVbmtub3duIHx8IGZyYW1lVHlwZSA9PSBGcmFtZVR5cGU6
Okhvc3QpCisgICAgaWYgKGZyYW1lVHlwZSA9PSBGcmFtZVR5cGU6OlVua25vd24gfHwgZnJhbWVU
eXBlID09IEZyYW1lVHlwZTo6SG9zdCB8fCBmcmFtZVR5cGUgPT0gRnJhbWVUeXBlOjpDKQogICAg
ICAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpOwogCiAgICAg
aWYgKGV4ZWN1dGFibGUtPmlzSG9zdEZ1bmN0aW9uKCkpCkBAIC03MTksNyArODM4LDcgQEAgdW5z
aWduZWQgU2FtcGxpbmdQcm9maWxlcjo6U3RhY2tGcmFtZTo6ZnVuY3Rpb25TdGFydENvbHVtbigp
CiAKIGludHB0cl90IFNhbXBsaW5nUHJvZmlsZXI6OlN0YWNrRnJhbWU6OnNvdXJjZUlEKCkKIHsK
LSAgICBpZiAoZnJhbWVUeXBlID09IEZyYW1lVHlwZTo6VW5rbm93biB8fCBmcmFtZVR5cGUgPT0g
RnJhbWVUeXBlOjpIb3N0KQorICAgIGlmIChmcmFtZVR5cGUgPT0gRnJhbWVUeXBlOjpVbmtub3du
IHx8IGZyYW1lVHlwZSA9PSBGcmFtZVR5cGU6Okhvc3QgfHwgZnJhbWVUeXBlID09IEZyYW1lVHlw
ZTo6QykKICAgICAgICAgcmV0dXJuIC0xOwogCiAgICAgaWYgKGV4ZWN1dGFibGUtPmlzSG9zdEZ1
bmN0aW9uKCkpCkBAIC03MzAsNyArODQ5LDcgQEAgaW50cHRyX3QgU2FtcGxpbmdQcm9maWxlcjo6
U3RhY2tGcmFtZTo6c291cmNlSUQoKQogCiBTdHJpbmcgU2FtcGxpbmdQcm9maWxlcjo6U3RhY2tG
cmFtZTo6dXJsKCkKIHsKLSAgICBpZiAoZnJhbWVUeXBlID09IEZyYW1lVHlwZTo6VW5rbm93biB8
fCBmcmFtZVR5cGUgPT0gRnJhbWVUeXBlOjpIb3N0KQorICAgIGlmIChmcmFtZVR5cGUgPT0gRnJh
bWVUeXBlOjpVbmtub3duIHx8IGZyYW1lVHlwZSA9PSBGcmFtZVR5cGU6Okhvc3QgfHwgZnJhbWVU
eXBlID09IEZyYW1lVHlwZTo6QykKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAKICAg
ICBpZiAoZXhlY3V0YWJsZS0+aXNIb3N0RnVuY3Rpb24oKSkKQEAgLTk2OCw2ICsxMDg3LDcgQEAg
dm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIFNhbXBsaW5nUHJvZmlsZXI6OkZy
YW1lVHlwZSBmcmFtZVR5cGUpCiAgICAgY2FzZSBTYW1wbGluZ1Byb2ZpbGVyOjpGcmFtZVR5cGU6
Okhvc3Q6CiAgICAgICAgIG91dC5wcmludCgiSG9zdCIpOwogICAgICAgICBicmVhazsKKyAgICBj
YXNlIFNhbXBsaW5nUHJvZmlsZXI6OkZyYW1lVHlwZTo6QzoKICAgICBjYXNlIFNhbXBsaW5nUHJv
ZmlsZXI6OkZyYW1lVHlwZTo6VW5rbm93bjoKICAgICAgICAgb3V0LnByaW50KCJVbmtub3duIik7
CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU2FtcGxpbmdQcm9maWxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2Ft
cGxpbmdQcm9maWxlci5oCmluZGV4IDAyOWNjNzBlYjM1MDBlOWJhZTY2ODMwOTUxNDdlMGY0M2Y3
NTRjY2EuLjg5OWU1NTA4ZWRjMmNjOGI2Mjg0ODUwODlhNTg1OWI4NGRjOTYxN2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmgKQEAgLTUx
LDIxICs1MSwyNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAsIHZlcmlmaWVkQ29kZUJsb2NrKGNv
ZGVCbG9jaykKICAgICAgICAgICAgICwgY2FsbFNpdGVJbmRleChjYWxsU2l0ZUluZGV4KQogICAg
ICAgICB7IH0KKworICAgICAgICBVbnByb2Nlc3NlZFN0YWNrRnJhbWUodm9pZCogcGMpCisgICAg
ICAgICAgICA6IGNDb2RlUEMocGMpCisgICAgICAgIHsgfQorCiAgICAgICAgIFVucHJvY2Vzc2Vk
U3RhY2tGcmFtZSgpCiAgICAgICAgIHsKICAgICAgICAgICAgIHVudmVyaWZpZWRDYWxsZWUgPSBK
U1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsKLSAgICAgICAgICAgIHZlcmlmaWVkQ29kZUJsb2Nr
ID0gbnVsbHB0cjsKICAgICAgICAgfQogCisgICAgICAgIHZvaWQqIGNDb2RlUEMgeyBudWxscHRy
IH07CiAgICAgICAgIEVuY29kZWRKU1ZhbHVlIHVudmVyaWZpZWRDYWxsZWU7Ci0gICAgICAgIENv
ZGVCbG9jayogdmVyaWZpZWRDb2RlQmxvY2s7CisgICAgICAgIENvZGVCbG9jayogdmVyaWZpZWRD
b2RlQmxvY2sgeyBudWxscHRyIH07CiAgICAgICAgIENhbGxTaXRlSW5kZXggY2FsbFNpdGVJbmRl
eDsKICAgICB9OwogCiAgICAgZW51bSBjbGFzcyBGcmFtZVR5cGUgeyAKICAgICAgICAgRXhlY3V0
YWJsZSwKICAgICAgICAgSG9zdCwKLSAgICAgICAgVW5rbm93biAKKyAgICAgICAgQywKKyAgICAg
ICAgVW5rbm93bgogICAgIH07CiAKICAgICBzdHJ1Y3QgU3RhY2tGcmFtZSB7CkBAIC03OCw2ICs4
NCw3IEBAIHB1YmxpYzoKICAgICAgICAgeyB9CiAKICAgICAgICAgRnJhbWVUeXBlIGZyYW1lVHlw
ZSB7IEZyYW1lVHlwZTo6VW5rbm93biB9OworICAgICAgICB2b2lkKiBjQ29kZVBDIHsgbnVsbHB0
ciB9OwogICAgICAgICBFeGVjdXRhYmxlQmFzZSogZXhlY3V0YWJsZSB7IG51bGxwdHIgfTsKICAg
ICAgICAgSlNPYmplY3QqIGNhbGxlZSB7IG51bGxwdHIgfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300365</attachid>
            <date>2017-02-01 16:06:52 -0800</date>
            <delta_ts>2017-02-01 17:25:03 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-167614-20170201160438.patch</filename>
            <type>text/plain</type>
            <size>15382</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExNDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
MmM2OWM3NDlkOTFiNTdkNTdiMmI5NGQzOWFlOWY4YTBmZWM5YTg2Li5jZDRhZjc4YzBhMDBiNzVh
YmNhNzJkYWM5M2E4NDU0MDM4NmY4ZTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAxNy0wMS0zMCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBUaGUgc2FtcGxpbmcgcHJvZmlsZSBzaG91bGQgaGF2ZSBhbiBvcHRp
b24gdG8gc2FtcGxlIGZyb20gQyBmcmFtZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc2MTQKKworICAgICAgICBSZXZpZXdlZCBieSBTYWFtIEJh
cmF0aS4KKworICAgICAgICBXZSBzaG91bGQgYmUgYWJsZSB0byB1c2UgdGhlIHNhbXBsaW5nIHBy
b2ZpbGVyLCBhdCBsZWFzdAorICAgICAgICBpbnRlcm5hbGx5LCB0byB0cmFjZSBDIGNhbGxzLiAg
VGhpcyBwYXRjaCBvbmx5IG1vZGlmaWVzIHRoZSBKU0MKKyAgICAgICAgc2hlbGwgYWx0aG91Z2gg
aXQgd291bGQgYmUgbmljZSB0byBhZGQgaXQgdG8gdGhlIFdlYiBJbnNwZWN0b3IgaW4KKyAgICAg
ICAgYSBmdXR1cmUgcGF0Y2guCisKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuaDoKKyAgICAg
ICAgKiBydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwOgorICAgICAgICAoSlNDOjpGcmFtZVdh
bGtlcjo6RnJhbWVXYWxrZXIpOgorICAgICAgICAoSlNDOjpGcmFtZVdhbGtlcjo6d2Fsayk6Cisg
ICAgICAgIChKU0M6OkZyYW1lV2Fsa2VyOjpyZWNvcmRKU0ZyYW1lKToKKyAgICAgICAgKEpTQzo6
Q0ZyYW1lV2Fsa2VyOjpDRnJhbWVXYWxrZXIpOgorICAgICAgICAoSlNDOjpDRnJhbWVXYWxrZXI6
OndhbGspOgorICAgICAgICAoSlNDOjpDRnJhbWVXYWxrZXI6OmlzQ0ZyYW1lKToKKyAgICAgICAg
KEpTQzo6Q0ZyYW1lV2Fsa2VyOjphZHZhbmNlVG9QYXJlbnRGcmFtZSk6CisgICAgICAgIChKU0M6
OkNGcmFtZVdhbGtlcjo6ZnJhbWUpOgorICAgICAgICAoSlNDOjpTYW1wbGluZ1Byb2ZpbGVyOjp0
YWtlU2FtcGxlKToKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6cHJvY2Vzc1VudmVy
aWZpZWRTdGFja1RyYWNlcyk6CisgICAgICAgIChKU0M6OlNhbXBsaW5nUHJvZmlsZXI6OlN0YWNr
RnJhbWU6OmRpc3BsYXlOYW1lKToKKyAgICAgICAgKiBydW50aW1lL1NhbXBsaW5nUHJvZmlsZXIu
aDoKKyAgICAgICAgKEpTQzo6U2FtcGxpbmdQcm9maWxlcjo6VW5wcm9jZXNzZWRTdGFja0ZyYW1l
OjpVbnByb2Nlc3NlZFN0YWNrRnJhbWUpOgorCiAyMDE3LTAxLTMxICBUb21hcyBQb3BlbGEgIDx0
cG9wZWxhQHJlZGhhdC5jb20+CiAKICAgICAgICAgQ29tcGlsYXRpb24gZXJyb3IgaW4gSlNBcnJh
eUJ1ZmZlclZpZXcuaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T3B0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCmluZGV4
IDdmNTNkYzQ4NGI5ZTUwM2ZlOTMxMjk3MzhkNGYwZTM4YTI5ZjAyYjMuLmE0NmM3ZmE1NjkwODY3
NGI0ZmFhNWZmYTIzMTMzNDNlMTgyNjViODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09wdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PcHRpb25zLmgKQEAgLTM2NCw2ICszNjQsNyBAQCB0eXBlZGVmIGNvbnN0IGNoYXIqIG9wdGlv
blN0cmluZzsKICAgICB2KHVuc2lnbmVkLCBzYW1wbGluZ1Byb2ZpbGVyVG9wRnVuY3Rpb25zQ291
bnQsIDEyLCBOb3JtYWwsICJOdW1iZXIgb2YgdG9wIGZ1bmN0aW9ucyB0byByZXBvcnQgd2hlbiB1
c2luZyB0aGUgY29tbWFuZCBsaW5lIGludGVyZmFjZS4iKSBcCiAgICAgdih1bnNpZ25lZCwgc2Ft
cGxpbmdQcm9maWxlclRvcEJ5dGVjb2Rlc0NvdW50LCA0MCwgTm9ybWFsLCAiTnVtYmVyIG9mIHRv
cCBieXRlY29kZXMgdG8gcmVwb3J0IHdoZW4gdXNpbmcgdGhlIGNvbW1hbmQgbGluZSBpbnRlcmZh
Y2UuIikgXAogICAgIHYob3B0aW9uU3RyaW5nLCBzYW1wbGluZ1Byb2ZpbGVyUGF0aCwgbnVsbHB0
ciwgTm9ybWFsLCAiVGhlIHBhdGggdG8gdGhlIGRpcmVjdG9yeSB0byB3cml0ZSBzYW1waWxpbmcg
cHJvZmlsZXIgb3V0cHV0IHRvLiBUaGlzIHByb2JhYmx5IHdpbGwgbm90IHdvcmsgd2l0aCBXSzIg
dW5sZXNzIHRoZSBwYXRoIGlzIGluIHRoZSB3aGl0ZWxpc3QuIikgXAorICAgIHYoYm9vbCwgc2Ft
cGxlQ0NvZGUsIGZhbHNlLCBOb3JtYWwsICJDYXVzZXMgdGhlIHNhbXBsaW5nIHByb2ZpbGVyIHRv
IHJlY29yZCBwcm9maWxpbmcgZGF0YSBmb3IgQyBmcmFtZXMuIikgXAogICAgIFwKICAgICB2KGJv
b2wsIGFsd2F5c0dlbmVyYXRlUENUb0NvZGVPcmlnaW5NYXAsIGZhbHNlLCBOb3JtYWwsICJUaGlz
IHdpbGwgbWFrZSBzdXJlIHdlIGFsd2F5cyBnZW5lcmF0ZSBhIFBDVG9Db2RlT3JpZ2luTWFwIGZv
ciBKSVRlZCBjb2RlLiIpIFwKICAgICBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NhbXBsaW5nUHJvZmlsZXIuY3BwCmluZGV4IDJlMDdhMDRkOTk2NWVjZDQxMWNjNWFm
ZTEwYmI5ZmU5Y2U3ZTczOTMuLjQxMWI3NmQ0OGRmMDEwNTExYWFlNDg1OGJkNGFlN2RjN2ExNTE0
M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJv
ZmlsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJv
ZmlsZXIuY3BwCkBAIC01MSw2ICs1MSwxMSBAQAogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKKyNpZiBPUyhEQVJXSU4pCisjaW5j
bHVkZSA8Y3h4YWJpLmg+CisjaW5jbHVkZSA8ZGxmY24uaD4KKyNlbmRpZgorCiBuYW1lc3BhY2Ug
SlNDIHsKIAogc3RhdGljIGRvdWJsZSBzTnVtVG90YWxTdGFja1RyYWNlcyA9IDA7CkBAIC03Niw3
ICs4MSw3IEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIHZvaWQgcmVwb3J0U3RhdHMoKQogCiBjbGFz
cyBGcmFtZVdhbGtlciB7CiBwdWJsaWM6Ci0gICAgRnJhbWVXYWxrZXIoRXhlY1N0YXRlKiBjYWxs
RnJhbWUsIFZNJiB2bSwgY29uc3QgTG9ja0hvbGRlciYgY29kZUJsb2NrU2V0TG9ja2VyLCBjb25z
dCBMb2NrSG9sZGVyJiBtYWNoaW5lVGhyZWFkc0xvY2tlcikKKyAgICBGcmFtZVdhbGtlcihWTSYg
dm0sIEV4ZWNTdGF0ZSogY2FsbEZyYW1lLCBjb25zdCBMb2NrSG9sZGVyJiBjb2RlQmxvY2tTZXRM
b2NrZXIsIGNvbnN0IExvY2tIb2xkZXImIG1hY2hpbmVUaHJlYWRzTG9ja2VyKQogICAgICAgICA6
IG1fdm0odm0pCiAgICAgICAgICwgbV9jYWxsRnJhbWUoY2FsbEZyYW1lKQogICAgICAgICAsIG1f
dm1FbnRyeUZyYW1lKHZtLnRvcFZNRW50cnlGcmFtZSkKQEAgLTkzLDE1ICs5OCw3IEBAIHB1Ymxp
YzoKICAgICAgICAgcmVzZXRBdE1hY2hpbmVGcmFtZSgpOwogICAgICAgICBzaXplX3QgbWF4U3Rh
Y2tUcmFjZVNpemUgPSBzdGFja1RyYWNlLnNpemUoKTsKICAgICAgICAgd2hpbGUgKCFpc0F0VG9w
KCkgJiYgIW1fYmFpbGluZ091dCAmJiBtX2RlcHRoIDwgbWF4U3RhY2tUcmFjZVNpemUpIHsKLSAg
ICAgICAgICAgIENhbGxTaXRlSW5kZXggY2FsbFNpdGVJbmRleDsKLSAgICAgICAgICAgIEpTVmFs
dWUgdW5zYWZlQ2FsbGVlID0gbV9jYWxsRnJhbWUtPnVuc2FmZUNhbGxlZSgpOwotICAgICAgICAg
ICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBtX2NhbGxGcmFtZS0+dW5zYWZlQ29kZUJsb2NrKCk7
Ci0gICAgICAgICAgICBpZiAoY29kZUJsb2NrKSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKGlz
VmFsaWRDb2RlQmxvY2soY29kZUJsb2NrKSk7Ci0gICAgICAgICAgICAgICAgY2FsbFNpdGVJbmRl
eCA9IG1fY2FsbEZyYW1lLT51bnNhZmVDYWxsU2l0ZUluZGV4KCk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBzdGFja1RyYWNlW21fZGVwdGhdID0gVW5wcm9jZXNzZWRTdGFja0ZyYW1lKGNv
ZGVCbG9jaywgSlNWYWx1ZTo6ZW5jb2RlKHVuc2FmZUNhbGxlZSksIGNhbGxTaXRlSW5kZXgpOwot
ICAgICAgICAgICAgbV9kZXB0aCsrOworICAgICAgICAgICAgcmVjb3JkSlNGcmFtZShzdGFja1Ry
YWNlKTsKICAgICAgICAgICAgIGFkdmFuY2VUb1BhcmVudEZyYW1lKCk7CiAgICAgICAgICAgICBy
ZXNldEF0TWFjaGluZUZyYW1lKCk7CiAgICAgICAgIH0KQEAgLTExNSw3ICsxMTIsMjEgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gIW1fYmFpbGluZ091dDsKICAgICB9CiAKLXByaXZhdGU6Citw
cm90ZWN0ZWQ6CisKKyAgICBTVVBQUkVTU19BU0FOCisgICAgdm9pZCByZWNvcmRKU0ZyYW1lKFZl
Y3RvcjxVbnByb2Nlc3NlZFN0YWNrRnJhbWU+JiBzdGFja1RyYWNlKQorICAgIHsKKyAgICAgICAg
Q2FsbFNpdGVJbmRleCBjYWxsU2l0ZUluZGV4OworICAgICAgICBKU1ZhbHVlIHVuc2FmZUNhbGxl
ZSA9IG1fY2FsbEZyYW1lLT51bnNhZmVDYWxsZWUoKTsKKyAgICAgICAgQ29kZUJsb2NrKiBjb2Rl
QmxvY2sgPSBtX2NhbGxGcmFtZS0+dW5zYWZlQ29kZUJsb2NrKCk7CisgICAgICAgIGlmIChjb2Rl
QmxvY2spIHsKKyAgICAgICAgICAgIEFTU0VSVChpc1ZhbGlkQ29kZUJsb2NrKGNvZGVCbG9jaykp
OworICAgICAgICAgICAgY2FsbFNpdGVJbmRleCA9IG1fY2FsbEZyYW1lLT51bnNhZmVDYWxsU2l0
ZUluZGV4KCk7CisgICAgICAgIH0KKyAgICAgICAgc3RhY2tUcmFjZVttX2RlcHRoXSA9IFVucHJv
Y2Vzc2VkU3RhY2tGcmFtZShjb2RlQmxvY2ssIEpTVmFsdWU6OmVuY29kZSh1bnNhZmVDYWxsZWUp
LCBjYWxsU2l0ZUluZGV4KTsKKyAgICAgICAgbV9kZXB0aCsrOworICAgIH0KIAogICAgIFNVUFBS
RVNTX0FTQU4KICAgICB2b2lkIGFkdmFuY2VUb1BhcmVudEZyYW1lKCkKQEAgLTE1NCw3ICsxNjUs
NyBAQCBwcml2YXRlOgogICAgICAgICB9CiAgICAgfQogCi0gICAgYm9vbCBpc1ZhbGlkRnJhbWVQ
b2ludGVyKEV4ZWNTdGF0ZSogZXhlYykKKyAgICBib29sIGlzVmFsaWRGcmFtZVBvaW50ZXIodm9p
ZCogZXhlYykKICAgICB7CiAgICAgICAgIHVpbnQ4X3QqIGZwQ2FzdCA9IGJpdHdpc2VfY2FzdDx1
aW50OF90Kj4oZXhlYyk7CiAgICAgICAgIGZvciAoTWFjaGluZVRocmVhZHM6OlRocmVhZCogdGhy
ZWFkID0gbV92bS5oZWFwLm1hY2hpbmVUaHJlYWRzKCkudGhyZWFkc0xpc3RIZWFkKG1fbWFjaGlu
ZVRocmVhZHNMb2NrZXIpOyB0aHJlYWQ7IHRocmVhZCA9IHRocmVhZC0+bmV4dCkgewpAQCAtMTg1
LDYgKzE5Niw4NSBAQCBwcml2YXRlOgogICAgIHNpemVfdCBtX2RlcHRoIHsgMCB9OwogfTsKIAor
Y2xhc3MgQ0ZyYW1lV2Fsa2VyIDogcHVibGljIEZyYW1lV2Fsa2VyIHsKK3B1YmxpYzoKKyAgICB0
eXBlZGVmIEZyYW1lV2Fsa2VyIEJhc2U7CisKKyAgICBDRnJhbWVXYWxrZXIoVk0mIHZtLCB2b2lk
KiBtYWNoaW5lRnJhbWUsIEV4ZWNTdGF0ZSogY2FsbEZyYW1lLCBjb25zdCBMb2NrSG9sZGVyJiBj
b2RlQmxvY2tTZXRMb2NrZXIsIGNvbnN0IExvY2tIb2xkZXImIG1hY2hpbmVUaHJlYWRzTG9ja2Vy
KQorICAgICAgICA6IEJhc2Uodm0sIGNhbGxGcmFtZSwgY29kZUJsb2NrU2V0TG9ja2VyLCBtYWNo
aW5lVGhyZWFkc0xvY2tlcikKKyAgICAgICAgLCBtX21hY2hpbmVGcmFtZShtYWNoaW5lRnJhbWUp
CisgICAgeworICAgIH0KKworICAgIHNpemVfdCB3YWxrKFZlY3RvcjxVbnByb2Nlc3NlZFN0YWNr
RnJhbWU+JiBzdGFja1RyYWNlLCBib29sJiBkaWRSdW5PdXRPZlNwYWNlKQorICAgIHsKKyAgICAg
ICAgaWYgKHNSZXBvcnRTdGF0cykKKyAgICAgICAgICAgIHNOdW1Ub3RhbFdhbGtzKys7CisgICAg
ICAgIHJlc2V0QXRNYWNoaW5lRnJhbWUoKTsKKyAgICAgICAgc2l6ZV90IG1heFN0YWNrVHJhY2VT
aXplID0gc3RhY2tUcmFjZS5zaXplKCk7CisgICAgICAgIC8vIFRoZSB3YXkgdGhlIEMgd2Fsa2Vy
IGRlY2lkZXMgaWYgYSBmcmFtZSBpdCBpcyBhYm91dCB0byB0cmFjZSBpcyBDIG9yIEpTIGlzIGJ5
CisgICAgICAgIC8vIGVuc3VyaW5nIG1fY2FsbEZyYW1lIHBvaW50cyB0byBzb21lIGZyYW1lIGFi
b3ZlIHRoZSBtYWNoaW5lRnJhbWUuCisgICAgICAgIGlmICghaXNBdFRvcCgpICYmICFtX2JhaWxp
bmdPdXQgJiYgbV9tYWNoaW5lRnJhbWUgPT0gbV9jYWxsRnJhbWUpIHsKKyAgICAgICAgICAgIHJl
Y29yZEpTRnJhbWUoc3RhY2tUcmFjZSk7CisgICAgICAgICAgICBCYXNlOjphZHZhbmNlVG9QYXJl
bnRGcmFtZSgpOworICAgICAgICAgICAgcmVzZXRBdE1hY2hpbmVGcmFtZSgpOworICAgICAgICB9
CisKKyAgICAgICAgd2hpbGUgKCFpc0F0VG9wKCkgJiYgIW1fYmFpbGluZ091dCAmJiBtX2RlcHRo
IDwgbWF4U3RhY2tUcmFjZVNpemUpIHsKKyAgICAgICAgICAgIGlmIChtX21hY2hpbmVGcmFtZSA+
PSBtX2NhbGxGcmFtZSkgeworICAgICAgICAgICAgICAgIC8vIElmIHdlIGdldCB0byB0aGlzIHN0
YXRlIHdlIHByb2JhYmx5IGhhdmUgYW4gaW52YWxpZCB0cmFjZS4KKyAgICAgICAgICAgICAgICBt
X2JhaWxpbmdPdXQgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBpZiAoaXNDRnJhbWUoKSkgeworICAgICAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUKCFMTEludDo6aXNMTEludFBDKGZyYW1lKCktPmNhbGxlckZyYW1lKSk7CisgICAg
ICAgICAgICAgICAgc3RhY2tUcmFjZVttX2RlcHRoXSA9IFVucHJvY2Vzc2VkU3RhY2tGcmFtZShm
cmFtZSgpLT5wYyk7CisgICAgICAgICAgICAgICAgbV9kZXB0aCsrOworICAgICAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICAgICAgcmVjb3JkSlNGcmFtZShzdGFja1RyYWNlKTsKKyAgICAgICAg
ICAgIGFkdmFuY2VUb1BhcmVudEZyYW1lKCk7CisgICAgICAgICAgICByZXNldEF0TWFjaGluZUZy
YW1lKCk7CisgICAgICAgIH0KKyAgICAgICAgZGlkUnVuT3V0T2ZTcGFjZSA9IG1fZGVwdGggPj0g
bWF4U3RhY2tUcmFjZVNpemUgJiYgIWlzQXRUb3AoKTsKKyAgICAgICAgcmVwb3J0U3RhdHMoKTsK
KyAgICAgICAgcmV0dXJuIG1fZGVwdGg7CisgICAgfQorCitwcml2YXRlOgorCisgICAgYm9vbCBp
c0NGcmFtZSgpCisgICAgeworICAgICAgICByZXR1cm4gZnJhbWUoKS0+Y2FsbGVyRnJhbWUgIT0g
bV9jYWxsRnJhbWU7CisgICAgfQorCisgICAgdm9pZCBhZHZhbmNlVG9QYXJlbnRGcmFtZSgpCisg
ICAgeworICAgICAgICBpZiAoIWlzQ0ZyYW1lKCkpCisgICAgICAgICAgICBCYXNlOjphZHZhbmNl
VG9QYXJlbnRGcmFtZSgpOworICAgICAgICBtX21hY2hpbmVGcmFtZSA9IGZyYW1lKCktPmNhbGxl
ckZyYW1lOworICAgIH0KKworICAgIHZvaWQgcmVzZXRBdE1hY2hpbmVGcmFtZSgpCisgICAgewor
ICAgICAgICBpZiAoIWlzVmFsaWRGcmFtZVBvaW50ZXIobV9tYWNoaW5lRnJhbWUpKSB7CisgICAg
ICAgICAgICAvLyBHdWFyZCBhZ2FpbnN0IHBhdXNpbmcgdGhlIHByb2Nlc3MgYXQgd2VpcmQgcHJv
Z3JhbSBwb2ludHMuCisgICAgICAgICAgICBtX2JhaWxpbmdPdXQgPSB0cnVlOworICAgICAgICAg
ICAgaWYgKHNSZXBvcnRTdGF0cykKKyAgICAgICAgICAgICAgICBzTnVtRmFpbGVkV2Fsa3MrKzsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBCYXNlOjpyZXNldEF0TWFj
aGluZUZyYW1lKCk7CisgICAgfQorCisgICAgQ2FsbGVyRnJhbWVBbmRQQyogZnJhbWUoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Q2FsbGVyRnJhbWVBbmRQQyo+KG1f
bWFjaGluZUZyYW1lKTsKKyAgICB9CisKKyAgICB2b2lkKiBtX21hY2hpbmVGcmFtZTsKK307CisK
IFNhbXBsaW5nUHJvZmlsZXI6OlNhbXBsaW5nUHJvZmlsZXIoVk0mIHZtLCBSZWZQdHI8U3RvcHdh
dGNoPiYmIHN0b3B3YXRjaCkKICAgICA6IG1fdm0odm0pCiAgICAgLCBtX3N0b3B3YXRjaChXVEZN
b3ZlKHN0b3B3YXRjaCkpCkBAIC0yNTgsNiArMzQ4LDcgQEAgdm9pZCBTYW1wbGluZ1Byb2ZpbGVy
Ojp0YWtlU2FtcGxlKGNvbnN0IExvY2tIb2xkZXImLCBzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRz
JgogICAgICAgICBpZiAoZGlkU3VzcGVuZCkgewogICAgICAgICAgICAgLy8gV2hpbGUgdGhlIEpT
QyB0aHJlYWQgaXMgc3VzcGVuZGVkLCB3ZSBjYW4ndCBkbyB0aGluZ3MgbGlrZSBtYWxsb2MgYmVj
YXVzZSB0aGUgSlNDIHRocmVhZAogICAgICAgICAgICAgLy8gbWF5IGJlIGhvbGRpbmcgdGhlIG1h
bGxvYyBsb2NrLgorICAgICAgICAgICAgdm9pZCogbWFjaGluZUZyYW1lOwogICAgICAgICAgICAg
RXhlY1N0YXRlKiBjYWxsRnJhbWU7CiAgICAgICAgICAgICB2b2lkKiBtYWNoaW5lUEM7CiAgICAg
ICAgICAgICBib29sIHRvcEZyYW1lSXNMTEludCA9IGZhbHNlOwpAQCAtMjY1LDcgKzM1Niw4IEBA
IHZvaWQgU2FtcGxpbmdQcm9maWxlcjo6dGFrZVNhbXBsZShjb25zdCBMb2NrSG9sZGVyJiwgc3Rk
OjpjaHJvbm86Om1pY3Jvc2Vjb25kcyYKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBN
YWNoaW5lVGhyZWFkczo6VGhyZWFkOjpSZWdpc3RlcnMgcmVnaXN0ZXJzOwogICAgICAgICAgICAg
ICAgIG1fanNjRXhlY3V0aW9uVGhyZWFkLT5nZXRSZWdpc3RlcnMocmVnaXN0ZXJzKTsKLSAgICAg
ICAgICAgICAgICBjYWxsRnJhbWUgPSBzdGF0aWNfY2FzdDxFeGVjU3RhdGUqPihyZWdpc3RlcnMu
ZnJhbWVQb2ludGVyKCkpOworICAgICAgICAgICAgICAgIG1hY2hpbmVGcmFtZSA9IHJlZ2lzdGVy
cy5mcmFtZVBvaW50ZXIoKTsKKyAgICAgICAgICAgICAgICBjYWxsRnJhbWUgPSBzdGF0aWNfY2Fz
dDxFeGVjU3RhdGUqPihtYWNoaW5lRnJhbWUpOwogICAgICAgICAgICAgICAgIG1hY2hpbmVQQyA9
IHJlZ2lzdGVycy5pbnN0cnVjdGlvblBvaW50ZXIoKTsKICAgICAgICAgICAgICAgICBsbGludFBD
ID0gcmVnaXN0ZXJzLmxsaW50UEMoKTsKICAgICAgICAgICAgICAgICBtX2pzY0V4ZWN1dGlvblRo
cmVhZC0+ZnJlZVJlZ2lzdGVycyhyZWdpc3RlcnMpOwpAQCAtMjkxLDggKzM4MywxMiBAQCB2b2lk
IFNhbXBsaW5nUHJvZmlsZXI6OnRha2VTYW1wbGUoY29uc3QgTG9ja0hvbGRlciYsIHN0ZDo6Y2hy
b25vOjptaWNyb3NlY29uZHMmCiAgICAgICAgICAgICBzaXplX3Qgd2Fsa1NpemU7CiAgICAgICAg
ICAgICBib29sIHdhc1ZhbGlkV2FsazsKICAgICAgICAgICAgIGJvb2wgZGlkUnVuT3V0T2ZWZWN0
b3JTcGFjZTsKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBGcmFtZVdhbGtlciB3YWxr
ZXIoY2FsbEZyYW1lLCBtX3ZtLCBjb2RlQmxvY2tTZXRMb2NrZXIsIG1hY2hpbmVUaHJlYWRzTG9j
a2VyKTsKKyAgICAgICAgICAgIGlmIChPcHRpb25zOjpzYW1wbGVDQ29kZSgpKSB7CisgICAgICAg
ICAgICAgICAgQ0ZyYW1lV2Fsa2VyIHdhbGtlcihtX3ZtLCBtYWNoaW5lRnJhbWUsIGNhbGxGcmFt
ZSwgY29kZUJsb2NrU2V0TG9ja2VyLCBtYWNoaW5lVGhyZWFkc0xvY2tlcik7CisgICAgICAgICAg
ICAgICAgd2Fsa1NpemUgPSB3YWxrZXIud2FsayhtX2N1cnJlbnRGcmFtZXMsIGRpZFJ1bk91dE9m
VmVjdG9yU3BhY2UpOworICAgICAgICAgICAgICAgIHdhc1ZhbGlkV2FsayA9IHdhbGtlci53YXNW
YWxpZFdhbGsoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgRnJhbWVX
YWxrZXIgd2Fsa2VyKG1fdm0sIGNhbGxGcmFtZSwgY29kZUJsb2NrU2V0TG9ja2VyLCBtYWNoaW5l
VGhyZWFkc0xvY2tlcik7CiAgICAgICAgICAgICAgICAgd2Fsa1NpemUgPSB3YWxrZXIud2Fsayht
X2N1cnJlbnRGcmFtZXMsIGRpZFJ1bk91dE9mVmVjdG9yU3BhY2UpOwogICAgICAgICAgICAgICAg
IHdhc1ZhbGlkV2FsayA9IHdhbGtlci53YXNWYWxpZFdhbGsoKTsKICAgICAgICAgICAgIH0KQEAg
LTUyNywxMiArNjIzLDE3IEBAIHZvaWQgU2FtcGxpbmdQcm9maWxlcjo6cHJvY2Vzc1VudmVyaWZp
ZWRTdGFja1RyYWNlcygpCiAjZWxzZQogICAgICAgICAgICAgICAgIGFwcGVuZENvZGVCbG9ja05v
SW5saW5pbmcoKTsKICNlbmRpZgorICAgICAgICAgICAgfSBlbHNlIGlmICh1bnByb2Nlc3NlZFN0
YWNrRnJhbWUuY0NvZGVQQykgeworICAgICAgICAgICAgICAgIGFwcGVuZEVtcHR5RnJhbWUoKTsK
KyAgICAgICAgICAgICAgICBzdGFja1RyYWNlLmZyYW1lcy5sYXN0KCkuY0NvZGVQQyA9IHVucHJv
Y2Vzc2VkU3RhY2tGcmFtZS5jQ29kZVBDOworICAgICAgICAgICAgICAgIHN0YWNrVHJhY2UuZnJh
bWVzLmxhc3QoKS5mcmFtZVR5cGUgPSBGcmFtZVR5cGU6OkM7CiAgICAgICAgICAgICB9IGVsc2UK
ICAgICAgICAgICAgICAgICBhcHBlbmRFbXB0eUZyYW1lKCk7CiAKICAgICAgICAgICAgIC8vIE5v
dGUgdGhhdCB0aGlzIGlzIG9rYXkgdG8gZG8gaWYgd2Ugd2Fsa2VkIHRoZSBpbmxpbmUgc3RhY2sg
YmVjYXVzZQogICAgICAgICAgICAgLy8gdGhlIG1hY2hpbmUgZnJhbWUgd2lsbCBiZSBhdCB0aGUg
dG9wIG9mIHRoZSBwcm9jZXNzZWQgc3RhY2sgdHJhY2UuCi0gICAgICAgICAgICBzdG9yZUNhbGxl
ZUludG9MYXN0RnJhbWUodW5wcm9jZXNzZWRTdGFja0ZyYW1lLnVudmVyaWZpZWRDYWxsZWUpOwor
ICAgICAgICAgICAgaWYgKCF1bnByb2Nlc3NlZFN0YWNrRnJhbWUuY0NvZGVQQykKKyAgICAgICAg
ICAgICAgICBzdG9yZUNhbGxlZUludG9MYXN0RnJhbWUodW5wcm9jZXNzZWRTdGFja0ZyYW1lLnVu
dmVyaWZpZWRDYWxsZWUpOwogICAgICAgICB9CiAgICAgfQogCkBAIC02NDQsOCArNzQ1LDIzIEBA
IFN0cmluZyBTYW1wbGluZ1Byb2ZpbGVyOjpTdGFja0ZyYW1lOjpkaXNwbGF5TmFtZShWTSYgdm0p
CiAgICAgICAgICAgICByZXR1cm4gbmFtZTsKICAgICB9CiAKLSAgICBpZiAoZnJhbWVUeXBlID09
IEZyYW1lVHlwZTo6VW5rbm93bikKLSAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiKHVua25v
d24pIik7CisgICAgaWYgKGZyYW1lVHlwZSA9PSBGcmFtZVR5cGU6OlVua25vd24gfHwgZnJhbWVU
eXBlID09IEZyYW1lVHlwZTo6QykgeworI2lmIE9TKERBUldJTikKKyAgICAgICAgaWYgKGZyYW1l
VHlwZSA9PSBGcmFtZVR5cGU6OkMpIHsKKyAgICAgICAgICAgIGNvbnN0IGNoYXIqIG1hbmdsZWRO
YW1lID0gbnVsbHB0cjsKKyAgICAgICAgICAgIGNvbnN0IGNoYXIqIGN4YURlbWFuZ2xlZCA9IG51
bGxwdHI7CisgICAgICAgICAgICBEbF9pbmZvIGluZm87CisgICAgICAgICAgICBpZiAoZGxhZGRy
KGNDb2RlUEMsICZpbmZvKSAmJiBpbmZvLmRsaV9zbmFtZSkKKyAgICAgICAgICAgICAgICBtYW5n
bGVkTmFtZSA9IGluZm8uZGxpX3NuYW1lOworICAgICAgICAgICAgaWYgKG1hbmdsZWROYW1lKSB7
CisgICAgICAgICAgICAgICAgY3hhRGVtYW5nbGVkID0gYWJpOjpfX2N4YV9kZW1hbmdsZShtYW5n
bGVkTmFtZSwgMCwgMCwgMCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhjeGFEZW1h
bmdsZWQgPyBjeGFEZW1hbmdsZWQgOiBtYW5nbGVkTmFtZSk7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBXVEY6OmRhdGFMb2coImNvdWxkbid0IGdldCBhIG5hbWUiKTsKKyAgICAgICAgfQor
I2VuZGlmCisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoIih1bmtub3duMTIpIik7CisgICAg
fQogICAgIGlmIChmcmFtZVR5cGUgPT0gRnJhbWVUeXBlOjpIb3N0KQogICAgICAgICByZXR1cm4g
QVNDSUlMaXRlcmFsKCIoaG9zdCkiKTsKIApAQCAtNjcxLDcgKzc4Nyw3IEBAIFN0cmluZyBTYW1w
bGluZ1Byb2ZpbGVyOjpTdGFja0ZyYW1lOjpkaXNwbGF5TmFtZUZvckpTT05UZXN0cyhWTSYgdm0p
CiAgICAgICAgICAgICByZXR1cm4gbmFtZTsKICAgICB9CiAKLSAgICBpZiAoZnJhbWVUeXBlID09
IEZyYW1lVHlwZTo6VW5rbm93bikKKyAgICBpZiAoZnJhbWVUeXBlID09IEZyYW1lVHlwZTo6VW5r
bm93biB8fCBmcmFtZVR5cGUgPT0gRnJhbWVUeXBlOjpDKQogICAgICAgICByZXR1cm4gQVNDSUlM
aXRlcmFsKCIodW5rbm93bikiKTsKICAgICBpZiAoZnJhbWVUeXBlID09IEZyYW1lVHlwZTo6SG9z
dCkKICAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiKGhvc3QpIik7CkBAIC02OTgsNyArODE0
LDcgQEAgU3RyaW5nIFNhbXBsaW5nUHJvZmlsZXI6OlN0YWNrRnJhbWU6OmRpc3BsYXlOYW1lRm9y
SlNPTlRlc3RzKFZNJiB2bSkKIAogaW50IFNhbXBsaW5nUHJvZmlsZXI6OlN0YWNrRnJhbWU6OmZ1
bmN0aW9uU3RhcnRMaW5lKCkKIHsKLSAgICBpZiAoZnJhbWVUeXBlID09IEZyYW1lVHlwZTo6VW5r
bm93biB8fCBmcmFtZVR5cGUgPT0gRnJhbWVUeXBlOjpIb3N0KQorICAgIGlmIChmcmFtZVR5cGUg
PT0gRnJhbWVUeXBlOjpVbmtub3duIHx8IGZyYW1lVHlwZSA9PSBGcmFtZVR5cGU6Okhvc3QgfHwg
ZnJhbWVUeXBlID09IEZyYW1lVHlwZTo6QykKICAgICAgICAgcmV0dXJuIC0xOwogCiAgICAgaWYg
KGV4ZWN1dGFibGUtPmlzSG9zdEZ1bmN0aW9uKCkpCkBAIC03MDgsNyArODI0LDcgQEAgaW50IFNh
bXBsaW5nUHJvZmlsZXI6OlN0YWNrRnJhbWU6OmZ1bmN0aW9uU3RhcnRMaW5lKCkKIAogdW5zaWdu
ZWQgU2FtcGxpbmdQcm9maWxlcjo6U3RhY2tGcmFtZTo6ZnVuY3Rpb25TdGFydENvbHVtbigpCiB7
Ci0gICAgaWYgKGZyYW1lVHlwZSA9PSBGcmFtZVR5cGU6OlVua25vd24gfHwgZnJhbWVUeXBlID09
IEZyYW1lVHlwZTo6SG9zdCkKKyAgICBpZiAoZnJhbWVUeXBlID09IEZyYW1lVHlwZTo6VW5rbm93
biB8fCBmcmFtZVR5cGUgPT0gRnJhbWVUeXBlOjpIb3N0IHx8IGZyYW1lVHlwZSA9PSBGcmFtZVR5
cGU6OkMpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4
KCk7CiAKICAgICBpZiAoZXhlY3V0YWJsZS0+aXNIb3N0RnVuY3Rpb24oKSkKQEAgLTcxOSw3ICs4
MzUsNyBAQCB1bnNpZ25lZCBTYW1wbGluZ1Byb2ZpbGVyOjpTdGFja0ZyYW1lOjpmdW5jdGlvblN0
YXJ0Q29sdW1uKCkKIAogaW50cHRyX3QgU2FtcGxpbmdQcm9maWxlcjo6U3RhY2tGcmFtZTo6c291
cmNlSUQoKQogewotICAgIGlmIChmcmFtZVR5cGUgPT0gRnJhbWVUeXBlOjpVbmtub3duIHx8IGZy
YW1lVHlwZSA9PSBGcmFtZVR5cGU6Okhvc3QpCisgICAgaWYgKGZyYW1lVHlwZSA9PSBGcmFtZVR5
cGU6OlVua25vd24gfHwgZnJhbWVUeXBlID09IEZyYW1lVHlwZTo6SG9zdCB8fCBmcmFtZVR5cGUg
PT0gRnJhbWVUeXBlOjpDKQogICAgICAgICByZXR1cm4gLTE7CiAKICAgICBpZiAoZXhlY3V0YWJs
ZS0+aXNIb3N0RnVuY3Rpb24oKSkKQEAgLTczMCw3ICs4NDYsNyBAQCBpbnRwdHJfdCBTYW1wbGlu
Z1Byb2ZpbGVyOjpTdGFja0ZyYW1lOjpzb3VyY2VJRCgpCiAKIFN0cmluZyBTYW1wbGluZ1Byb2Zp
bGVyOjpTdGFja0ZyYW1lOjp1cmwoKQogewotICAgIGlmIChmcmFtZVR5cGUgPT0gRnJhbWVUeXBl
OjpVbmtub3duIHx8IGZyYW1lVHlwZSA9PSBGcmFtZVR5cGU6Okhvc3QpCisgICAgaWYgKGZyYW1l
VHlwZSA9PSBGcmFtZVR5cGU6OlVua25vd24gfHwgZnJhbWVUeXBlID09IEZyYW1lVHlwZTo6SG9z
dCB8fCBmcmFtZVR5cGUgPT0gRnJhbWVUeXBlOjpDKQogICAgICAgICByZXR1cm4gZW1wdHlTdHJp
bmcoKTsKIAogICAgIGlmIChleGVjdXRhYmxlLT5pc0hvc3RGdW5jdGlvbigpKQpAQCAtOTY4LDYg
KzEwODQsNyBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgU2FtcGxpbmdQ
cm9maWxlcjo6RnJhbWVUeXBlIGZyYW1lVHlwZSkKICAgICBjYXNlIFNhbXBsaW5nUHJvZmlsZXI6
OkZyYW1lVHlwZTo6SG9zdDoKICAgICAgICAgb3V0LnByaW50KCJIb3N0Iik7CiAgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgU2FtcGxpbmdQcm9maWxlcjo6RnJhbWVUeXBlOjpDOgogICAgIGNhc2Ug
U2FtcGxpbmdQcm9maWxlcjo6RnJhbWVUeXBlOjpVbmtub3duOgogICAgICAgICBvdXQucHJpbnQo
IlVua25vd24iKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TYW1wbGluZ1Byb2ZpbGVyLmgKaW5kZXggMDI5Y2M3MGViMzUwMGU5YmFlNjY4MzA5
NTE0N2UwZjQzZjc1NGNjYS4uODk5ZTU1MDhlZGMyY2M4YjYyODQ4NTA4OWE1ODU5Yjg0ZGM5NjE3
ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdQcm9m
aWxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NhbXBsaW5nUHJvZmls
ZXIuaApAQCAtNTEsMjEgKzUxLDI3IEBAIHB1YmxpYzoKICAgICAgICAgICAgICwgdmVyaWZpZWRD
b2RlQmxvY2soY29kZUJsb2NrKQogICAgICAgICAgICAgLCBjYWxsU2l0ZUluZGV4KGNhbGxTaXRl
SW5kZXgpCiAgICAgICAgIHsgfQorCisgICAgICAgIFVucHJvY2Vzc2VkU3RhY2tGcmFtZSh2b2lk
KiBwYykKKyAgICAgICAgICAgIDogY0NvZGVQQyhwYykKKyAgICAgICAgeyB9CisKICAgICAgICAg
VW5wcm9jZXNzZWRTdGFja0ZyYW1lKCkKICAgICAgICAgewogICAgICAgICAgICAgdW52ZXJpZmll
ZENhbGxlZSA9IEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOwotICAgICAgICAgICAgdmVyaWZp
ZWRDb2RlQmxvY2sgPSBudWxscHRyOwogICAgICAgICB9CiAKKyAgICAgICAgdm9pZCogY0NvZGVQ
QyB7IG51bGxwdHIgfTsKICAgICAgICAgRW5jb2RlZEpTVmFsdWUgdW52ZXJpZmllZENhbGxlZTsK
LSAgICAgICAgQ29kZUJsb2NrKiB2ZXJpZmllZENvZGVCbG9jazsKKyAgICAgICAgQ29kZUJsb2Nr
KiB2ZXJpZmllZENvZGVCbG9jayB7IG51bGxwdHIgfTsKICAgICAgICAgQ2FsbFNpdGVJbmRleCBj
YWxsU2l0ZUluZGV4OwogICAgIH07CiAKICAgICBlbnVtIGNsYXNzIEZyYW1lVHlwZSB7IAogICAg
ICAgICBFeGVjdXRhYmxlLAogICAgICAgICBIb3N0LAotICAgICAgICBVbmtub3duIAorICAgICAg
ICBDLAorICAgICAgICBVbmtub3duCiAgICAgfTsKIAogICAgIHN0cnVjdCBTdGFja0ZyYW1lIHsK
QEAgLTc4LDYgKzg0LDcgQEAgcHVibGljOgogICAgICAgICB7IH0KIAogICAgICAgICBGcmFtZVR5
cGUgZnJhbWVUeXBlIHsgRnJhbWVUeXBlOjpVbmtub3duIH07CisgICAgICAgIHZvaWQqIGNDb2Rl
UEMgeyBudWxscHRyIH07CiAgICAgICAgIEV4ZWN1dGFibGVCYXNlKiBleGVjdXRhYmxlIHsgbnVs
bHB0ciB9OwogICAgICAgICBKU09iamVjdCogY2FsbGVlIHsgbnVsbHB0ciB9OwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>