<?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>87040</bug_id>
          
          <creation_ts>2012-05-21 12:53:56 -0700</creation_ts>
          <short_desc>Change RenderBlock to user RenderBox/RenderInline writing mode logic</short_desc>
          <delta_ts>2012-05-22 04:15:39 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>85824</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Emil A Eklund">eae</reporter>
          <assigned_to name="Emil A Eklund">eae</assigned_to>
          <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>leviw</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>629400</commentid>
    <comment_count>0</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-05-21 12:53:56 -0700</bug_when>
    <thetext>Remove unnecessary writing mode logic in RenderBlock and use the implementation in RenderBox and RenderInline instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629406</commentid>
    <comment_count>1</comment_count>
      <attachid>143081</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-05-21 12:57:12 -0700</bug_when>
    <thetext>Created attachment 143081
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629669</commentid>
    <comment_count>2</comment_count>
      <attachid>143081</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-21 16:08:11 -0700</bug_when>
    <thetext>Comment on attachment 143081
Patch

I might have named it &quot;overrideStyle&quot; instead of otherStyle.  This seems OK.  the usingStyle(style) pattern would be fine to.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630063</commentid>
    <comment_count>3</comment_count>
      <attachid>143219</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-05-22 01:12:31 -0700</bug_when>
    <thetext>Created attachment 143219
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630109</commentid>
    <comment_count>4</comment_count>
      <attachid>143219</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-22 01:58:12 -0700</bug_when>
    <thetext>Comment on attachment 143219
Patch for landing

Rejecting attachment 143219 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
re::RenderStyle*)&apos;:
Source/WebCore/rendering/RenderBox.cpp:171: error: &apos;otherStyle&apos; was not declared in this scope
Source/WebCore/rendering/RenderBox.cpp: In member function &apos;void WebCore::RenderBox::setMarginAfter(WebCore::LayoutUnit, const WebCore::RenderStyle*)&apos;:
Source/WebCore/rendering/RenderBox.cpp:189: error: &apos;otherStyle&apos; was not declared in this scope
make: *** [out/Debug/obj.target/webcore_rendering/Source/WebCore/rendering/RenderBox.o] Error 1
make: *** Waiting for unfinished jobs....

Full output: http://queues.webkit.org/results/12730937</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630137</commentid>
    <comment_count>5</comment_count>
      <attachid>143243</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-05-22 02:38:43 -0700</bug_when>
    <thetext>Created attachment 143243
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630214</commentid>
    <comment_count>6</comment_count>
      <attachid>143243</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-22 04:15:34 -0700</bug_when>
    <thetext>Comment on attachment 143243
Patch for landing

Clearing flags on attachment: 143243

Committed r117946: &lt;http://trac.webkit.org/changeset/117946&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630215</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-22 04:15:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143081</attachid>
            <date>2012-05-21 12:57:12 -0700</date>
            <delta_ts>2012-05-22 01:12:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87040-20120521125712.patch</filename>
            <type>text/plain</type>
            <size>18055</size>
            <attacher name="Emil A Eklund">eae</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNzgwOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTA1LTIxICBFbWlsIEEg
RWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4KKworICAgICAgICBDaGFuZ2UgUmVuZGVyQmxvY2sg
dG8gdXNlciBSZW5kZXJCb3gvUmVuZGVySW5saW5lIHdyaXRpbmcgbW9kZSBsb2dpYworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODcwNDAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgdW5uZWNlc3Nh
cnkgd3JpdGluZyBtb2RlIGxvZ2ljIGluIFJlbmRlckJsb2NrIGFuZCB1c2UgdGhlCisgICAgICAg
IGltcGxlbWVudGF0aW9uIGluIFJlbmRlckJveCBhbmQgUmVuZGVySW5saW5lIGluc3RlYWQuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJsb2NrOjptYXJnaW5CZWZvcmVGb3JDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9jazo6bWFyZ2luQWZ0ZXJGb3JDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9j
azo6bWFyZ2luU3RhcnRGb3JDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
bWFyZ2luRW5kRm9yQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnNldE1h
cmdpblN0YXJ0Rm9yQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnNldE1h
cmdpbkVuZEZvckNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpzZXRNYXJn
aW5CZWZvcmVGb3JDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6c2V0TWFy
Z2luQWZ0ZXJGb3JDaGlsZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6Om1hcmdpbkJlZm9yZSk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCb3g6Om1hcmdpbkFmdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJv
eDo6bWFyZ2luU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjptYXJnaW5FbmQp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzZXRNYXJnaW5TdGFydCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJCb3g6OnNldE1hcmdpbkVuZCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCb3g6OnNldE1hcmdpbkJlZm9yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6
OnNldE1hcmdpbkFmdGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAg
ICAgIChSZW5kZXJCb3gpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVj
dC5oOgorICAgICAgICAoUmVuZGVyQm94TW9kZWxPYmplY3QpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJJbmxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjptYXJn
aW5TdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6Om1hcmdpbkVuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6Om1hcmdpbkJlZm9yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJJbmxpbmU6Om1hcmdpbkFmdGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVySW5saW5lLmg6CisgICAgICAgIChSZW5kZXJJbmxpbmUpOgorCiAyMDEyLTA1LTIxICBB
bmRyZWFzIEtsaW5nICA8a2xpbmdAd2Via2l0Lm9yZz4KIAogICAgICAgICBDU1M6IE1vdmUgZHVw
bGljYXRlIHByb3BlcnR5IGVsaW1pbmF0aW9uIHRvIHBhcnNlci4KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkocmV2aXNpb24gMTE3Nzk2KQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzAw
OSwxMTggKzcwMDksNiBAQCBMYXlvdXRVbml0IFJlbmRlckJsb2NrOjpjb2xsYXBzZWRNYXJnaW5B
CiAgICAgcmV0dXJuIG1hcmdpbkFmdGVyRm9yQ2hpbGQoY2hpbGQpOwogfQogCi1MYXlvdXRVbml0
IFJlbmRlckJsb2NrOjptYXJnaW5CZWZvcmVGb3JDaGlsZChjb25zdCBSZW5kZXJCb3hNb2RlbE9i
amVjdCogY2hpbGQpIGNvbnN0Ci17Ci0gICAgc3dpdGNoIChzdHlsZSgpLT53cml0aW5nTW9kZSgp
KSB7Ci0gICAgY2FzZSBUb3BUb0JvdHRvbVdyaXRpbmdNb2RlOgotICAgICAgICByZXR1cm4gY2hp
bGQtPm1hcmdpblRvcCgpOwotICAgIGNhc2UgQm90dG9tVG9Ub3BXcml0aW5nTW9kZToKLSAgICAg
ICAgcmV0dXJuIGNoaWxkLT5tYXJnaW5Cb3R0b20oKTsKLSAgICBjYXNlIExlZnRUb1JpZ2h0V3Jp
dGluZ01vZGU6Ci0gICAgICAgIHJldHVybiBjaGlsZC0+bWFyZ2luTGVmdCgpOwotICAgIGNhc2Ug
UmlnaHRUb0xlZnRXcml0aW5nTW9kZToKLSAgICAgICAgcmV0dXJuIGNoaWxkLT5tYXJnaW5SaWdo
dCgpOwotICAgIH0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gY2hpbGQt
Pm1hcmdpblRvcCgpOwotfQotCi1MYXlvdXRVbml0IFJlbmRlckJsb2NrOjptYXJnaW5BZnRlckZv
ckNoaWxkKGNvbnN0IFJlbmRlckJveE1vZGVsT2JqZWN0KiBjaGlsZCkgY29uc3QKLXsKLSAgICBz
d2l0Y2ggKHN0eWxlKCktPndyaXRpbmdNb2RlKCkpIHsKLSAgICBjYXNlIFRvcFRvQm90dG9tV3Jp
dGluZ01vZGU6Ci0gICAgICAgIHJldHVybiBjaGlsZC0+bWFyZ2luQm90dG9tKCk7Ci0gICAgY2Fz
ZSBCb3R0b21Ub1RvcFdyaXRpbmdNb2RlOgotICAgICAgICByZXR1cm4gY2hpbGQtPm1hcmdpblRv
cCgpOwotICAgIGNhc2UgTGVmdFRvUmlnaHRXcml0aW5nTW9kZToKLSAgICAgICAgcmV0dXJuIGNo
aWxkLT5tYXJnaW5SaWdodCgpOwotICAgIGNhc2UgUmlnaHRUb0xlZnRXcml0aW5nTW9kZToKLSAg
ICAgICAgcmV0dXJuIGNoaWxkLT5tYXJnaW5MZWZ0KCk7Ci0gICAgfQotICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgIHJldHVybiBjaGlsZC0+bWFyZ2luQm90dG9tKCk7Ci19Ci0KLUxheW91
dFVuaXQgUmVuZGVyQmxvY2s6Om1hcmdpblN0YXJ0Rm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94TW9k
ZWxPYmplY3QqIGNoaWxkKSBjb25zdAotewotICAgIGlmIChpc0hvcml6b250YWxXcml0aW5nTW9k
ZSgpKQotICAgICAgICByZXR1cm4gc3R5bGUoKS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8g
Y2hpbGQtPm1hcmdpbkxlZnQoKSA6IGNoaWxkLT5tYXJnaW5SaWdodCgpOwotICAgIHJldHVybiBz
dHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBjaGlsZC0+bWFyZ2luVG9wKCkgOiBj
aGlsZC0+bWFyZ2luQm90dG9tKCk7Ci19Ci0KLUxheW91dFVuaXQgUmVuZGVyQmxvY2s6Om1hcmdp
bkVuZEZvckNoaWxkKGNvbnN0IFJlbmRlckJveE1vZGVsT2JqZWN0KiBjaGlsZCkgY29uc3QKLXsK
LSAgICBpZiAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKLSAgICAgICAgcmV0dXJuIHN0eWxl
KCktPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IGNoaWxkLT5tYXJnaW5SaWdodCgpIDogY2hp
bGQtPm1hcmdpbkxlZnQoKTsKLSAgICByZXR1cm4gc3R5bGUoKS0+aXNMZWZ0VG9SaWdodERpcmVj
dGlvbigpID8gY2hpbGQtPm1hcmdpbkJvdHRvbSgpIDogY2hpbGQtPm1hcmdpblRvcCgpOwotfQot
Ci12b2lkIFJlbmRlckJsb2NrOjpzZXRNYXJnaW5TdGFydEZvckNoaWxkKFJlbmRlckJveCogY2hp
bGQsIExheW91dFVuaXQgbWFyZ2luKQotewotICAgIGlmIChpc0hvcml6b250YWxXcml0aW5nTW9k
ZSgpKSB7Ci0gICAgICAgIGlmIChzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCi0g
ICAgICAgICAgICBjaGlsZC0+c2V0TWFyZ2luTGVmdChtYXJnaW4pOwotICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBjaGlsZC0+c2V0TWFyZ2luUmlnaHQobWFyZ2luKTsKLSAgICB9IGVsc2Ugewot
ICAgICAgICBpZiAoc3R5bGUoKS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKQotICAgICAgICAg
ICAgY2hpbGQtPnNldE1hcmdpblRvcChtYXJnaW4pOwotICAgICAgICBlbHNlCi0gICAgICAgICAg
ICBjaGlsZC0+c2V0TWFyZ2luQm90dG9tKG1hcmdpbik7Ci0gICAgfQotfQotCi12b2lkIFJlbmRl
ckJsb2NrOjpzZXRNYXJnaW5FbmRGb3JDaGlsZChSZW5kZXJCb3gqIGNoaWxkLCBMYXlvdXRVbml0
IG1hcmdpbikKLXsKLSAgICBpZiAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkgewotICAgICAg
ICBpZiAoc3R5bGUoKS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKQotICAgICAgICAgICAgY2hp
bGQtPnNldE1hcmdpblJpZ2h0KG1hcmdpbik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNo
aWxkLT5zZXRNYXJnaW5MZWZ0KG1hcmdpbik7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKHN0
eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSkKLSAgICAgICAgICAgIGNoaWxkLT5zZXRN
YXJnaW5Cb3R0b20obWFyZ2luKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY2hpbGQtPnNl
dE1hcmdpblRvcChtYXJnaW4pOwotICAgIH0KLX0KLQotdm9pZCBSZW5kZXJCbG9jazo6c2V0TWFy
Z2luQmVmb3JlRm9yQ2hpbGQoUmVuZGVyQm94KiBjaGlsZCwgTGF5b3V0VW5pdCBtYXJnaW4pCi17
Ci0gICAgc3dpdGNoIChzdHlsZSgpLT53cml0aW5nTW9kZSgpKSB7Ci0gICAgY2FzZSBUb3BUb0Jv
dHRvbVdyaXRpbmdNb2RlOgotICAgICAgICBjaGlsZC0+c2V0TWFyZ2luVG9wKG1hcmdpbik7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgQm90dG9tVG9Ub3BXcml0aW5nTW9kZToKLSAgICAgICAg
Y2hpbGQtPnNldE1hcmdpbkJvdHRvbShtYXJnaW4pOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IExlZnRUb1JpZ2h0V3JpdGluZ01vZGU6Ci0gICAgICAgIGNoaWxkLT5zZXRNYXJnaW5MZWZ0KG1h
cmdpbik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUmlnaHRUb0xlZnRXcml0aW5nTW9kZToK
LSAgICAgICAgY2hpbGQtPnNldE1hcmdpblJpZ2h0KG1hcmdpbik7Ci0gICAgICAgIGJyZWFrOwot
ICAgIH0KLX0KLQotdm9pZCBSZW5kZXJCbG9jazo6c2V0TWFyZ2luQWZ0ZXJGb3JDaGlsZChSZW5k
ZXJCb3gqIGNoaWxkLCBMYXlvdXRVbml0IG1hcmdpbikKLXsKLSAgICBzd2l0Y2ggKHN0eWxlKCkt
PndyaXRpbmdNb2RlKCkpIHsKLSAgICBjYXNlIFRvcFRvQm90dG9tV3JpdGluZ01vZGU6Ci0gICAg
ICAgIGNoaWxkLT5zZXRNYXJnaW5Cb3R0b20obWFyZ2luKTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBCb3R0b21Ub1RvcFdyaXRpbmdNb2RlOgotICAgICAgICBjaGlsZC0+c2V0TWFyZ2luVG9w
KG1hcmdpbik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgTGVmdFRvUmlnaHRXcml0aW5nTW9k
ZToKLSAgICAgICAgY2hpbGQtPnNldE1hcmdpblJpZ2h0KG1hcmdpbik7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgUmlnaHRUb0xlZnRXcml0aW5nTW9kZToKLSAgICAgICAgY2hpbGQtPnNldE1h
cmdpbkxlZnQobWFyZ2luKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotfQotCiBSZW5kZXJCbG9j
azo6TWFyZ2luVmFsdWVzIFJlbmRlckJsb2NrOjptYXJnaW5WYWx1ZXNGb3JDaGlsZChSZW5kZXJC
b3gqIGNoaWxkKQogewogICAgIExheW91dFVuaXQgY2hpbGRCZWZvcmVQb3NpdGl2ZSA9IDA7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAkocmV2aXNpb24gMTE3Nzk2
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI4NCwxNCArMjg0LDE0IEBAIHB1YmxpYzoKICAgICBMYXlvdXRVbml0IGxvZ2ljYWxU
b3BGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gqIGNoaWxkKSB7IHJldHVybiBpc0hvcml6b250YWxX
cml0aW5nTW9kZSgpID8gY2hpbGQtPnkoKSA6IGNoaWxkLT54KCk7IH0KICAgICB2b2lkIHNldExv
Z2ljYWxMZWZ0Rm9yQ2hpbGQoUmVuZGVyQm94KiBjaGlsZCwgTGF5b3V0VW5pdCBsb2dpY2FsTGVm
dCwgQXBwbHlMYXlvdXREZWx0YU1vZGUgPSBEb05vdEFwcGx5TGF5b3V0RGVsdGEpOwogICAgIHZv
aWQgc2V0TG9naWNhbFRvcEZvckNoaWxkKFJlbmRlckJveCogY2hpbGQsIExheW91dFVuaXQgbG9n
aWNhbFRvcCwgQXBwbHlMYXlvdXREZWx0YU1vZGUgPSBEb05vdEFwcGx5TGF5b3V0RGVsdGEpOwot
ICAgIExheW91dFVuaXQgbWFyZ2luQmVmb3JlRm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94TW9kZWxP
YmplY3QqIGNoaWxkKSBjb25zdDsKLSAgICBMYXlvdXRVbml0IG1hcmdpbkFmdGVyRm9yQ2hpbGQo
Y29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3QqIGNoaWxkKSBjb25zdDsKLSAgICBMYXlvdXRVbml0
IG1hcmdpblN0YXJ0Rm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3QqIGNoaWxkKSBj
b25zdDsKLSAgICBMYXlvdXRVbml0IG1hcmdpbkVuZEZvckNoaWxkKGNvbnN0IFJlbmRlckJveE1v
ZGVsT2JqZWN0KiBjaGlsZCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRNYXJnaW5TdGFydEZvckNoaWxk
KFJlbmRlckJveCogY2hpbGQsIExheW91dFVuaXQpOwotICAgIHZvaWQgc2V0TWFyZ2luRW5kRm9y
Q2hpbGQoUmVuZGVyQm94KiBjaGlsZCwgTGF5b3V0VW5pdCk7Ci0gICAgdm9pZCBzZXRNYXJnaW5C
ZWZvcmVGb3JDaGlsZChSZW5kZXJCb3gqIGNoaWxkLCBMYXlvdXRVbml0KTsKLSAgICB2b2lkIHNl
dE1hcmdpbkFmdGVyRm9yQ2hpbGQoUmVuZGVyQm94KiBjaGlsZCwgTGF5b3V0VW5pdCk7CisgICAg
TGF5b3V0VW5pdCBtYXJnaW5CZWZvcmVGb3JDaGlsZChjb25zdCBSZW5kZXJCb3hNb2RlbE9iamVj
dCogY2hpbGQpIGNvbnN0IHsgcmV0dXJuIGNoaWxkLT5tYXJnaW5CZWZvcmUoc3R5bGUoKSk7IH0K
KyAgICBMYXlvdXRVbml0IG1hcmdpbkFmdGVyRm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94TW9kZWxP
YmplY3QqIGNoaWxkKSBjb25zdCB7IHJldHVybiBjaGlsZC0+bWFyZ2luQWZ0ZXIoc3R5bGUoKSk7
IH0KKyAgICBMYXlvdXRVbml0IG1hcmdpblN0YXJ0Rm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94TW9k
ZWxPYmplY3QqIGNoaWxkKSBjb25zdCB7IHJldHVybiBjaGlsZC0+bWFyZ2luU3RhcnQoc3R5bGUo
KSk7IH0KKyAgICBMYXlvdXRVbml0IG1hcmdpbkVuZEZvckNoaWxkKGNvbnN0IFJlbmRlckJveE1v
ZGVsT2JqZWN0KiBjaGlsZCkgY29uc3QgeyByZXR1cm4gY2hpbGQtPm1hcmdpbkVuZChzdHlsZSgp
KTsgfQorICAgIHZvaWQgc2V0TWFyZ2luU3RhcnRGb3JDaGlsZChSZW5kZXJCb3gqIGNoaWxkLCBM
YXlvdXRVbml0IHZhbHVlKSB7IGNoaWxkLT5zZXRNYXJnaW5TdGFydCh2YWx1ZSwgc3R5bGUoKSk7
IH0KKyAgICB2b2lkIHNldE1hcmdpbkVuZEZvckNoaWxkKFJlbmRlckJveCogY2hpbGQsIExheW91
dFVuaXQgdmFsdWUpIHsgY2hpbGQtPnNldE1hcmdpbkVuZCh2YWx1ZSwgc3R5bGUoKSk7IH0KKyAg
ICB2b2lkIHNldE1hcmdpbkJlZm9yZUZvckNoaWxkKFJlbmRlckJveCogY2hpbGQsIExheW91dFVu
aXQgdmFsdWUpIHsgY2hpbGQtPnNldE1hcmdpbkJlZm9yZSh2YWx1ZSwgc3R5bGUoKSk7IH0KKyAg
ICB2b2lkIHNldE1hcmdpbkFmdGVyRm9yQ2hpbGQoUmVuZGVyQm94KiBjaGlsZCwgTGF5b3V0VW5p
dCB2YWx1ZSkgeyBjaGlsZC0+c2V0TWFyZ2luQWZ0ZXIodmFsdWUsIHN0eWxlKCkpOyB9CiAgICAg
TGF5b3V0VW5pdCBjb2xsYXBzZWRNYXJnaW5CZWZvcmVGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gq
IGNoaWxkKSBjb25zdDsKICAgICBMYXlvdXRVbml0IGNvbGxhcHNlZE1hcmdpbkFmdGVyRm9yQ2hp
bGQoY29uc3QgUmVuZGVyQm94KiBjaGlsZCkgY29uc3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guY3BwCShyZXZpc2lvbiAxMTc3OTYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODYsOSArODYsOSBA
QCBSZW5kZXJCb3g6On5SZW5kZXJCb3goKQogewogfQogCi1MYXlvdXRVbml0IFJlbmRlckJveDo6
bWFyZ2luQmVmb3JlKCkgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyQm94OjptYXJnaW5CZWZvcmUo
Y29uc3QgUmVuZGVyU3R5bGUqIG90aGVyU3R5bGUpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChzdHls
ZSgpLT53cml0aW5nTW9kZSgpKSB7CisgICAgc3dpdGNoIChvdGhlclN0eWxlID8gb3RoZXJTdHls
ZS0+d3JpdGluZ01vZGUoKSA6IHN0eWxlKCktPndyaXRpbmdNb2RlKCkpIHsKICAgICBjYXNlIFRv
cFRvQm90dG9tV3JpdGluZ01vZGU6CiAgICAgICAgIHJldHVybiBtX21hcmdpblRvcDsKICAgICBj
YXNlIEJvdHRvbVRvVG9wV3JpdGluZ01vZGU6CkBAIC0xMDIsOSArMTAyLDkgQEAgTGF5b3V0VW5p
dCBSZW5kZXJCb3g6Om1hcmdpbkJlZm9yZSgpIGNvbgogICAgIHJldHVybiBtX21hcmdpblRvcDsK
IH0KIAotTGF5b3V0VW5pdCBSZW5kZXJCb3g6Om1hcmdpbkFmdGVyKCkgY29uc3QKK0xheW91dFVu
aXQgUmVuZGVyQm94OjptYXJnaW5BZnRlcihjb25zdCBSZW5kZXJTdHlsZSogb3RoZXJTdHlsZSkg
Y29uc3QKIHsKLSAgICBzd2l0Y2ggKHN0eWxlKCktPndyaXRpbmdNb2RlKCkpIHsKKyAgICBzd2l0
Y2ggKG90aGVyU3R5bGUgPyBvdGhlclN0eWxlLT53cml0aW5nTW9kZSgpIDogc3R5bGUoKS0+d3Jp
dGluZ01vZGUoKSkgewogICAgIGNhc2UgVG9wVG9Cb3R0b21Xcml0aW5nTW9kZToKICAgICAgICAg
cmV0dXJuIG1fbWFyZ2luQm90dG9tOwogICAgIGNhc2UgQm90dG9tVG9Ub3BXcml0aW5nTW9kZToK
QEAgLTExOCw1MyArMTE4LDU3IEBAIExheW91dFVuaXQgUmVuZGVyQm94OjptYXJnaW5BZnRlcigp
IGNvbnMKICAgICByZXR1cm4gbV9tYXJnaW5Cb3R0b207CiB9CiAKLUxheW91dFVuaXQgUmVuZGVy
Qm94OjptYXJnaW5TdGFydCgpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckJveDo6bWFyZ2luU3Rh
cnQoY29uc3QgUmVuZGVyU3R5bGUqIG90aGVyU3R5bGUpIGNvbnN0CiB7Ci0gICAgaWYgKGlzSG9y
aXpvbnRhbFdyaXRpbmdNb2RlKCkpCi0gICAgICAgIHJldHVybiBzdHlsZSgpLT5pc0xlZnRUb1Jp
Z2h0RGlyZWN0aW9uKCkgPyBtX21hcmdpbkxlZnQgOiBtX21hcmdpblJpZ2h0OwotICAgIHJldHVy
biBzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBtX21hcmdpblRvcCA6IG1fbWFy
Z2luQm90dG9tOworICAgIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZVRvVXNlID0gb3RoZXJTdHls
ZSA/IG90aGVyU3R5bGUgOiBzdHlsZSgpOworICAgIGlmIChzdHlsZVRvVXNlLT5pc0hvcml6b250
YWxXcml0aW5nTW9kZSgpKQorICAgICAgICByZXR1cm4gc3R5bGVUb1VzZS0+aXNMZWZ0VG9SaWdo
dERpcmVjdGlvbigpID8gbV9tYXJnaW5MZWZ0IDogbV9tYXJnaW5SaWdodDsKKyAgICByZXR1cm4g
c3R5bGVUb1VzZS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gbV9tYXJnaW5Ub3AgOiBtX21h
cmdpbkJvdHRvbTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJCb3g6Om1hcmdpbkVuZCgpIGNvbnN0
CitMYXlvdXRVbml0IFJlbmRlckJveDo6bWFyZ2luRW5kKGNvbnN0IFJlbmRlclN0eWxlKiBvdGhl
clN0eWxlKSBjb25zdAogewotICAgIGlmIChpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQotICAg
ICAgICByZXR1cm4gc3R5bGUoKS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gbV9tYXJnaW5S
aWdodCA6IG1fbWFyZ2luTGVmdDsKLSAgICByZXR1cm4gc3R5bGUoKS0+aXNMZWZ0VG9SaWdodERp
cmVjdGlvbigpID8gbV9tYXJnaW5Cb3R0b20gOiBtX21hcmdpblRvcDsKKyAgICBjb25zdCBSZW5k
ZXJTdHlsZSogc3R5bGVUb1VzZSA9IG90aGVyU3R5bGUgPyBvdGhlclN0eWxlIDogc3R5bGUoKTsK
KyAgICBpZiAoc3R5bGVUb1VzZS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKKyAgICAgICAg
cmV0dXJuIHN0eWxlVG9Vc2UtPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IG1fbWFyZ2luUmln
aHQgOiBtX21hcmdpbkxlZnQ7CisgICAgcmV0dXJuIHN0eWxlVG9Vc2UtPmlzTGVmdFRvUmlnaHRE
aXJlY3Rpb24oKSA/IG1fbWFyZ2luQm90dG9tIDogbV9tYXJnaW5Ub3A7CiB9CiAKLXZvaWQgUmVu
ZGVyQm94OjpzZXRNYXJnaW5TdGFydChMYXlvdXRVbml0IG1hcmdpbikKK3ZvaWQgUmVuZGVyQm94
OjpzZXRNYXJnaW5TdGFydChMYXlvdXRVbml0IG1hcmdpbiwgY29uc3QgUmVuZGVyU3R5bGUqIG90
aGVyU3R5bGUpCiB7Ci0gICAgaWYgKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpIHsKLSAgICAg
ICAgaWYgKHN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSkKKyAgICBjb25zdCBSZW5k
ZXJTdHlsZSogc3R5bGVUb1VzZSA9IG90aGVyU3R5bGUgPyBvdGhlclN0eWxlIDogc3R5bGUoKTsK
KyAgICBpZiAoc3R5bGVUb1VzZS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkgeworICAgICAg
ICBpZiAoc3R5bGVUb1VzZS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKQogICAgICAgICAgICAg
bV9tYXJnaW5MZWZ0ID0gbWFyZ2luOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX21hcmdp
blJpZ2h0ID0gbWFyZ2luOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChzdHlsZSgpLT5pc0xl
ZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCisgICAgICAgIGlmIChzdHlsZVRvVXNlLT5pc0xlZnRUb1Jp
Z2h0RGlyZWN0aW9uKCkpCiAgICAgICAgICAgICBtX21hcmdpblRvcCA9IG1hcmdpbjsKICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgbV9tYXJnaW5Cb3R0b20gPSBtYXJnaW47CiAgICAgfQogfQog
Ci12b2lkIFJlbmRlckJveDo6c2V0TWFyZ2luRW5kKExheW91dFVuaXQgbWFyZ2luKQordm9pZCBS
ZW5kZXJCb3g6OnNldE1hcmdpbkVuZChMYXlvdXRVbml0IG1hcmdpbiwgY29uc3QgUmVuZGVyU3R5
bGUqIG90aGVyU3R5bGUpCiB7Ci0gICAgaWYgKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpIHsK
LSAgICAgICAgaWYgKHN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSkKKyAgICBjb25z
dCBSZW5kZXJTdHlsZSogc3R5bGVUb1VzZSA9IG90aGVyU3R5bGUgPyBvdGhlclN0eWxlIDogc3R5
bGUoKTsKKyAgICBpZiAoc3R5bGVUb1VzZS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkgewor
ICAgICAgICBpZiAoc3R5bGVUb1VzZS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKQogICAgICAg
ICAgICAgbV9tYXJnaW5SaWdodCA9IG1hcmdpbjsKICAgICAgICAgZWxzZQogICAgICAgICAgICAg
bV9tYXJnaW5MZWZ0ID0gbWFyZ2luOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChzdHlsZSgp
LT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCisgICAgICAgIGlmIChzdHlsZVRvVXNlLT5pc0xl
ZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCiAgICAgICAgICAgICBtX21hcmdpbkJvdHRvbSA9IG1hcmdp
bjsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9tYXJnaW5Ub3AgPSBtYXJnaW47CiAgICAg
fQogfQogCi12b2lkIFJlbmRlckJveDo6c2V0TWFyZ2luQmVmb3JlKExheW91dFVuaXQgbWFyZ2lu
KQordm9pZCBSZW5kZXJCb3g6OnNldE1hcmdpbkJlZm9yZShMYXlvdXRVbml0IG1hcmdpbiwgY29u
c3QgUmVuZGVyU3R5bGUqIG90aGVyU3R5bGUpCiB7Ci0gICAgc3dpdGNoIChzdHlsZSgpLT53cml0
aW5nTW9kZSgpKSB7CisgICAgc3dpdGNoIChvdGhlclN0eWxlID8gb3RoZXJTdHlsZS0+d3JpdGlu
Z01vZGUoKSA6IHN0eWxlKCktPndyaXRpbmdNb2RlKCkpIHsKICAgICBjYXNlIFRvcFRvQm90dG9t
V3JpdGluZ01vZGU6CiAgICAgICAgIG1fbWFyZ2luVG9wID0gbWFyZ2luOwogICAgICAgICBicmVh
azsKQEAgLTE4MCw5ICsxODQsOSBAQCB2b2lkIFJlbmRlckJveDo6c2V0TWFyZ2luQmVmb3JlKExh
eW91dFVuCiAgICAgfQogfQogCi12b2lkIFJlbmRlckJveDo6c2V0TWFyZ2luQWZ0ZXIoTGF5b3V0
VW5pdCBtYXJnaW4pCit2b2lkIFJlbmRlckJveDo6c2V0TWFyZ2luQWZ0ZXIoTGF5b3V0VW5pdCBt
YXJnaW4sIGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlclN0eWxlKQogewotICAgIHN3aXRjaCAoc3R5
bGUoKS0+d3JpdGluZ01vZGUoKSkgeworICAgIHN3aXRjaCAob3RoZXJTdHlsZSA/IG90aGVyU3R5
bGUtPndyaXRpbmdNb2RlKCkgOiBzdHlsZSgpLT53cml0aW5nTW9kZSgpKSB7CiAgICAgY2FzZSBU
b3BUb0JvdHRvbVdyaXRpbmdNb2RlOgogICAgICAgICBtX21hcmdpbkJvdHRvbSA9IG1hcmdpbjsK
ICAgICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCShy
ZXZpc2lvbiAxMTc3OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTIyOSwxNCArMjI5LDE0IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dE1hcmdpbkJvdHRvbShMYXlvdXRVbml0IG1hcmdpbikgeyBtX21hcmdpbkJvdHRvbSA9IG1hcmdp
bjsgfQogICAgIHZvaWQgc2V0TWFyZ2luTGVmdChMYXlvdXRVbml0IG1hcmdpbikgeyBtX21hcmdp
bkxlZnQgPSBtYXJnaW47IH0KICAgICB2b2lkIHNldE1hcmdpblJpZ2h0KExheW91dFVuaXQgbWFy
Z2luKSB7IG1fbWFyZ2luUmlnaHQgPSBtYXJnaW47IH0KLSAgICB2aXJ0dWFsIExheW91dFVuaXQg
bWFyZ2luQmVmb3JlKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpbkFmdGVy
KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpblN0YXJ0KCkgY29uc3Q7Ci0g
ICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpbkVuZCgpIGNvbnN0OwotICAgIHZvaWQgc2V0TWFy
Z2luU3RhcnQoTGF5b3V0VW5pdCk7Ci0gICAgdm9pZCBzZXRNYXJnaW5FbmQoTGF5b3V0VW5pdCk7
Ci0gICAgdm9pZCBzZXRNYXJnaW5CZWZvcmUoTGF5b3V0VW5pdCk7Ci0gICAgdm9pZCBzZXRNYXJn
aW5BZnRlcihMYXlvdXRVbml0KTsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luQmVmb3Jl
KGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlclN0eWxlID0gMCkgY29uc3Q7CisgICAgdmlydHVhbCBM
YXlvdXRVbml0IG1hcmdpbkFmdGVyKGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlclN0eWxlID0gMCkg
Y29uc3Q7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpblN0YXJ0KGNvbnN0IFJlbmRlclN0
eWxlKiBvdGhlclN0eWxlID0gMCkgY29uc3Q7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdp
bkVuZChjb25zdCBSZW5kZXJTdHlsZSogb3RoZXJTdHlsZSA9IDApIGNvbnN0OworICAgIHZvaWQg
c2V0TWFyZ2luU3RhcnQoTGF5b3V0VW5pdCwgY29uc3QgUmVuZGVyU3R5bGUqIG90aGVyU3R5bGUg
PSAwKTsKKyAgICB2b2lkIHNldE1hcmdpbkVuZChMYXlvdXRVbml0LCBjb25zdCBSZW5kZXJTdHls
ZSogb3RoZXJTdHlsZSA9IDApOworICAgIHZvaWQgc2V0TWFyZ2luQmVmb3JlKExheW91dFVuaXQs
IGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlclN0eWxlID0gMCk7CisgICAgdm9pZCBzZXRNYXJnaW5B
ZnRlcihMYXlvdXRVbml0LCBjb25zdCBSZW5kZXJTdHlsZSogb3RoZXJTdHlsZSA9IDApOwogCiAg
ICAgLy8gVGhlIGZvbGxvd2luZyBmaXZlIGZ1bmN0aW9ucyBhcmUgdXNlZCB0byBpbXBsZW1lbnQg
Y29sbGFwc2luZyBtYXJnaW5zLgogICAgIC8vIEFsbCBvYmplY3RzIGtub3cgdGhlaXIgbWF4aW1h
bCBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgbWFyZ2lucy4gIFRoZQpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgJKHJldmlzaW9uIDExNzc5
NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xMzAsMTAgKzEzMCwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBM
YXlvdXRVbml0IG1hcmdpbkJvdHRvbSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIExheW91dFVu
aXQgbWFyZ2luTGVmdCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2lu
UmlnaHQoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpbkJlZm9yZSgp
IGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luQWZ0ZXIoKSBjb25zdCA9
IDA7Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpblN0YXJ0KCkgY29uc3QgPSAwOwotICAg
IHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5FbmQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBM
YXlvdXRVbml0IG1hcmdpbkJlZm9yZShjb25zdCBSZW5kZXJTdHlsZSogb3RoZXJTdHlsZSA9IDAp
IGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luQWZ0ZXIoY29uc3QgUmVu
ZGVyU3R5bGUqIG90aGVyU3R5bGUgPSAwKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBMYXlvdXRV
bml0IG1hcmdpblN0YXJ0KGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlclN0eWxlID0gMCkgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5FbmQoY29uc3QgUmVuZGVyU3R5bGUq
IG90aGVyU3R5bGUgPSAwKSBjb25zdCA9IDA7CiAgICAgTGF5b3V0VW5pdCBtYXJnaW5IZWlnaHQo
KSBjb25zdCB7IHJldHVybiBtYXJnaW5Ub3AoKSArIG1hcmdpbkJvdHRvbSgpOyB9CiAgICAgTGF5
b3V0VW5pdCBtYXJnaW5XaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1hcmdpbkxlZnQoKSArIG1hcmdp
blJpZ2h0KCk7IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGlu
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGlu
ZS5jcHAJKHJldmlzaW9uIDExNzc5NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJJbmxpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OTQsMjQgKzY5NCwyNCBAQCBMYXlvdXRV
bml0IFJlbmRlcklubGluZTo6bWFyZ2luQm90dG9tKCkgCiAgICAgcmV0dXJuIGNvbXB1dGVNYXJn
aW4odGhpcywgc3R5bGUoKS0+bWFyZ2luQm90dG9tKCkpOwogfQogCi1MYXlvdXRVbml0IFJlbmRl
cklubGluZTo6bWFyZ2luU3RhcnQoKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJJbmxpbmU6Om1h
cmdpblN0YXJ0KGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlclN0eWxlKSBjb25zdAogewotICAgIHJl
dHVybiBjb21wdXRlTWFyZ2luKHRoaXMsIHN0eWxlKCktPm1hcmdpblN0YXJ0KCkpOworICAgIHJl
dHVybiBjb21wdXRlTWFyZ2luKHRoaXMsIHN0eWxlKCktPm1hcmdpblN0YXJ0VXNpbmcob3RoZXJT
dHlsZSA/IG90aGVyU3R5bGUgOiBzdHlsZSgpKSk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVySW5s
aW5lOjptYXJnaW5FbmQoKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJJbmxpbmU6Om1hcmdpbkVu
ZChjb25zdCBSZW5kZXJTdHlsZSogb3RoZXJTdHlsZSkgY29uc3QKIHsKLSAgICByZXR1cm4gY29t
cHV0ZU1hcmdpbih0aGlzLCBzdHlsZSgpLT5tYXJnaW5FbmQoKSk7CisgICAgcmV0dXJuIGNvbXB1
dGVNYXJnaW4odGhpcywgc3R5bGUoKS0+bWFyZ2luRW5kVXNpbmcob3RoZXJTdHlsZSA/IG90aGVy
U3R5bGUgOiBzdHlsZSgpKSk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVySW5saW5lOjptYXJnaW5C
ZWZvcmUoKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJJbmxpbmU6Om1hcmdpbkJlZm9yZShjb25z
dCBSZW5kZXJTdHlsZSogb3RoZXJTdHlsZSkgY29uc3QKIHsKLSAgICByZXR1cm4gY29tcHV0ZU1h
cmdpbih0aGlzLCBzdHlsZSgpLT5tYXJnaW5CZWZvcmUoKSk7CisgICAgcmV0dXJuIGNvbXB1dGVN
YXJnaW4odGhpcywgc3R5bGUoKS0+bWFyZ2luQmVmb3JlVXNpbmcob3RoZXJTdHlsZSA/IG90aGVy
U3R5bGUgOiBzdHlsZSgpKSk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVySW5saW5lOjptYXJnaW5B
ZnRlcigpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlcklubGluZTo6bWFyZ2luQWZ0ZXIoY29uc3Qg
UmVuZGVyU3R5bGUqIG90aGVyU3R5bGUpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGNvbXB1dGVNYXJn
aW4odGhpcywgc3R5bGUoKS0+bWFyZ2luQWZ0ZXIoKSk7CisgICAgcmV0dXJuIGNvbXB1dGVNYXJn
aW4odGhpcywgc3R5bGUoKS0+bWFyZ2luQWZ0ZXJVc2luZyhvdGhlclN0eWxlID8gb3RoZXJTdHls
ZSA6IHN0eWxlKCkpKTsKIH0KIAogY29uc3QgY2hhciogUmVuZGVySW5saW5lOjpyZW5kZXJOYW1l
KCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgJKHJl
dmlzaW9uIDExNzc5NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUu
aAkod29ya2luZyBjb3B5KQpAQCAtNDEsMTAgKzQxLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IExheW91dFVuaXQgbWFyZ2luUmlnaHQoKSBjb25zdDsKICAgICB2aXJ0dWFsIExheW91dFVuaXQg
bWFyZ2luVG9wKCkgY29uc3Q7CiAgICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpbkJvdHRvbSgp
IGNvbnN0OwotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5CZWZvcmUoKSBjb25zdDsKLSAg
ICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luQWZ0ZXIoKSBjb25zdDsKLSAgICB2aXJ0dWFsIExh
eW91dFVuaXQgbWFyZ2luU3RhcnQoKSBjb25zdDsKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFy
Z2luRW5kKCkgY29uc3Q7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpbkJlZm9yZShjb25z
dCBSZW5kZXJTdHlsZSogb3RoZXJTdHlsZSA9IDApIGNvbnN0OworICAgIHZpcnR1YWwgTGF5b3V0
VW5pdCBtYXJnaW5BZnRlcihjb25zdCBSZW5kZXJTdHlsZSogb3RoZXJTdHlsZSA9IDApIGNvbnN0
OworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5TdGFydChjb25zdCBSZW5kZXJTdHlsZSog
b3RoZXJTdHlsZSA9IDApIGNvbnN0OworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5FbmQo
Y29uc3QgUmVuZGVyU3R5bGUqIG90aGVyU3R5bGUgPSAwKSBjb25zdDsKIAogICAgIHZpcnR1YWwg
dm9pZCBhYnNvbHV0ZVJlY3RzKFZlY3RvcjxJbnRSZWN0PiYsIGNvbnN0IExheW91dFBvaW50JiBh
Y2N1bXVsYXRlZE9mZnNldCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGFic29sdXRlUXVhZHMo
VmVjdG9yPEZsb2F0UXVhZD4mLCBib29sKiB3YXNGaXhlZCkgY29uc3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143219</attachid>
            <date>2012-05-22 01:12:31 -0700</date>
            <delta_ts>2012-05-22 02:38:39 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-87040-20120522011231.patch</filename>
            <type>text/plain</type>
            <size>18129</size>
            <attacher name="Emil A Eklund">eae</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNzg5MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTA1LTIyICBFbWlsIEEg
RWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4KKworICAgICAgICBDaGFuZ2UgUmVuZGVyQmxvY2sg
dG8gdXNlciBSZW5kZXJCb3gvUmVuZGVySW5saW5lIHdyaXRpbmcgbW9kZSBsb2dpYworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODcwNDAKKworICAgICAg
ICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KKworICAgICAgICBSZW1vdmUgdW5uZWNlc3Nhcnkg
d3JpdGluZyBtb2RlIGxvZ2ljIGluIFJlbmRlckJsb2NrIGFuZCB1c2UgdGhlCisgICAgICAgIGlt
cGxlbWVudGF0aW9uIGluIFJlbmRlckJveCBhbmQgUmVuZGVySW5saW5lIGluc3RlYWQuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLCBubyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjptYXJnaW5CZWZvcmVGb3JDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9j
azo6bWFyZ2luQWZ0ZXJGb3JDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
bWFyZ2luU3RhcnRGb3JDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bWFy
Z2luRW5kRm9yQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnNldE1hcmdp
blN0YXJ0Rm9yQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnNldE1hcmdp
bkVuZEZvckNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpzZXRNYXJnaW5C
ZWZvcmVGb3JDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6c2V0TWFyZ2lu
QWZ0ZXJGb3JDaGlsZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6Om1hcmdpbkJlZm9yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3g6Om1hcmdpbkFmdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6
bWFyZ2luU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjptYXJnaW5FbmQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzZXRNYXJnaW5TdGFydCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCb3g6OnNldE1hcmdpbkVuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCb3g6OnNldE1hcmdpbkJlZm9yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnNl
dE1hcmdpbkFmdGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAg
IChSZW5kZXJCb3gpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5o
OgorICAgICAgICAoUmVuZGVyQm94TW9kZWxPYmplY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJJbmxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjptYXJnaW5T
dGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6Om1hcmdpbkVuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6Om1hcmdpbkJlZm9yZSk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJJbmxpbmU6Om1hcmdpbkFmdGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVySW5saW5lLmg6CisgICAgICAgIChSZW5kZXJJbmxpbmUpOgorCiAyMDEyLTA1LTIxICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gQWRk
IGluaXRhbCBtZWRpYUNvbnRyb2xzRWZsZnVsbHNjcmVlbi5jc3MgZm9yIGZ1bGxzY3JlZW4gY29u
dHJvbCBVSQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCShy
ZXZpc2lvbiAxMTc4OTMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MDM4LDExOCArNzAzOCw2IEBAIExheW91dFVuaXQgUmVu
ZGVyQmxvY2s6OmNvbGxhcHNlZE1hcmdpbkEKICAgICByZXR1cm4gbWFyZ2luQWZ0ZXJGb3JDaGls
ZChjaGlsZCk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyQmxvY2s6Om1hcmdpbkJlZm9yZUZvckNo
aWxkKGNvbnN0IFJlbmRlckJveE1vZGVsT2JqZWN0KiBjaGlsZCkgY29uc3QKLXsKLSAgICBzd2l0
Y2ggKHN0eWxlKCktPndyaXRpbmdNb2RlKCkpIHsKLSAgICBjYXNlIFRvcFRvQm90dG9tV3JpdGlu
Z01vZGU6Ci0gICAgICAgIHJldHVybiBjaGlsZC0+bWFyZ2luVG9wKCk7Ci0gICAgY2FzZSBCb3R0
b21Ub1RvcFdyaXRpbmdNb2RlOgotICAgICAgICByZXR1cm4gY2hpbGQtPm1hcmdpbkJvdHRvbSgp
OwotICAgIGNhc2UgTGVmdFRvUmlnaHRXcml0aW5nTW9kZToKLSAgICAgICAgcmV0dXJuIGNoaWxk
LT5tYXJnaW5MZWZ0KCk7Ci0gICAgY2FzZSBSaWdodFRvTGVmdFdyaXRpbmdNb2RlOgotICAgICAg
ICByZXR1cm4gY2hpbGQtPm1hcmdpblJpZ2h0KCk7Ci0gICAgfQotICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgIHJldHVybiBjaGlsZC0+bWFyZ2luVG9wKCk7Ci19Ci0KLUxheW91dFVuaXQg
UmVuZGVyQmxvY2s6Om1hcmdpbkFmdGVyRm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94TW9kZWxPYmpl
Y3QqIGNoaWxkKSBjb25zdAotewotICAgIHN3aXRjaCAoc3R5bGUoKS0+d3JpdGluZ01vZGUoKSkg
ewotICAgIGNhc2UgVG9wVG9Cb3R0b21Xcml0aW5nTW9kZToKLSAgICAgICAgcmV0dXJuIGNoaWxk
LT5tYXJnaW5Cb3R0b20oKTsKLSAgICBjYXNlIEJvdHRvbVRvVG9wV3JpdGluZ01vZGU6Ci0gICAg
ICAgIHJldHVybiBjaGlsZC0+bWFyZ2luVG9wKCk7Ci0gICAgY2FzZSBMZWZ0VG9SaWdodFdyaXRp
bmdNb2RlOgotICAgICAgICByZXR1cm4gY2hpbGQtPm1hcmdpblJpZ2h0KCk7Ci0gICAgY2FzZSBS
aWdodFRvTGVmdFdyaXRpbmdNb2RlOgotICAgICAgICByZXR1cm4gY2hpbGQtPm1hcmdpbkxlZnQo
KTsKLSAgICB9Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIGNoaWxkLT5t
YXJnaW5Cb3R0b20oKTsKLX0KLQotTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6bWFyZ2luU3RhcnRG
b3JDaGlsZChjb25zdCBSZW5kZXJCb3hNb2RlbE9iamVjdCogY2hpbGQpIGNvbnN0Ci17Ci0gICAg
aWYgKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCi0gICAgICAgIHJldHVybiBzdHlsZSgpLT5p
c0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBjaGlsZC0+bWFyZ2luTGVmdCgpIDogY2hpbGQtPm1h
cmdpblJpZ2h0KCk7Ci0gICAgcmV0dXJuIHN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24o
KSA/IGNoaWxkLT5tYXJnaW5Ub3AoKSA6IGNoaWxkLT5tYXJnaW5Cb3R0b20oKTsKLX0KLQotTGF5
b3V0VW5pdCBSZW5kZXJCbG9jazo6bWFyZ2luRW5kRm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94TW9k
ZWxPYmplY3QqIGNoaWxkKSBjb25zdAotewotICAgIGlmIChpc0hvcml6b250YWxXcml0aW5nTW9k
ZSgpKQotICAgICAgICByZXR1cm4gc3R5bGUoKS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8g
Y2hpbGQtPm1hcmdpblJpZ2h0KCkgOiBjaGlsZC0+bWFyZ2luTGVmdCgpOwotICAgIHJldHVybiBz
dHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBjaGlsZC0+bWFyZ2luQm90dG9tKCkg
OiBjaGlsZC0+bWFyZ2luVG9wKCk7Ci19Ci0KLXZvaWQgUmVuZGVyQmxvY2s6OnNldE1hcmdpblN0
YXJ0Rm9yQ2hpbGQoUmVuZGVyQm94KiBjaGlsZCwgTGF5b3V0VW5pdCBtYXJnaW4pCi17Ci0gICAg
aWYgKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpIHsKLSAgICAgICAgaWYgKHN0eWxlKCktPmlz
TGVmdFRvUmlnaHREaXJlY3Rpb24oKSkKLSAgICAgICAgICAgIGNoaWxkLT5zZXRNYXJnaW5MZWZ0
KG1hcmdpbik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNoaWxkLT5zZXRNYXJnaW5SaWdo
dChtYXJnaW4pOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChzdHlsZSgpLT5pc0xlZnRUb1Jp
Z2h0RGlyZWN0aW9uKCkpCi0gICAgICAgICAgICBjaGlsZC0+c2V0TWFyZ2luVG9wKG1hcmdpbik7
Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNoaWxkLT5zZXRNYXJnaW5Cb3R0b20obWFyZ2lu
KTsKLSAgICB9Ci19Ci0KLXZvaWQgUmVuZGVyQmxvY2s6OnNldE1hcmdpbkVuZEZvckNoaWxkKFJl
bmRlckJveCogY2hpbGQsIExheW91dFVuaXQgbWFyZ2luKQotewotICAgIGlmIChpc0hvcml6b250
YWxXcml0aW5nTW9kZSgpKSB7Ci0gICAgICAgIGlmIChzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGly
ZWN0aW9uKCkpCi0gICAgICAgICAgICBjaGlsZC0+c2V0TWFyZ2luUmlnaHQobWFyZ2luKTsKLSAg
ICAgICAgZWxzZQotICAgICAgICAgICAgY2hpbGQtPnNldE1hcmdpbkxlZnQobWFyZ2luKTsKLSAg
ICB9IGVsc2UgewotICAgICAgICBpZiAoc3R5bGUoKS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigp
KQotICAgICAgICAgICAgY2hpbGQtPnNldE1hcmdpbkJvdHRvbShtYXJnaW4pOwotICAgICAgICBl
bHNlCi0gICAgICAgICAgICBjaGlsZC0+c2V0TWFyZ2luVG9wKG1hcmdpbik7Ci0gICAgfQotfQot
Ci12b2lkIFJlbmRlckJsb2NrOjpzZXRNYXJnaW5CZWZvcmVGb3JDaGlsZChSZW5kZXJCb3gqIGNo
aWxkLCBMYXlvdXRVbml0IG1hcmdpbikKLXsKLSAgICBzd2l0Y2ggKHN0eWxlKCktPndyaXRpbmdN
b2RlKCkpIHsKLSAgICBjYXNlIFRvcFRvQm90dG9tV3JpdGluZ01vZGU6Ci0gICAgICAgIGNoaWxk
LT5zZXRNYXJnaW5Ub3AobWFyZ2luKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBCb3R0b21U
b1RvcFdyaXRpbmdNb2RlOgotICAgICAgICBjaGlsZC0+c2V0TWFyZ2luQm90dG9tKG1hcmdpbik7
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgTGVmdFRvUmlnaHRXcml0aW5nTW9kZToKLSAgICAg
ICAgY2hpbGQtPnNldE1hcmdpbkxlZnQobWFyZ2luKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBSaWdodFRvTGVmdFdyaXRpbmdNb2RlOgotICAgICAgICBjaGlsZC0+c2V0TWFyZ2luUmlnaHQo
bWFyZ2luKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotfQotCi12b2lkIFJlbmRlckJsb2NrOjpz
ZXRNYXJnaW5BZnRlckZvckNoaWxkKFJlbmRlckJveCogY2hpbGQsIExheW91dFVuaXQgbWFyZ2lu
KQotewotICAgIHN3aXRjaCAoc3R5bGUoKS0+d3JpdGluZ01vZGUoKSkgewotICAgIGNhc2UgVG9w
VG9Cb3R0b21Xcml0aW5nTW9kZToKLSAgICAgICAgY2hpbGQtPnNldE1hcmdpbkJvdHRvbShtYXJn
aW4pOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEJvdHRvbVRvVG9wV3JpdGluZ01vZGU6Ci0g
ICAgICAgIGNoaWxkLT5zZXRNYXJnaW5Ub3AobWFyZ2luKTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBMZWZ0VG9SaWdodFdyaXRpbmdNb2RlOgotICAgICAgICBjaGlsZC0+c2V0TWFyZ2luUmln
aHQobWFyZ2luKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBSaWdodFRvTGVmdFdyaXRpbmdN
b2RlOgotICAgICAgICBjaGlsZC0+c2V0TWFyZ2luTGVmdChtYXJnaW4pOwotICAgICAgICBicmVh
azsKLSAgICB9Ci19Ci0KIFJlbmRlckJsb2NrOjpNYXJnaW5WYWx1ZXMgUmVuZGVyQmxvY2s6Om1h
cmdpblZhbHVlc0ZvckNoaWxkKFJlbmRlckJveCogY2hpbGQpCiB7CiAgICAgTGF5b3V0VW5pdCBj
aGlsZEJlZm9yZVBvc2l0aXZlID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5oCShyZXZpc2lvbiAxMTc4OTMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMjg0LDE0ICsyODQsMTQgQEAgcHVibGlj
OgogICAgIExheW91dFVuaXQgbG9naWNhbFRvcEZvckNoaWxkKGNvbnN0IFJlbmRlckJveCogY2hp
bGQpIHsgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBjaGlsZC0+eSgpIDogY2hp
bGQtPngoKTsgfQogICAgIHZvaWQgc2V0TG9naWNhbExlZnRGb3JDaGlsZChSZW5kZXJCb3gqIGNo
aWxkLCBMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0LCBBcHBseUxheW91dERlbHRhTW9kZSA9IERvTm90
QXBwbHlMYXlvdXREZWx0YSk7CiAgICAgdm9pZCBzZXRMb2dpY2FsVG9wRm9yQ2hpbGQoUmVuZGVy
Qm94KiBjaGlsZCwgTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBBcHBseUxheW91dERlbHRhTW9kZSA9
IERvTm90QXBwbHlMYXlvdXREZWx0YSk7Ci0gICAgTGF5b3V0VW5pdCBtYXJnaW5CZWZvcmVGb3JD
aGlsZChjb25zdCBSZW5kZXJCb3hNb2RlbE9iamVjdCogY2hpbGQpIGNvbnN0OwotICAgIExheW91
dFVuaXQgbWFyZ2luQWZ0ZXJGb3JDaGlsZChjb25zdCBSZW5kZXJCb3hNb2RlbE9iamVjdCogY2hp
bGQpIGNvbnN0OwotICAgIExheW91dFVuaXQgbWFyZ2luU3RhcnRGb3JDaGlsZChjb25zdCBSZW5k
ZXJCb3hNb2RlbE9iamVjdCogY2hpbGQpIGNvbnN0OwotICAgIExheW91dFVuaXQgbWFyZ2luRW5k
Rm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3QqIGNoaWxkKSBjb25zdDsKLSAgICB2
b2lkIHNldE1hcmdpblN0YXJ0Rm9yQ2hpbGQoUmVuZGVyQm94KiBjaGlsZCwgTGF5b3V0VW5pdCk7
Ci0gICAgdm9pZCBzZXRNYXJnaW5FbmRGb3JDaGlsZChSZW5kZXJCb3gqIGNoaWxkLCBMYXlvdXRV
bml0KTsKLSAgICB2b2lkIHNldE1hcmdpbkJlZm9yZUZvckNoaWxkKFJlbmRlckJveCogY2hpbGQs
IExheW91dFVuaXQpOwotICAgIHZvaWQgc2V0TWFyZ2luQWZ0ZXJGb3JDaGlsZChSZW5kZXJCb3gq
IGNoaWxkLCBMYXlvdXRVbml0KTsKKyAgICBMYXlvdXRVbml0IG1hcmdpbkJlZm9yZUZvckNoaWxk
KGNvbnN0IFJlbmRlckJveE1vZGVsT2JqZWN0KiBjaGlsZCkgY29uc3QgeyByZXR1cm4gY2hpbGQt
Pm1hcmdpbkJlZm9yZShzdHlsZSgpKTsgfQorICAgIExheW91dFVuaXQgbWFyZ2luQWZ0ZXJGb3JD
aGlsZChjb25zdCBSZW5kZXJCb3hNb2RlbE9iamVjdCogY2hpbGQpIGNvbnN0IHsgcmV0dXJuIGNo
aWxkLT5tYXJnaW5BZnRlcihzdHlsZSgpKTsgfQorICAgIExheW91dFVuaXQgbWFyZ2luU3RhcnRG
b3JDaGlsZChjb25zdCBSZW5kZXJCb3hNb2RlbE9iamVjdCogY2hpbGQpIGNvbnN0IHsgcmV0dXJu
IGNoaWxkLT5tYXJnaW5TdGFydChzdHlsZSgpKTsgfQorICAgIExheW91dFVuaXQgbWFyZ2luRW5k
Rm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3QqIGNoaWxkKSBjb25zdCB7IHJldHVy
biBjaGlsZC0+bWFyZ2luRW5kKHN0eWxlKCkpOyB9CisgICAgdm9pZCBzZXRNYXJnaW5TdGFydEZv
ckNoaWxkKFJlbmRlckJveCogY2hpbGQsIExheW91dFVuaXQgdmFsdWUpIHsgY2hpbGQtPnNldE1h
cmdpblN0YXJ0KHZhbHVlLCBzdHlsZSgpKTsgfQorICAgIHZvaWQgc2V0TWFyZ2luRW5kRm9yQ2hp
bGQoUmVuZGVyQm94KiBjaGlsZCwgTGF5b3V0VW5pdCB2YWx1ZSkgeyBjaGlsZC0+c2V0TWFyZ2lu
RW5kKHZhbHVlLCBzdHlsZSgpKTsgfQorICAgIHZvaWQgc2V0TWFyZ2luQmVmb3JlRm9yQ2hpbGQo
UmVuZGVyQm94KiBjaGlsZCwgTGF5b3V0VW5pdCB2YWx1ZSkgeyBjaGlsZC0+c2V0TWFyZ2luQmVm
b3JlKHZhbHVlLCBzdHlsZSgpKTsgfQorICAgIHZvaWQgc2V0TWFyZ2luQWZ0ZXJGb3JDaGlsZChS
ZW5kZXJCb3gqIGNoaWxkLCBMYXlvdXRVbml0IHZhbHVlKSB7IGNoaWxkLT5zZXRNYXJnaW5BZnRl
cih2YWx1ZSwgc3R5bGUoKSk7IH0KICAgICBMYXlvdXRVbml0IGNvbGxhcHNlZE1hcmdpbkJlZm9y
ZUZvckNoaWxkKGNvbnN0IFJlbmRlckJveCogY2hpbGQpIGNvbnN0OwogICAgIExheW91dFVuaXQg
Y29sbGFwc2VkTWFyZ2luQWZ0ZXJGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gqIGNoaWxkKSBjb25z
dDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAJKHJldmlzaW9u
IDExNzg5MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC04Niw5ICs4Niw5IEBAIFJlbmRlckJveDo6flJlbmRlckJveCgpCiB7CiB9
CiAKLUxheW91dFVuaXQgUmVuZGVyQm94OjptYXJnaW5CZWZvcmUoKSBjb25zdAorTGF5b3V0VW5p
dCBSZW5kZXJCb3g6Om1hcmdpbkJlZm9yZShjb25zdCBSZW5kZXJTdHlsZSogb3ZlcnJpZGVTdHls
ZSkgY29uc3QKIHsKLSAgICBzd2l0Y2ggKHN0eWxlKCktPndyaXRpbmdNb2RlKCkpIHsKKyAgICBz
d2l0Y2ggKG90aGVyU3R5bGUgPyBvdGhlclN0eWxlLT53cml0aW5nTW9kZSgpIDogc3R5bGUoKS0+
d3JpdGluZ01vZGUoKSkgewogICAgIGNhc2UgVG9wVG9Cb3R0b21Xcml0aW5nTW9kZToKICAgICAg
ICAgcmV0dXJuIG1fbWFyZ2luVG9wOwogICAgIGNhc2UgQm90dG9tVG9Ub3BXcml0aW5nTW9kZToK
QEAgLTEwMiw5ICsxMDIsOSBAQCBMYXlvdXRVbml0IFJlbmRlckJveDo6bWFyZ2luQmVmb3JlKCkg
Y29uCiAgICAgcmV0dXJuIG1fbWFyZ2luVG9wOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckJveDo6
bWFyZ2luQWZ0ZXIoKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJCb3g6Om1hcmdpbkFmdGVyKGNv
bnN0IFJlbmRlclN0eWxlKiBvdmVycmlkZVN0eWxlKSBjb25zdAogewotICAgIHN3aXRjaCAoc3R5
bGUoKS0+d3JpdGluZ01vZGUoKSkgeworICAgIHN3aXRjaCAob3RoZXJTdHlsZSA/IG90aGVyU3R5
bGUtPndyaXRpbmdNb2RlKCkgOiBzdHlsZSgpLT53cml0aW5nTW9kZSgpKSB7CiAgICAgY2FzZSBU
b3BUb0JvdHRvbVdyaXRpbmdNb2RlOgogICAgICAgICByZXR1cm4gbV9tYXJnaW5Cb3R0b207CiAg
ICAgY2FzZSBCb3R0b21Ub1RvcFdyaXRpbmdNb2RlOgpAQCAtMTE4LDUzICsxMTgsNTcgQEAgTGF5
b3V0VW5pdCBSZW5kZXJCb3g6Om1hcmdpbkFmdGVyKCkgY29ucwogICAgIHJldHVybiBtX21hcmdp
bkJvdHRvbTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJCb3g6Om1hcmdpblN0YXJ0KCkgY29uc3QK
K0xheW91dFVuaXQgUmVuZGVyQm94OjptYXJnaW5TdGFydChjb25zdCBSZW5kZXJTdHlsZSogb3Zl
cnJpZGVTdHlsZSkgY29uc3QKIHsKLSAgICBpZiAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkK
LSAgICAgICAgcmV0dXJuIHN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IG1fbWFy
Z2luTGVmdCA6IG1fbWFyZ2luUmlnaHQ7Ci0gICAgcmV0dXJuIHN0eWxlKCktPmlzTGVmdFRvUmln
aHREaXJlY3Rpb24oKSA/IG1fbWFyZ2luVG9wIDogbV9tYXJnaW5Cb3R0b207CisgICAgY29uc3Qg
UmVuZGVyU3R5bGUqIHN0eWxlVG9Vc2UgPSBvdGhlclN0eWxlID8gb3RoZXJTdHlsZSA6IHN0eWxl
KCk7CisgICAgaWYgKHN0eWxlVG9Vc2UtPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCisgICAg
ICAgIHJldHVybiBzdHlsZVRvVXNlLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBtX21hcmdp
bkxlZnQgOiBtX21hcmdpblJpZ2h0OworICAgIHJldHVybiBzdHlsZVRvVXNlLT5pc0xlZnRUb1Jp
Z2h0RGlyZWN0aW9uKCkgPyBtX21hcmdpblRvcCA6IG1fbWFyZ2luQm90dG9tOwogfQogCi1MYXlv
dXRVbml0IFJlbmRlckJveDo6bWFyZ2luRW5kKCkgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyQm94
OjptYXJnaW5FbmQoY29uc3QgUmVuZGVyU3R5bGUqIG92ZXJyaWRlU3R5bGUpIGNvbnN0CiB7Ci0g
ICAgaWYgKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCi0gICAgICAgIHJldHVybiBzdHlsZSgp
LT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBtX21hcmdpblJpZ2h0IDogbV9tYXJnaW5MZWZ0
OwotICAgIHJldHVybiBzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBtX21hcmdp
bkJvdHRvbSA6IG1fbWFyZ2luVG9wOworICAgIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZVRvVXNl
ID0gb3RoZXJTdHlsZSA/IG90aGVyU3R5bGUgOiBzdHlsZSgpOworICAgIGlmIChzdHlsZVRvVXNl
LT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQorICAgICAgICByZXR1cm4gc3R5bGVUb1VzZS0+
aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gbV9tYXJnaW5SaWdodCA6IG1fbWFyZ2luTGVmdDsK
KyAgICByZXR1cm4gc3R5bGVUb1VzZS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gbV9tYXJn
aW5Cb3R0b20gOiBtX21hcmdpblRvcDsKIH0KIAotdm9pZCBSZW5kZXJCb3g6OnNldE1hcmdpblN0
YXJ0KExheW91dFVuaXQgbWFyZ2luKQordm9pZCBSZW5kZXJCb3g6OnNldE1hcmdpblN0YXJ0KExh
eW91dFVuaXQgbWFyZ2luLCBjb25zdCBSZW5kZXJTdHlsZSogb3ZlcnJpZGVTdHlsZSkKIHsKLSAg
ICBpZiAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkgewotICAgICAgICBpZiAoc3R5bGUoKS0+
aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKQorICAgIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZVRv
VXNlID0gb3RoZXJTdHlsZSA/IG90aGVyU3R5bGUgOiBzdHlsZSgpOworICAgIGlmIChzdHlsZVRv
VXNlLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpKSB7CisgICAgICAgIGlmIChzdHlsZVRvVXNl
LT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCiAgICAgICAgICAgICBtX21hcmdpbkxlZnQgPSBt
YXJnaW47CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fbWFyZ2luUmlnaHQgPSBtYXJnaW47
CiAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKHN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rp
b24oKSkKKyAgICAgICAgaWYgKHN0eWxlVG9Vc2UtPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSkK
ICAgICAgICAgICAgIG1fbWFyZ2luVG9wID0gbWFyZ2luOwogICAgICAgICBlbHNlCiAgICAgICAg
ICAgICBtX21hcmdpbkJvdHRvbSA9IG1hcmdpbjsKICAgICB9CiB9CiAKLXZvaWQgUmVuZGVyQm94
OjpzZXRNYXJnaW5FbmQoTGF5b3V0VW5pdCBtYXJnaW4pCit2b2lkIFJlbmRlckJveDo6c2V0TWFy
Z2luRW5kKExheW91dFVuaXQgbWFyZ2luLCBjb25zdCBSZW5kZXJTdHlsZSogb3ZlcnJpZGVTdHls
ZSkKIHsKLSAgICBpZiAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkgewotICAgICAgICBpZiAo
c3R5bGUoKS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKQorICAgIGNvbnN0IFJlbmRlclN0eWxl
KiBzdHlsZVRvVXNlID0gb3RoZXJTdHlsZSA/IG90aGVyU3R5bGUgOiBzdHlsZSgpOworICAgIGlm
IChzdHlsZVRvVXNlLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpKSB7CisgICAgICAgIGlmIChz
dHlsZVRvVXNlLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCiAgICAgICAgICAgICBtX21hcmdp
blJpZ2h0ID0gbWFyZ2luOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX21hcmdpbkxlZnQg
PSBtYXJnaW47CiAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKHN0eWxlKCktPmlzTGVmdFRvUmln
aHREaXJlY3Rpb24oKSkKKyAgICAgICAgaWYgKHN0eWxlVG9Vc2UtPmlzTGVmdFRvUmlnaHREaXJl
Y3Rpb24oKSkKICAgICAgICAgICAgIG1fbWFyZ2luQm90dG9tID0gbWFyZ2luOwogICAgICAgICBl
bHNlCiAgICAgICAgICAgICBtX21hcmdpblRvcCA9IG1hcmdpbjsKICAgICB9CiB9CiAKLXZvaWQg
UmVuZGVyQm94OjpzZXRNYXJnaW5CZWZvcmUoTGF5b3V0VW5pdCBtYXJnaW4pCit2b2lkIFJlbmRl
ckJveDo6c2V0TWFyZ2luQmVmb3JlKExheW91dFVuaXQgbWFyZ2luLCBjb25zdCBSZW5kZXJTdHls
ZSogb3ZlcnJpZGVTdHlsZSkKIHsKLSAgICBzd2l0Y2ggKHN0eWxlKCktPndyaXRpbmdNb2RlKCkp
IHsKKyAgICBzd2l0Y2ggKG90aGVyU3R5bGUgPyBvdGhlclN0eWxlLT53cml0aW5nTW9kZSgpIDog
c3R5bGUoKS0+d3JpdGluZ01vZGUoKSkgewogICAgIGNhc2UgVG9wVG9Cb3R0b21Xcml0aW5nTW9k
ZToKICAgICAgICAgbV9tYXJnaW5Ub3AgPSBtYXJnaW47CiAgICAgICAgIGJyZWFrOwpAQCAtMTgw
LDkgKzE4NCw5IEBAIHZvaWQgUmVuZGVyQm94OjpzZXRNYXJnaW5CZWZvcmUoTGF5b3V0VW4KICAg
ICB9CiB9CiAKLXZvaWQgUmVuZGVyQm94OjpzZXRNYXJnaW5BZnRlcihMYXlvdXRVbml0IG1hcmdp
bikKK3ZvaWQgUmVuZGVyQm94OjpzZXRNYXJnaW5BZnRlcihMYXlvdXRVbml0IG1hcmdpbiwgY29u
c3QgUmVuZGVyU3R5bGUqIG92ZXJyaWRlU3R5bGUpCiB7Ci0gICAgc3dpdGNoIChzdHlsZSgpLT53
cml0aW5nTW9kZSgpKSB7CisgICAgc3dpdGNoIChvdGhlclN0eWxlID8gb3RoZXJTdHlsZS0+d3Jp
dGluZ01vZGUoKSA6IHN0eWxlKCktPndyaXRpbmdNb2RlKCkpIHsKICAgICBjYXNlIFRvcFRvQm90
dG9tV3JpdGluZ01vZGU6CiAgICAgICAgIG1fbWFyZ2luQm90dG9tID0gbWFyZ2luOwogICAgICAg
ICBicmVhazsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgJKHJldmlzaW9u
IDExNzg5MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjI5LDE0ICsyMjksMTQgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TWFyZ2lu
Qm90dG9tKExheW91dFVuaXQgbWFyZ2luKSB7IG1fbWFyZ2luQm90dG9tID0gbWFyZ2luOyB9CiAg
ICAgdm9pZCBzZXRNYXJnaW5MZWZ0KExheW91dFVuaXQgbWFyZ2luKSB7IG1fbWFyZ2luTGVmdCA9
IG1hcmdpbjsgfQogICAgIHZvaWQgc2V0TWFyZ2luUmlnaHQoTGF5b3V0VW5pdCBtYXJnaW4pIHsg
bV9tYXJnaW5SaWdodCA9IG1hcmdpbjsgfQotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5C
ZWZvcmUoKSBjb25zdDsKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luQWZ0ZXIoKSBjb25z
dDsKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luU3RhcnQoKSBjb25zdDsKLSAgICB2aXJ0
dWFsIExheW91dFVuaXQgbWFyZ2luRW5kKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRNYXJnaW5TdGFy
dChMYXlvdXRVbml0KTsKLSAgICB2b2lkIHNldE1hcmdpbkVuZChMYXlvdXRVbml0KTsKLSAgICB2
b2lkIHNldE1hcmdpbkJlZm9yZShMYXlvdXRVbml0KTsKLSAgICB2b2lkIHNldE1hcmdpbkFmdGVy
KExheW91dFVuaXQpOworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5CZWZvcmUoY29uc3Qg
UmVuZGVyU3R5bGUqIG92ZXJyaWRlU3R5bGUgPSAwKSBjb25zdDsKKyAgICB2aXJ0dWFsIExheW91
dFVuaXQgbWFyZ2luQWZ0ZXIoY29uc3QgUmVuZGVyU3R5bGUqIG92ZXJyaWRlU3R5bGUgPSAwKSBj
b25zdDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luU3RhcnQoY29uc3QgUmVuZGVyU3R5
bGUqIG92ZXJyaWRlU3R5bGUgPSAwKSBjb25zdDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFy
Z2luRW5kKGNvbnN0IFJlbmRlclN0eWxlKiBvdmVycmlkZVN0eWxlID0gMCkgY29uc3Q7CisgICAg
dm9pZCBzZXRNYXJnaW5TdGFydChMYXlvdXRVbml0LCBjb25zdCBSZW5kZXJTdHlsZSogb3ZlcnJp
ZGVTdHlsZSA9IDApOworICAgIHZvaWQgc2V0TWFyZ2luRW5kKExheW91dFVuaXQsIGNvbnN0IFJl
bmRlclN0eWxlKiBvdmVycmlkZVN0eWxlID0gMCk7CisgICAgdm9pZCBzZXRNYXJnaW5CZWZvcmUo
TGF5b3V0VW5pdCwgY29uc3QgUmVuZGVyU3R5bGUqIG92ZXJyaWRlU3R5bGUgPSAwKTsKKyAgICB2
b2lkIHNldE1hcmdpbkFmdGVyKExheW91dFVuaXQsIGNvbnN0IFJlbmRlclN0eWxlKiBvdmVycmlk
ZVN0eWxlID0gMCk7CiAKICAgICAvLyBUaGUgZm9sbG93aW5nIGZpdmUgZnVuY3Rpb25zIGFyZSB1
c2VkIHRvIGltcGxlbWVudCBjb2xsYXBzaW5nIG1hcmdpbnMuCiAgICAgLy8gQWxsIG9iamVjdHMg
a25vdyB0aGVpciBtYXhpbWFsIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBtYXJnaW5zLiAgVGhlCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
aAkocmV2aXNpb24gMTE3ODkzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eE1vZGVsT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEzMCwxMCArMTMwLDEwIEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luQm90dG9tKCkgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5MZWZ0KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwg
TGF5b3V0VW5pdCBtYXJnaW5SaWdodCgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIExheW91dFVu
aXQgbWFyZ2luQmVmb3JlKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJn
aW5BZnRlcigpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luU3RhcnQo
KSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpbkVuZCgpIGNvbnN0ID0g
MDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luQmVmb3JlKGNvbnN0IFJlbmRlclN0eWxl
KiBvdGhlclN0eWxlID0gMCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJn
aW5BZnRlcihjb25zdCBSZW5kZXJTdHlsZSogb3RoZXJTdHlsZSA9IDApIGNvbnN0ID0gMDsKKyAg
ICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luU3RhcnQoY29uc3QgUmVuZGVyU3R5bGUqIG90aGVy
U3R5bGUgPSAwKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpbkVuZChj
b25zdCBSZW5kZXJTdHlsZSogb3RoZXJTdHlsZSA9IDApIGNvbnN0ID0gMDsKICAgICBMYXlvdXRV
bml0IG1hcmdpbkhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1hcmdpblRvcCgpICsgbWFyZ2luQm90
dG9tKCk7IH0KICAgICBMYXlvdXRVbml0IG1hcmdpbldpZHRoKCkgY29uc3QgeyByZXR1cm4gbWFy
Z2luTGVmdCgpICsgbWFyZ2luUmlnaHQoKTsgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySW5saW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySW5saW5lLmNwcAkocmV2aXNpb24gMTE3ODkzKQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY5NCwyNCAr
Njk0LDI0IEBAIExheW91dFVuaXQgUmVuZGVySW5saW5lOjptYXJnaW5Cb3R0b20oKSAKICAgICBy
ZXR1cm4gY29tcHV0ZU1hcmdpbih0aGlzLCBzdHlsZSgpLT5tYXJnaW5Cb3R0b20oKSk7CiB9CiAK
LUxheW91dFVuaXQgUmVuZGVySW5saW5lOjptYXJnaW5TdGFydCgpIGNvbnN0CitMYXlvdXRVbml0
IFJlbmRlcklubGluZTo6bWFyZ2luU3RhcnQoY29uc3QgUmVuZGVyU3R5bGUqIG90aGVyU3R5bGUp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIGNvbXB1dGVNYXJnaW4odGhpcywgc3R5bGUoKS0+bWFyZ2lu
U3RhcnQoKSk7CisgICAgcmV0dXJuIGNvbXB1dGVNYXJnaW4odGhpcywgc3R5bGUoKS0+bWFyZ2lu
U3RhcnRVc2luZyhvdGhlclN0eWxlID8gb3RoZXJTdHlsZSA6IHN0eWxlKCkpKTsKIH0KIAotTGF5
b3V0VW5pdCBSZW5kZXJJbmxpbmU6Om1hcmdpbkVuZCgpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRl
cklubGluZTo6bWFyZ2luRW5kKGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlclN0eWxlKSBjb25zdAog
ewotICAgIHJldHVybiBjb21wdXRlTWFyZ2luKHRoaXMsIHN0eWxlKCktPm1hcmdpbkVuZCgpKTsK
KyAgICByZXR1cm4gY29tcHV0ZU1hcmdpbih0aGlzLCBzdHlsZSgpLT5tYXJnaW5FbmRVc2luZyhv
dGhlclN0eWxlID8gb3RoZXJTdHlsZSA6IHN0eWxlKCkpKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5k
ZXJJbmxpbmU6Om1hcmdpbkJlZm9yZSgpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlcklubGluZTo6
bWFyZ2luQmVmb3JlKGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlclN0eWxlKSBjb25zdAogewotICAg
IHJldHVybiBjb21wdXRlTWFyZ2luKHRoaXMsIHN0eWxlKCktPm1hcmdpbkJlZm9yZSgpKTsKKyAg
ICByZXR1cm4gY29tcHV0ZU1hcmdpbih0aGlzLCBzdHlsZSgpLT5tYXJnaW5CZWZvcmVVc2luZyhv
dGhlclN0eWxlID8gb3RoZXJTdHlsZSA6IHN0eWxlKCkpKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5k
ZXJJbmxpbmU6Om1hcmdpbkFmdGVyKCkgY29uc3QKK0xheW91dFVuaXQgUmVuZGVySW5saW5lOjpt
YXJnaW5BZnRlcihjb25zdCBSZW5kZXJTdHlsZSogb3RoZXJTdHlsZSkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gY29tcHV0ZU1hcmdpbih0aGlzLCBzdHlsZSgpLT5tYXJnaW5BZnRlcigpKTsKKyAgICBy
ZXR1cm4gY29tcHV0ZU1hcmdpbih0aGlzLCBzdHlsZSgpLT5tYXJnaW5BZnRlclVzaW5nKG90aGVy
U3R5bGUgPyBvdGhlclN0eWxlIDogc3R5bGUoKSkpOwogfQogCiBjb25zdCBjaGFyKiBSZW5kZXJJ
bmxpbmU6OnJlbmRlck5hbWUoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlcklubGluZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJJbmxpbmUuaAkocmV2aXNpb24gMTE3ODkzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcklubGluZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSwxMCArNDEsMTAgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5SaWdodCgpIGNvbnN0OwogICAgIHZp
cnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5Ub3AoKSBjb25zdDsKICAgICB2aXJ0dWFsIExheW91dFVu
aXQgbWFyZ2luQm90dG9tKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpbkJl
Zm9yZSgpIGNvbnN0OwotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5BZnRlcigpIGNvbnN0
OwotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5TdGFydCgpIGNvbnN0OwotICAgIHZpcnR1
YWwgTGF5b3V0VW5pdCBtYXJnaW5FbmQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQg
bWFyZ2luQmVmb3JlKGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlclN0eWxlID0gMCkgY29uc3Q7Cisg
ICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpbkFmdGVyKGNvbnN0IFJlbmRlclN0eWxlKiBvdGhl
clN0eWxlID0gMCkgY29uc3Q7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpblN0YXJ0KGNv
bnN0IFJlbmRlclN0eWxlKiBvdGhlclN0eWxlID0gMCkgY29uc3Q7CisgICAgdmlydHVhbCBMYXlv
dXRVbml0IG1hcmdpbkVuZChjb25zdCBSZW5kZXJTdHlsZSogb3RoZXJTdHlsZSA9IDApIGNvbnN0
OwogCiAgICAgdmlydHVhbCB2b2lkIGFic29sdXRlUmVjdHMoVmVjdG9yPEludFJlY3Q+JiwgY29u
c3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdDsKICAgICB2aXJ0dWFsIHZv
aWQgYWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYsIGJvb2wqIHdhc0ZpeGVkKSBjb25z
dDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143243</attachid>
            <date>2012-05-22 02:38:43 -0700</date>
            <delta_ts>2012-05-22 04:15:34 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-87040-20120522023842.patch</filename>
            <type>text/plain</type>
            <size>18159</size>
            <attacher name="Emil A Eklund">eae</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNzkzNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTA1LTIyICBFbWlsIEEg
RWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4KKworICAgICAgICBDaGFuZ2UgUmVuZGVyQmxvY2sg
dG8gdXNlciBSZW5kZXJCb3gvUmVuZGVySW5saW5lIHdyaXRpbmcgbW9kZSBsb2dpYworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODcwNDAKKworICAgICAg
ICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KKworICAgICAgICBSZW1vdmUgdW5uZWNlc3Nhcnkg
d3JpdGluZyBtb2RlIGxvZ2ljIGluIFJlbmRlckJsb2NrIGFuZCB1c2UgdGhlCisgICAgICAgIGlt
cGxlbWVudGF0aW9uIGluIFJlbmRlckJveCBhbmQgUmVuZGVySW5saW5lIGluc3RlYWQuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLCBubyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjptYXJnaW5CZWZvcmVGb3JDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9j
azo6bWFyZ2luQWZ0ZXJGb3JDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
bWFyZ2luU3RhcnRGb3JDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bWFy
Z2luRW5kRm9yQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnNldE1hcmdp
blN0YXJ0Rm9yQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnNldE1hcmdp
bkVuZEZvckNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpzZXRNYXJnaW5C
ZWZvcmVGb3JDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6c2V0TWFyZ2lu
QWZ0ZXJGb3JDaGlsZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6Om1hcmdpbkJlZm9yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3g6Om1hcmdpbkFmdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6
bWFyZ2luU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjptYXJnaW5FbmQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzZXRNYXJnaW5TdGFydCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCb3g6OnNldE1hcmdpbkVuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCb3g6OnNldE1hcmdpbkJlZm9yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnNl
dE1hcmdpbkFmdGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAg
IChSZW5kZXJCb3gpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5o
OgorICAgICAgICAoUmVuZGVyQm94TW9kZWxPYmplY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJJbmxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjptYXJnaW5T
dGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6Om1hcmdpbkVuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6Om1hcmdpbkJlZm9yZSk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJJbmxpbmU6Om1hcmdpbkFmdGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVySW5saW5lLmg6CisgICAgICAgIChSZW5kZXJJbmxpbmUpOgorCiAyMDEyLTA1LTIyICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbVjhdIEFkZCBhbiBv
cHRpb25hbCAnaXNvbGF0ZScgYXJndW1lbnQgdG8gdGhyb3dUeXBlRXJyb3IoKQpJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCShyZXZpc2lvbiAxMTc5MzgpCisr
KyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC03MDM4LDExOCArNzAzOCw2IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2s6OmNvbGxhcHNl
ZE1hcmdpbkEKICAgICByZXR1cm4gbWFyZ2luQWZ0ZXJGb3JDaGlsZChjaGlsZCk7CiB9CiAKLUxh
eW91dFVuaXQgUmVuZGVyQmxvY2s6Om1hcmdpbkJlZm9yZUZvckNoaWxkKGNvbnN0IFJlbmRlckJv
eE1vZGVsT2JqZWN0KiBjaGlsZCkgY29uc3QKLXsKLSAgICBzd2l0Y2ggKHN0eWxlKCktPndyaXRp
bmdNb2RlKCkpIHsKLSAgICBjYXNlIFRvcFRvQm90dG9tV3JpdGluZ01vZGU6Ci0gICAgICAgIHJl
dHVybiBjaGlsZC0+bWFyZ2luVG9wKCk7Ci0gICAgY2FzZSBCb3R0b21Ub1RvcFdyaXRpbmdNb2Rl
OgotICAgICAgICByZXR1cm4gY2hpbGQtPm1hcmdpbkJvdHRvbSgpOwotICAgIGNhc2UgTGVmdFRv
UmlnaHRXcml0aW5nTW9kZToKLSAgICAgICAgcmV0dXJuIGNoaWxkLT5tYXJnaW5MZWZ0KCk7Ci0g
ICAgY2FzZSBSaWdodFRvTGVmdFdyaXRpbmdNb2RlOgotICAgICAgICByZXR1cm4gY2hpbGQtPm1h
cmdpblJpZ2h0KCk7Ci0gICAgfQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVy
biBjaGlsZC0+bWFyZ2luVG9wKCk7Ci19Ci0KLUxheW91dFVuaXQgUmVuZGVyQmxvY2s6Om1hcmdp
bkFmdGVyRm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3QqIGNoaWxkKSBjb25zdAot
ewotICAgIHN3aXRjaCAoc3R5bGUoKS0+d3JpdGluZ01vZGUoKSkgewotICAgIGNhc2UgVG9wVG9C
b3R0b21Xcml0aW5nTW9kZToKLSAgICAgICAgcmV0dXJuIGNoaWxkLT5tYXJnaW5Cb3R0b20oKTsK
LSAgICBjYXNlIEJvdHRvbVRvVG9wV3JpdGluZ01vZGU6Ci0gICAgICAgIHJldHVybiBjaGlsZC0+
bWFyZ2luVG9wKCk7Ci0gICAgY2FzZSBMZWZ0VG9SaWdodFdyaXRpbmdNb2RlOgotICAgICAgICBy
ZXR1cm4gY2hpbGQtPm1hcmdpblJpZ2h0KCk7Ci0gICAgY2FzZSBSaWdodFRvTGVmdFdyaXRpbmdN
b2RlOgotICAgICAgICByZXR1cm4gY2hpbGQtPm1hcmdpbkxlZnQoKTsKLSAgICB9Ci0gICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIGNoaWxkLT5tYXJnaW5Cb3R0b20oKTsKLX0K
LQotTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6bWFyZ2luU3RhcnRGb3JDaGlsZChjb25zdCBSZW5k
ZXJCb3hNb2RlbE9iamVjdCogY2hpbGQpIGNvbnN0Ci17Ci0gICAgaWYgKGlzSG9yaXpvbnRhbFdy
aXRpbmdNb2RlKCkpCi0gICAgICAgIHJldHVybiBzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0
aW9uKCkgPyBjaGlsZC0+bWFyZ2luTGVmdCgpIDogY2hpbGQtPm1hcmdpblJpZ2h0KCk7Ci0gICAg
cmV0dXJuIHN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IGNoaWxkLT5tYXJnaW5U
b3AoKSA6IGNoaWxkLT5tYXJnaW5Cb3R0b20oKTsKLX0KLQotTGF5b3V0VW5pdCBSZW5kZXJCbG9j
azo6bWFyZ2luRW5kRm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3QqIGNoaWxkKSBj
b25zdAotewotICAgIGlmIChpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQotICAgICAgICByZXR1
cm4gc3R5bGUoKS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gY2hpbGQtPm1hcmdpblJpZ2h0
KCkgOiBjaGlsZC0+bWFyZ2luTGVmdCgpOwotICAgIHJldHVybiBzdHlsZSgpLT5pc0xlZnRUb1Jp
Z2h0RGlyZWN0aW9uKCkgPyBjaGlsZC0+bWFyZ2luQm90dG9tKCkgOiBjaGlsZC0+bWFyZ2luVG9w
KCk7Ci19Ci0KLXZvaWQgUmVuZGVyQmxvY2s6OnNldE1hcmdpblN0YXJ0Rm9yQ2hpbGQoUmVuZGVy
Qm94KiBjaGlsZCwgTGF5b3V0VW5pdCBtYXJnaW4pCi17Ci0gICAgaWYgKGlzSG9yaXpvbnRhbFdy
aXRpbmdNb2RlKCkpIHsKLSAgICAgICAgaWYgKHN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rp
b24oKSkKLSAgICAgICAgICAgIGNoaWxkLT5zZXRNYXJnaW5MZWZ0KG1hcmdpbik7Ci0gICAgICAg
IGVsc2UKLSAgICAgICAgICAgIGNoaWxkLT5zZXRNYXJnaW5SaWdodChtYXJnaW4pOwotICAgIH0g
ZWxzZSB7Ci0gICAgICAgIGlmIChzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCi0g
ICAgICAgICAgICBjaGlsZC0+c2V0TWFyZ2luVG9wKG1hcmdpbik7Ci0gICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIGNoaWxkLT5zZXRNYXJnaW5Cb3R0b20obWFyZ2luKTsKLSAgICB9Ci19Ci0KLXZv
aWQgUmVuZGVyQmxvY2s6OnNldE1hcmdpbkVuZEZvckNoaWxkKFJlbmRlckJveCogY2hpbGQsIExh
eW91dFVuaXQgbWFyZ2luKQotewotICAgIGlmIChpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKSB7
Ci0gICAgICAgIGlmIChzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCi0gICAgICAg
ICAgICBjaGlsZC0+c2V0TWFyZ2luUmlnaHQobWFyZ2luKTsKLSAgICAgICAgZWxzZQotICAgICAg
ICAgICAgY2hpbGQtPnNldE1hcmdpbkxlZnQobWFyZ2luKTsKLSAgICB9IGVsc2UgewotICAgICAg
ICBpZiAoc3R5bGUoKS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKQotICAgICAgICAgICAgY2hp
bGQtPnNldE1hcmdpbkJvdHRvbShtYXJnaW4pOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBj
aGlsZC0+c2V0TWFyZ2luVG9wKG1hcmdpbik7Ci0gICAgfQotfQotCi12b2lkIFJlbmRlckJsb2Nr
OjpzZXRNYXJnaW5CZWZvcmVGb3JDaGlsZChSZW5kZXJCb3gqIGNoaWxkLCBMYXlvdXRVbml0IG1h
cmdpbikKLXsKLSAgICBzd2l0Y2ggKHN0eWxlKCktPndyaXRpbmdNb2RlKCkpIHsKLSAgICBjYXNl
IFRvcFRvQm90dG9tV3JpdGluZ01vZGU6Ci0gICAgICAgIGNoaWxkLT5zZXRNYXJnaW5Ub3AobWFy
Z2luKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBCb3R0b21Ub1RvcFdyaXRpbmdNb2RlOgot
ICAgICAgICBjaGlsZC0+c2V0TWFyZ2luQm90dG9tKG1hcmdpbik7Ci0gICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgTGVmdFRvUmlnaHRXcml0aW5nTW9kZToKLSAgICAgICAgY2hpbGQtPnNldE1hcmdp
bkxlZnQobWFyZ2luKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBSaWdodFRvTGVmdFdyaXRp
bmdNb2RlOgotICAgICAgICBjaGlsZC0+c2V0TWFyZ2luUmlnaHQobWFyZ2luKTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgfQotfQotCi12b2lkIFJlbmRlckJsb2NrOjpzZXRNYXJnaW5BZnRlckZvckNo
aWxkKFJlbmRlckJveCogY2hpbGQsIExheW91dFVuaXQgbWFyZ2luKQotewotICAgIHN3aXRjaCAo
c3R5bGUoKS0+d3JpdGluZ01vZGUoKSkgewotICAgIGNhc2UgVG9wVG9Cb3R0b21Xcml0aW5nTW9k
ZToKLSAgICAgICAgY2hpbGQtPnNldE1hcmdpbkJvdHRvbShtYXJnaW4pOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIEJvdHRvbVRvVG9wV3JpdGluZ01vZGU6Ci0gICAgICAgIGNoaWxkLT5zZXRN
YXJnaW5Ub3AobWFyZ2luKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBMZWZ0VG9SaWdodFdy
aXRpbmdNb2RlOgotICAgICAgICBjaGlsZC0+c2V0TWFyZ2luUmlnaHQobWFyZ2luKTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBSaWdodFRvTGVmdFdyaXRpbmdNb2RlOgotICAgICAgICBjaGls
ZC0+c2V0TWFyZ2luTGVmdChtYXJnaW4pOwotICAgICAgICBicmVhazsKLSAgICB9Ci19Ci0KIFJl
bmRlckJsb2NrOjpNYXJnaW5WYWx1ZXMgUmVuZGVyQmxvY2s6Om1hcmdpblZhbHVlc0ZvckNoaWxk
KFJlbmRlckJveCogY2hpbGQpCiB7CiAgICAgTGF5b3V0VW5pdCBjaGlsZEJlZm9yZVBvc2l0aXZl
ID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCShyZXZpc2lv
biAxMTc5MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAkod29y
a2luZyBjb3B5KQpAQCAtMjg0LDE0ICsyODQsMTQgQEAgcHVibGljOgogICAgIExheW91dFVuaXQg
bG9naWNhbFRvcEZvckNoaWxkKGNvbnN0IFJlbmRlckJveCogY2hpbGQpIHsgcmV0dXJuIGlzSG9y
aXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBjaGlsZC0+eSgpIDogY2hpbGQtPngoKTsgfQogICAgIHZv
aWQgc2V0TG9naWNhbExlZnRGb3JDaGlsZChSZW5kZXJCb3gqIGNoaWxkLCBMYXlvdXRVbml0IGxv
Z2ljYWxMZWZ0LCBBcHBseUxheW91dERlbHRhTW9kZSA9IERvTm90QXBwbHlMYXlvdXREZWx0YSk7
CiAgICAgdm9pZCBzZXRMb2dpY2FsVG9wRm9yQ2hpbGQoUmVuZGVyQm94KiBjaGlsZCwgTGF5b3V0
VW5pdCBsb2dpY2FsVG9wLCBBcHBseUxheW91dERlbHRhTW9kZSA9IERvTm90QXBwbHlMYXlvdXRE
ZWx0YSk7Ci0gICAgTGF5b3V0VW5pdCBtYXJnaW5CZWZvcmVGb3JDaGlsZChjb25zdCBSZW5kZXJC
b3hNb2RlbE9iamVjdCogY2hpbGQpIGNvbnN0OwotICAgIExheW91dFVuaXQgbWFyZ2luQWZ0ZXJG
b3JDaGlsZChjb25zdCBSZW5kZXJCb3hNb2RlbE9iamVjdCogY2hpbGQpIGNvbnN0OwotICAgIExh
eW91dFVuaXQgbWFyZ2luU3RhcnRGb3JDaGlsZChjb25zdCBSZW5kZXJCb3hNb2RlbE9iamVjdCog
Y2hpbGQpIGNvbnN0OwotICAgIExheW91dFVuaXQgbWFyZ2luRW5kRm9yQ2hpbGQoY29uc3QgUmVu
ZGVyQm94TW9kZWxPYmplY3QqIGNoaWxkKSBjb25zdDsKLSAgICB2b2lkIHNldE1hcmdpblN0YXJ0
Rm9yQ2hpbGQoUmVuZGVyQm94KiBjaGlsZCwgTGF5b3V0VW5pdCk7Ci0gICAgdm9pZCBzZXRNYXJn
aW5FbmRGb3JDaGlsZChSZW5kZXJCb3gqIGNoaWxkLCBMYXlvdXRVbml0KTsKLSAgICB2b2lkIHNl
dE1hcmdpbkJlZm9yZUZvckNoaWxkKFJlbmRlckJveCogY2hpbGQsIExheW91dFVuaXQpOwotICAg
IHZvaWQgc2V0TWFyZ2luQWZ0ZXJGb3JDaGlsZChSZW5kZXJCb3gqIGNoaWxkLCBMYXlvdXRVbml0
KTsKKyAgICBMYXlvdXRVbml0IG1hcmdpbkJlZm9yZUZvckNoaWxkKGNvbnN0IFJlbmRlckJveE1v
ZGVsT2JqZWN0KiBjaGlsZCkgY29uc3QgeyByZXR1cm4gY2hpbGQtPm1hcmdpbkJlZm9yZShzdHls
ZSgpKTsgfQorICAgIExheW91dFVuaXQgbWFyZ2luQWZ0ZXJGb3JDaGlsZChjb25zdCBSZW5kZXJC
b3hNb2RlbE9iamVjdCogY2hpbGQpIGNvbnN0IHsgcmV0dXJuIGNoaWxkLT5tYXJnaW5BZnRlcihz
dHlsZSgpKTsgfQorICAgIExheW91dFVuaXQgbWFyZ2luU3RhcnRGb3JDaGlsZChjb25zdCBSZW5k
ZXJCb3hNb2RlbE9iamVjdCogY2hpbGQpIGNvbnN0IHsgcmV0dXJuIGNoaWxkLT5tYXJnaW5TdGFy
dChzdHlsZSgpKTsgfQorICAgIExheW91dFVuaXQgbWFyZ2luRW5kRm9yQ2hpbGQoY29uc3QgUmVu
ZGVyQm94TW9kZWxPYmplY3QqIGNoaWxkKSBjb25zdCB7IHJldHVybiBjaGlsZC0+bWFyZ2luRW5k
KHN0eWxlKCkpOyB9CisgICAgdm9pZCBzZXRNYXJnaW5TdGFydEZvckNoaWxkKFJlbmRlckJveCog
Y2hpbGQsIExheW91dFVuaXQgdmFsdWUpIHsgY2hpbGQtPnNldE1hcmdpblN0YXJ0KHZhbHVlLCBz
dHlsZSgpKTsgfQorICAgIHZvaWQgc2V0TWFyZ2luRW5kRm9yQ2hpbGQoUmVuZGVyQm94KiBjaGls
ZCwgTGF5b3V0VW5pdCB2YWx1ZSkgeyBjaGlsZC0+c2V0TWFyZ2luRW5kKHZhbHVlLCBzdHlsZSgp
KTsgfQorICAgIHZvaWQgc2V0TWFyZ2luQmVmb3JlRm9yQ2hpbGQoUmVuZGVyQm94KiBjaGlsZCwg
TGF5b3V0VW5pdCB2YWx1ZSkgeyBjaGlsZC0+c2V0TWFyZ2luQmVmb3JlKHZhbHVlLCBzdHlsZSgp
KTsgfQorICAgIHZvaWQgc2V0TWFyZ2luQWZ0ZXJGb3JDaGlsZChSZW5kZXJCb3gqIGNoaWxkLCBM
YXlvdXRVbml0IHZhbHVlKSB7IGNoaWxkLT5zZXRNYXJnaW5BZnRlcih2YWx1ZSwgc3R5bGUoKSk7
IH0KICAgICBMYXlvdXRVbml0IGNvbGxhcHNlZE1hcmdpbkJlZm9yZUZvckNoaWxkKGNvbnN0IFJl
bmRlckJveCogY2hpbGQpIGNvbnN0OwogICAgIExheW91dFVuaXQgY29sbGFwc2VkTWFyZ2luQWZ0
ZXJGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gqIGNoaWxkKSBjb25zdDsKIApJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAJKHJldmlzaW9uIDExNzkzOCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Niw5
ICs4Niw5IEBAIFJlbmRlckJveDo6flJlbmRlckJveCgpCiB7CiB9CiAKLUxheW91dFVuaXQgUmVu
ZGVyQm94OjptYXJnaW5CZWZvcmUoKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJCb3g6Om1hcmdp
bkJlZm9yZShjb25zdCBSZW5kZXJTdHlsZSogb3ZlcnJpZGVTdHlsZSkgY29uc3QKIHsKLSAgICBz
d2l0Y2ggKHN0eWxlKCktPndyaXRpbmdNb2RlKCkpIHsKKyAgICBzd2l0Y2ggKG92ZXJyaWRlU3R5
bGUgPyBvdmVycmlkZVN0eWxlLT53cml0aW5nTW9kZSgpIDogc3R5bGUoKS0+d3JpdGluZ01vZGUo
KSkgewogICAgIGNhc2UgVG9wVG9Cb3R0b21Xcml0aW5nTW9kZToKICAgICAgICAgcmV0dXJuIG1f
bWFyZ2luVG9wOwogICAgIGNhc2UgQm90dG9tVG9Ub3BXcml0aW5nTW9kZToKQEAgLTEwMiw5ICsx
MDIsOSBAQCBMYXlvdXRVbml0IFJlbmRlckJveDo6bWFyZ2luQmVmb3JlKCkgY29uCiAgICAgcmV0
dXJuIG1fbWFyZ2luVG9wOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckJveDo6bWFyZ2luQWZ0ZXIo
KSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJCb3g6Om1hcmdpbkFmdGVyKGNvbnN0IFJlbmRlclN0
eWxlKiBvdmVycmlkZVN0eWxlKSBjb25zdAogewotICAgIHN3aXRjaCAoc3R5bGUoKS0+d3JpdGlu
Z01vZGUoKSkgeworICAgIHN3aXRjaCAob3ZlcnJpZGVTdHlsZSA/IG92ZXJyaWRlU3R5bGUtPndy
aXRpbmdNb2RlKCkgOiBzdHlsZSgpLT53cml0aW5nTW9kZSgpKSB7CiAgICAgY2FzZSBUb3BUb0Jv
dHRvbVdyaXRpbmdNb2RlOgogICAgICAgICByZXR1cm4gbV9tYXJnaW5Cb3R0b207CiAgICAgY2Fz
ZSBCb3R0b21Ub1RvcFdyaXRpbmdNb2RlOgpAQCAtMTE4LDUzICsxMTgsNTcgQEAgTGF5b3V0VW5p
dCBSZW5kZXJCb3g6Om1hcmdpbkFmdGVyKCkgY29ucwogICAgIHJldHVybiBtX21hcmdpbkJvdHRv
bTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJCb3g6Om1hcmdpblN0YXJ0KCkgY29uc3QKK0xheW91
dFVuaXQgUmVuZGVyQm94OjptYXJnaW5TdGFydChjb25zdCBSZW5kZXJTdHlsZSogb3ZlcnJpZGVT
dHlsZSkgY29uc3QKIHsKLSAgICBpZiAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKLSAgICAg
ICAgcmV0dXJuIHN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IG1fbWFyZ2luTGVm
dCA6IG1fbWFyZ2luUmlnaHQ7Ci0gICAgcmV0dXJuIHN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJl
Y3Rpb24oKSA/IG1fbWFyZ2luVG9wIDogbV9tYXJnaW5Cb3R0b207CisgICAgY29uc3QgUmVuZGVy
U3R5bGUqIHN0eWxlVG9Vc2UgPSBvdmVycmlkZVN0eWxlID8gb3ZlcnJpZGVTdHlsZSA6IHN0eWxl
KCk7CisgICAgaWYgKHN0eWxlVG9Vc2UtPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCisgICAg
ICAgIHJldHVybiBzdHlsZVRvVXNlLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBtX21hcmdp
bkxlZnQgOiBtX21hcmdpblJpZ2h0OworICAgIHJldHVybiBzdHlsZVRvVXNlLT5pc0xlZnRUb1Jp
Z2h0RGlyZWN0aW9uKCkgPyBtX21hcmdpblRvcCA6IG1fbWFyZ2luQm90dG9tOwogfQogCi1MYXlv
dXRVbml0IFJlbmRlckJveDo6bWFyZ2luRW5kKCkgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyQm94
OjptYXJnaW5FbmQoY29uc3QgUmVuZGVyU3R5bGUqIG92ZXJyaWRlU3R5bGUpIGNvbnN0CiB7Ci0g
ICAgaWYgKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCi0gICAgICAgIHJldHVybiBzdHlsZSgp
LT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBtX21hcmdpblJpZ2h0IDogbV9tYXJnaW5MZWZ0
OwotICAgIHJldHVybiBzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBtX21hcmdp
bkJvdHRvbSA6IG1fbWFyZ2luVG9wOworICAgIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZVRvVXNl
ID0gb3ZlcnJpZGVTdHlsZSA/IG92ZXJyaWRlU3R5bGUgOiBzdHlsZSgpOworICAgIGlmIChzdHls
ZVRvVXNlLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQorICAgICAgICByZXR1cm4gc3R5bGVU
b1VzZS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gbV9tYXJnaW5SaWdodCA6IG1fbWFyZ2lu
TGVmdDsKKyAgICByZXR1cm4gc3R5bGVUb1VzZS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8g
bV9tYXJnaW5Cb3R0b20gOiBtX21hcmdpblRvcDsKIH0KIAotdm9pZCBSZW5kZXJCb3g6OnNldE1h
cmdpblN0YXJ0KExheW91dFVuaXQgbWFyZ2luKQordm9pZCBSZW5kZXJCb3g6OnNldE1hcmdpblN0
YXJ0KExheW91dFVuaXQgbWFyZ2luLCBjb25zdCBSZW5kZXJTdHlsZSogb3ZlcnJpZGVTdHlsZSkK
IHsKLSAgICBpZiAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkgewotICAgICAgICBpZiAoc3R5
bGUoKS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKQorICAgIGNvbnN0IFJlbmRlclN0eWxlKiBz
dHlsZVRvVXNlID0gb3ZlcnJpZGVTdHlsZSA/IG92ZXJyaWRlU3R5bGUgOiBzdHlsZSgpOworICAg
IGlmIChzdHlsZVRvVXNlLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpKSB7CisgICAgICAgIGlm
IChzdHlsZVRvVXNlLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCiAgICAgICAgICAgICBtX21h
cmdpbkxlZnQgPSBtYXJnaW47CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fbWFyZ2luUmln
aHQgPSBtYXJnaW47CiAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKHN0eWxlKCktPmlzTGVmdFRv
UmlnaHREaXJlY3Rpb24oKSkKKyAgICAgICAgaWYgKHN0eWxlVG9Vc2UtPmlzTGVmdFRvUmlnaHRE
aXJlY3Rpb24oKSkKICAgICAgICAgICAgIG1fbWFyZ2luVG9wID0gbWFyZ2luOwogICAgICAgICBl
bHNlCiAgICAgICAgICAgICBtX21hcmdpbkJvdHRvbSA9IG1hcmdpbjsKICAgICB9CiB9CiAKLXZv
aWQgUmVuZGVyQm94OjpzZXRNYXJnaW5FbmQoTGF5b3V0VW5pdCBtYXJnaW4pCit2b2lkIFJlbmRl
ckJveDo6c2V0TWFyZ2luRW5kKExheW91dFVuaXQgbWFyZ2luLCBjb25zdCBSZW5kZXJTdHlsZSog
b3ZlcnJpZGVTdHlsZSkKIHsKLSAgICBpZiAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkgewot
ICAgICAgICBpZiAoc3R5bGUoKS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKQorICAgIGNvbnN0
IFJlbmRlclN0eWxlKiBzdHlsZVRvVXNlID0gb3ZlcnJpZGVTdHlsZSA/IG92ZXJyaWRlU3R5bGUg
OiBzdHlsZSgpOworICAgIGlmIChzdHlsZVRvVXNlLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgp
KSB7CisgICAgICAgIGlmIChzdHlsZVRvVXNlLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCiAg
ICAgICAgICAgICBtX21hcmdpblJpZ2h0ID0gbWFyZ2luOwogICAgICAgICBlbHNlCiAgICAgICAg
ICAgICBtX21hcmdpbkxlZnQgPSBtYXJnaW47CiAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKHN0
eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSkKKyAgICAgICAgaWYgKHN0eWxlVG9Vc2Ut
PmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSkKICAgICAgICAgICAgIG1fbWFyZ2luQm90dG9tID0g
bWFyZ2luOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX21hcmdpblRvcCA9IG1hcmdpbjsK
ICAgICB9CiB9CiAKLXZvaWQgUmVuZGVyQm94OjpzZXRNYXJnaW5CZWZvcmUoTGF5b3V0VW5pdCBt
YXJnaW4pCit2b2lkIFJlbmRlckJveDo6c2V0TWFyZ2luQmVmb3JlKExheW91dFVuaXQgbWFyZ2lu
LCBjb25zdCBSZW5kZXJTdHlsZSogb3ZlcnJpZGVTdHlsZSkKIHsKLSAgICBzd2l0Y2ggKHN0eWxl
KCktPndyaXRpbmdNb2RlKCkpIHsKKyAgICBzd2l0Y2ggKG92ZXJyaWRlU3R5bGUgPyBvdmVycmlk
ZVN0eWxlLT53cml0aW5nTW9kZSgpIDogc3R5bGUoKS0+d3JpdGluZ01vZGUoKSkgewogICAgIGNh
c2UgVG9wVG9Cb3R0b21Xcml0aW5nTW9kZToKICAgICAgICAgbV9tYXJnaW5Ub3AgPSBtYXJnaW47
CiAgICAgICAgIGJyZWFrOwpAQCAtMTgwLDkgKzE4NCw5IEBAIHZvaWQgUmVuZGVyQm94OjpzZXRN
YXJnaW5CZWZvcmUoTGF5b3V0VW4KICAgICB9CiB9CiAKLXZvaWQgUmVuZGVyQm94OjpzZXRNYXJn
aW5BZnRlcihMYXlvdXRVbml0IG1hcmdpbikKK3ZvaWQgUmVuZGVyQm94OjpzZXRNYXJnaW5BZnRl
cihMYXlvdXRVbml0IG1hcmdpbiwgY29uc3QgUmVuZGVyU3R5bGUqIG92ZXJyaWRlU3R5bGUpCiB7
Ci0gICAgc3dpdGNoIChzdHlsZSgpLT53cml0aW5nTW9kZSgpKSB7CisgICAgc3dpdGNoIChvdmVy
cmlkZVN0eWxlID8gb3ZlcnJpZGVTdHlsZS0+d3JpdGluZ01vZGUoKSA6IHN0eWxlKCktPndyaXRp
bmdNb2RlKCkpIHsKICAgICBjYXNlIFRvcFRvQm90dG9tV3JpdGluZ01vZGU6CiAgICAgICAgIG1f
bWFyZ2luQm90dG9tID0gbWFyZ2luOwogICAgICAgICBicmVhazsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmgJKHJldmlzaW9uIDExNzkzOCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guaAkod29ya2luZyBjb3B5KQpAQCAtMjI5LDE0ICsyMjksMTQg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0TWFyZ2luQm90dG9tKExheW91dFVuaXQgbWFyZ2luKSB7
IG1fbWFyZ2luQm90dG9tID0gbWFyZ2luOyB9CiAgICAgdm9pZCBzZXRNYXJnaW5MZWZ0KExheW91
dFVuaXQgbWFyZ2luKSB7IG1fbWFyZ2luTGVmdCA9IG1hcmdpbjsgfQogICAgIHZvaWQgc2V0TWFy
Z2luUmlnaHQoTGF5b3V0VW5pdCBtYXJnaW4pIHsgbV9tYXJnaW5SaWdodCA9IG1hcmdpbjsgfQot
ICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5CZWZvcmUoKSBjb25zdDsKLSAgICB2aXJ0dWFs
IExheW91dFVuaXQgbWFyZ2luQWZ0ZXIoKSBjb25zdDsKLSAgICB2aXJ0dWFsIExheW91dFVuaXQg
bWFyZ2luU3RhcnQoKSBjb25zdDsKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luRW5kKCkg
Y29uc3Q7Ci0gICAgdm9pZCBzZXRNYXJnaW5TdGFydChMYXlvdXRVbml0KTsKLSAgICB2b2lkIHNl
dE1hcmdpbkVuZChMYXlvdXRVbml0KTsKLSAgICB2b2lkIHNldE1hcmdpbkJlZm9yZShMYXlvdXRV
bml0KTsKLSAgICB2b2lkIHNldE1hcmdpbkFmdGVyKExheW91dFVuaXQpOworICAgIHZpcnR1YWwg
TGF5b3V0VW5pdCBtYXJnaW5CZWZvcmUoY29uc3QgUmVuZGVyU3R5bGUqIG92ZXJyaWRlU3R5bGUg
PSAwKSBjb25zdDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luQWZ0ZXIoY29uc3QgUmVu
ZGVyU3R5bGUqIG92ZXJyaWRlU3R5bGUgPSAwKSBjb25zdDsKKyAgICB2aXJ0dWFsIExheW91dFVu
aXQgbWFyZ2luU3RhcnQoY29uc3QgUmVuZGVyU3R5bGUqIG92ZXJyaWRlU3R5bGUgPSAwKSBjb25z
dDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luRW5kKGNvbnN0IFJlbmRlclN0eWxlKiBv
dmVycmlkZVN0eWxlID0gMCkgY29uc3Q7CisgICAgdm9pZCBzZXRNYXJnaW5TdGFydChMYXlvdXRV
bml0LCBjb25zdCBSZW5kZXJTdHlsZSogb3ZlcnJpZGVTdHlsZSA9IDApOworICAgIHZvaWQgc2V0
TWFyZ2luRW5kKExheW91dFVuaXQsIGNvbnN0IFJlbmRlclN0eWxlKiBvdmVycmlkZVN0eWxlID0g
MCk7CisgICAgdm9pZCBzZXRNYXJnaW5CZWZvcmUoTGF5b3V0VW5pdCwgY29uc3QgUmVuZGVyU3R5
bGUqIG92ZXJyaWRlU3R5bGUgPSAwKTsKKyAgICB2b2lkIHNldE1hcmdpbkFmdGVyKExheW91dFVu
aXQsIGNvbnN0IFJlbmRlclN0eWxlKiBvdmVycmlkZVN0eWxlID0gMCk7CiAKICAgICAvLyBUaGUg
Zm9sbG93aW5nIGZpdmUgZnVuY3Rpb25zIGFyZSB1c2VkIHRvIGltcGxlbWVudCBjb2xsYXBzaW5n
IG1hcmdpbnMuCiAgICAgLy8gQWxsIG9iamVjdHMga25vdyB0aGVpciBtYXhpbWFsIHBvc2l0aXZl
IGFuZCBuZWdhdGl2ZSBtYXJnaW5zLiAgVGhlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAkocmV2aXNpb24gMTE3OTM4KQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEzMCwxMCArMTMwLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIExheW91dFVuaXQg
bWFyZ2luQm90dG9tKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5M
ZWZ0KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5SaWdodCgpIGNv
bnN0ID0gMDsKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luQmVmb3JlKCkgY29uc3QgPSAw
OwotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5BZnRlcigpIGNvbnN0ID0gMDsKLSAgICB2
aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luU3RhcnQoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBM
YXlvdXRVbml0IG1hcmdpbkVuZCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQg
bWFyZ2luQmVmb3JlKGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlclN0eWxlID0gMCkgY29uc3QgPSAw
OworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5BZnRlcihjb25zdCBSZW5kZXJTdHlsZSog
b3RoZXJTdHlsZSA9IDApIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2lu
U3RhcnQoY29uc3QgUmVuZGVyU3R5bGUqIG90aGVyU3R5bGUgPSAwKSBjb25zdCA9IDA7CisgICAg
dmlydHVhbCBMYXlvdXRVbml0IG1hcmdpbkVuZChjb25zdCBSZW5kZXJTdHlsZSogb3RoZXJTdHls
ZSA9IDApIGNvbnN0ID0gMDsKICAgICBMYXlvdXRVbml0IG1hcmdpbkhlaWdodCgpIGNvbnN0IHsg
cmV0dXJuIG1hcmdpblRvcCgpICsgbWFyZ2luQm90dG9tKCk7IH0KICAgICBMYXlvdXRVbml0IG1h
cmdpbldpZHRoKCkgY29uc3QgeyByZXR1cm4gbWFyZ2luTGVmdCgpICsgbWFyZ2luUmlnaHQoKTsg
fQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAkocmV2
aXNpb24gMTE3OTM4KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTY5NCwyNCArNjk0LDI0IEBAIExheW91dFVuaXQgUmVuZGVy
SW5saW5lOjptYXJnaW5Cb3R0b20oKSAKICAgICByZXR1cm4gY29tcHV0ZU1hcmdpbih0aGlzLCBz
dHlsZSgpLT5tYXJnaW5Cb3R0b20oKSk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVySW5saW5lOjpt
YXJnaW5TdGFydCgpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlcklubGluZTo6bWFyZ2luU3RhcnQo
Y29uc3QgUmVuZGVyU3R5bGUqIG90aGVyU3R5bGUpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGNvbXB1
dGVNYXJnaW4odGhpcywgc3R5bGUoKS0+bWFyZ2luU3RhcnQoKSk7CisgICAgcmV0dXJuIGNvbXB1
dGVNYXJnaW4odGhpcywgc3R5bGUoKS0+bWFyZ2luU3RhcnRVc2luZyhvdGhlclN0eWxlID8gb3Ro
ZXJTdHlsZSA6IHN0eWxlKCkpKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJJbmxpbmU6Om1hcmdp
bkVuZCgpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlcklubGluZTo6bWFyZ2luRW5kKGNvbnN0IFJl
bmRlclN0eWxlKiBvdGhlclN0eWxlKSBjb25zdAogewotICAgIHJldHVybiBjb21wdXRlTWFyZ2lu
KHRoaXMsIHN0eWxlKCktPm1hcmdpbkVuZCgpKTsKKyAgICByZXR1cm4gY29tcHV0ZU1hcmdpbih0
aGlzLCBzdHlsZSgpLT5tYXJnaW5FbmRVc2luZyhvdGhlclN0eWxlID8gb3RoZXJTdHlsZSA6IHN0
eWxlKCkpKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJJbmxpbmU6Om1hcmdpbkJlZm9yZSgpIGNv
bnN0CitMYXlvdXRVbml0IFJlbmRlcklubGluZTo6bWFyZ2luQmVmb3JlKGNvbnN0IFJlbmRlclN0
eWxlKiBvdGhlclN0eWxlKSBjb25zdAogewotICAgIHJldHVybiBjb21wdXRlTWFyZ2luKHRoaXMs
IHN0eWxlKCktPm1hcmdpbkJlZm9yZSgpKTsKKyAgICByZXR1cm4gY29tcHV0ZU1hcmdpbih0aGlz
LCBzdHlsZSgpLT5tYXJnaW5CZWZvcmVVc2luZyhvdGhlclN0eWxlID8gb3RoZXJTdHlsZSA6IHN0
eWxlKCkpKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJJbmxpbmU6Om1hcmdpbkFmdGVyKCkgY29u
c3QKK0xheW91dFVuaXQgUmVuZGVySW5saW5lOjptYXJnaW5BZnRlcihjb25zdCBSZW5kZXJTdHls
ZSogb3RoZXJTdHlsZSkgY29uc3QKIHsKLSAgICByZXR1cm4gY29tcHV0ZU1hcmdpbih0aGlzLCBz
dHlsZSgpLT5tYXJnaW5BZnRlcigpKTsKKyAgICByZXR1cm4gY29tcHV0ZU1hcmdpbih0aGlzLCBz
dHlsZSgpLT5tYXJnaW5BZnRlclVzaW5nKG90aGVyU3R5bGUgPyBvdGhlclN0eWxlIDogc3R5bGUo
KSkpOwogfQogCiBjb25zdCBjaGFyKiBSZW5kZXJJbmxpbmU6OnJlbmRlck5hbWUoKSBjb25zdApJ
bmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAkocmV2aXNpb24gMTE3
OTM4KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC00MSwxMCArNDEsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgTGF5b3V0VW5p
dCBtYXJnaW5SaWdodCgpIGNvbnN0OwogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5Ub3Ao
KSBjb25zdDsKICAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luQm90dG9tKCkgY29uc3Q7Ci0g
ICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpbkJlZm9yZSgpIGNvbnN0OwotICAgIHZpcnR1YWwg
TGF5b3V0VW5pdCBtYXJnaW5BZnRlcigpIGNvbnN0OwotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBt
YXJnaW5TdGFydCgpIGNvbnN0OwotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5FbmQoKSBj
b25zdDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luQmVmb3JlKGNvbnN0IFJlbmRlclN0
eWxlKiBvdGhlclN0eWxlID0gMCkgY29uc3Q7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdp
bkFmdGVyKGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlclN0eWxlID0gMCkgY29uc3Q7CisgICAgdmly
dHVhbCBMYXlvdXRVbml0IG1hcmdpblN0YXJ0KGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlclN0eWxl
ID0gMCkgY29uc3Q7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpbkVuZChjb25zdCBSZW5k
ZXJTdHlsZSogb3RoZXJTdHlsZSA9IDApIGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIGFic29s
dXRlUmVjdHMoVmVjdG9yPEludFJlY3Q+JiwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVk
T2Zmc2V0KSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVRdWFkcyhWZWN0b3I8Rmxv
YXRRdWFkPiYsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>