<?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>50472</bug_id>
          
          <creation_ts>2010-12-03 12:26:41 -0800</creation_ts>
          <short_desc>Reflected unsigned attributes should be in the range [0, 2^31)</short_desc>
          <delta_ts>2010-12-09 00:34:36 -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>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>316962</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2010-12-03 12:26:41 -0800</bug_when>
    <thetext>Reflected unsigned attributes should be in the range [0, 2^31)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317156</commentid>
    <comment_count>1</comment_count>
      <attachid>75573</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2010-12-03 16:11:35 -0800</bug_when>
    <thetext>Created attachment 75573
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317160</commentid>
    <comment_count>2</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2010-12-03 16:15:23 -0800</bug_when>
    <thetext>This patch implements the algorithm HTML5 describes for getting reflected unsigned attributes. From section 2.8.1:

&quot;If a reflecting IDL attribute is an unsigned integer type (unsigned long) then, on getting, the content attribute must be parsed according to the rules for parsing non-negative integers, and if that is successful, and the value is in the range 0 to 2147483647 inclusive, the resulting value must be returned. If, on the other hand, it fails or returns an out of range value, or if the attribute is absent, the default value must be returned instead, or 0 if there is no default value.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317164</commentid>
    <comment_count>3</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2010-12-03 16:17:07 -0800</bug_when>
    <thetext>Before anyone reviews this, it might be nice to let all the EWS bots do their thing before changing the review flag since I&apos;ve only tested the code generation on the Mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317680</commentid>
    <comment_count>4</comment_count>
      <attachid>75573</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-12-06 09:52:38 -0800</bug_when>
    <thetext>Comment on attachment 75573
Patch

The patch looks great; we also need a test that shows the actual behavior change in running JavaScript. Something in the LayoutTests directory. I’m going to say review- because that’s missing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317914</commentid>
    <comment_count>5</comment_count>
      <attachid>75749</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2010-12-06 16:24:43 -0800</bug_when>
    <thetext>Created attachment 75749
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317915</commentid>
    <comment_count>6</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2010-12-06 16:26:07 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 75573 [details])
&gt; The patch looks great; we also need a test that shows the actual behavior change in running JavaScript. Something in the LayoutTests directory. I’m going to say review- because that’s missing.

Thanks Darin. The new patch adds test cases for marquee&apos;s hspace and vspace properties, which are both reflected and unsigned.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317918</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-06 16:27:32 -0800</bug_when>
    <thetext>Attachment 75749 did not pass style-queue:

Failed to run &quot;[u&apos;git&apos;, u&apos;reset&apos;, u&apos;--hard&apos;, u&apos;HEAD&apos;]&quot; exit_code: 128
error: Could not write new index file.
fatal: Could not reset index file to revision &apos;HEAD&apos;.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319119</commentid>
    <comment_count>8</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2010-12-08 16:37:50 -0800</bug_when>
    <thetext>Committed r73564: &lt;http://trac.webkit.org/changeset/73564&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319307</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-09 00:34:36 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/73564 might have broken GTK Linux 32-bit Release
The following tests are not passing:
fast/css/input-search-padding.html
fast/css/text-input-with-webkit-border-radius.html
fast/forms/box-shadow-override.html
fast/forms/control-restrict-line-height.html
fast/forms/input-appearance-height.html
fast/forms/placeholder-pseudo-style.html
fast/forms/placeholder-set-value.html
fast/forms/search-cancel-button-style-sharing.html
fast/forms/search-placeholder-value-changed.html
fast/forms/search-rtl.html
fast/forms/search-styled.html
fast/forms/search-transformed.html
fast/forms/search-vertical-alignment.html
fast/forms/search-zoomed.html
fast/forms/searchfield-heights.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75573</attachid>
            <date>2010-12-03 16:11:35 -0800</date>
            <delta_ts>2010-12-06 16:24:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50472-20101203161134.patch</filename>
            <type>text/plain</type>
            <size>18632</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MzMxNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzMgQEAKKzIwMTAtMTItMDMgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmxl
Y3RlZCB1bnNpZ25lZCBhdHRyaWJ1dGVzIHNob3VsZCBiZSBpbiB0aGUgcmFuZ2UgWzAsIDJeMzEp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDQ3Mgor
CisgICAgICAgIEhUTUw1IHNheXMgdGhhdCB1bnNpZ25lZCByZWZsZWN0ZWQgYXR0cmlidXRlcyBz
aG91bGQgYmUgaW4gdGhlIHJhbmdlCisgICAgICAgIFswLCAyXjMxKS4gV2hlbiBhIHZhbHVlIGlz
bid0IGluIHRoaXMgcmFuZ2UsIGEgZGVmYXVsdCB2YWx1ZSAob3IgMCkKKyAgICAgICAgc2hvdWxk
IGJlIHJldHVybmVkIGluc3RlYWQuIFVwZGF0ZSB0aGUgSlMgYmluZGluZ3MgY29kZSBnZW5lcmF0
b3IgdG8KKyAgICAgICAgZW5zdXJlIDAgaXMgcmV0dXJuZWQgd2hlbiBhIGNvbnRlbnQgYXR0cmli
dXRlIHZhbHVlIGZhbGxzIG91dHNpZGUgb2YKKyAgICAgICAgdGhpcyByYW5nZS4KKworICAgICAg
ICBUZXN0OiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKKworICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOiBSZXR1cm4gdGhlIG1heGltdW0gb2Yg
MCBhbmQgdGhlCisgICAgICAgIGNvbnRlbnQgYXR0cmlidXRlIGFzIGEgMzItYml0IHNpZ25lZCBp
bnQgd2hlbiBjb252ZXJ0aW5nIGEgbmF0aXZlIHZhbHVlCisgICAgICAgIHRvIGFuIHVuc2lnbmVk
IEpTIHZhbHVlLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbDog
QWRkIGEgcmVmbGVjdGVkIHVuc2lnbmVkIGF0dHJpYnV0ZQorICAgICAgICB0byB0ZXN0IGNvZGUg
Z2VuZXJhdGlvbi4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRl
c3RPYmouY3BwOiBVcGRhdGUgdGVzdCByZXN1bHRzLgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oOiBEaXR0by4KKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcDogRGl0dG8uCisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oOiBEaXR0
by4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDogRGl0
dG8uCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oOiBEaXR0
by4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmg6IERp
dHRvLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW06
IERpdHRvLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3Bw
OiBEaXR0by4KKwogMjAxMC0xMi0wMyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBn
bWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjczMzAyLgpJbmRl
eDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lv
biA3MzE5MikKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0J
KHdvcmtpbmcgY29weSkKQEAgLTI0OTcsNiArMjQ5NywxMiBAQCBzdWIgTmF0aXZlVG9KU1ZhbHVl
CiAgICAgaWYgKCR0eXBlIGVxICJEYXRlIikgewogICAgICAgICByZXR1cm4gImpzRGF0ZU9yTnVs
bChleGVjLCAkdmFsdWUpIjsKICAgICB9CisKKyAgICBpZiAoJHNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IlJlZmxlY3QifSBhbmQgKCR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIiBvciAk
dHlwZSBlcSAidW5zaWduZWQgc2hvcnQiKSkgeworICAgICAgICAkdmFsdWUgPX4gcy9nZXRVbnNp
Z25lZEludGVncmFsQXR0cmlidXRlL2dldEludGVncmFsQXR0cmlidXRlL2c7CisgICAgICAgIHJl
dHVybiAianNOdW1iZXIoc3RkOjptYXgoMCwgIiAuICR2YWx1ZSAuICIpKSI7CisgICAgfQorCiAg
ICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2ZVR5cGUoJHR5cGUpIG9yICR0eXBlIGVx
ICJTVkdQYWludFR5cGUiIG9yICR0eXBlIGVxICJET01UaW1lU3RhbXAiKSB7CiAgICAgICAgICRp
bXBsSW5jbHVkZXN7IjxydW50aW1lL0pTTnVtYmVyQ2VsbC5oPiJ9ID0gMTsKICAgICAgICAgcmV0
dXJuICJqc051bWJlcigkdmFsdWUpIjsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Rlc3RPYmouaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Rlc3RPYmouaWRsCShyZXZpc2lvbiA3MzE5MikKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Rlc3RPYmouaWRsCSh3b3JraW5nIGNvcHkpCkBAIC01MSw2ICs1MSw3IEBAIG1v
ZHVsZSB0ZXN0IHsKICAgICAgICAgLy8gUmVmbGVjdGVkIERPTSBhdHRyaWJ1dGVzCiAgICAgICAg
IGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHJlZmxlY3RlZFN0cmluZ0F0dHI7CiAgICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gbG9uZyByZWZsZWN0ZWRJbnRlZ3JhbEF0dHI7CisgICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gdW5zaWduZWQgbG9uZyByZWZsZWN0ZWRVbnNpZ25lZElu
dGVncmFsQXR0cjsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIHJlZmxlY3Rl
ZEJvb2xlYW5BdHRyOwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3QsIFVSTF0gRE9NU3RyaW5n
IHJlZmxlY3RlZFVSTEF0dHI7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCwgTm9uRW1wdHks
IFVSTF0gRE9NU3RyaW5nIHJlZmxlY3RlZE5vbkVtcHR5VVJMQXR0cjsKSW5kZXg6IFdlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5jcHAJKHJl
dmlzaW9uIDczMTkyKQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRP
TVRlc3RPYmouY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODEsNiArMjgxLDIyIEBAIHZvaWQgV2Vi
RE9NVGVzdE9iajo6c2V0UmVmbGVjdGVkSW50ZWdyYWwKICAgICBpbXBsKCktPnNldEludGVncmFs
QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkaW50ZWdyYWxhdHRyQXR0ciwg
bmV3UmVmbGVjdGVkSW50ZWdyYWxBdHRyKTsKIH0KIAordW5zaWduZWQgV2ViRE9NVGVzdE9iajo6
cmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIoKSBjb25zdAoreworICAgIGlmICghaW1wbCgp
KQorICAgICAgICByZXR1cm4gdW5zaWduZWQoKTsKKworICAgIHJldHVybiBpbXBsKCktPmdldFVu
c2lnbmVkSW50ZWdyYWxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWR1bnNp
Z25lZGludGVncmFsYXR0ckF0dHIpOworfQorCit2b2lkIFdlYkRPTVRlc3RPYmo6OnNldFJlZmxl
Y3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyKHVuc2lnbmVkIG5ld1JlZmxlY3RlZFVuc2lnbmVkSW50
ZWdyYWxBdHRyKQoreworICAgIGlmICghaW1wbCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBp
bXBsKCktPnNldFVuc2lnbmVkSW50ZWdyYWxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpy
ZWZsZWN0ZWR1bnNpZ25lZGludGVncmFsYXR0ckF0dHIsIG5ld1JlZmxlY3RlZFVuc2lnbmVkSW50
ZWdyYWxBdHRyKTsKK30KKwogYm9vbCBXZWJET01UZXN0T2JqOjpyZWZsZWN0ZWRCb29sZWFuQXR0
cigpIGNvbnN0CiB7CiAgICAgaWYgKCFpbXBsKCkpCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmgJKHJldmlzaW9uIDczMTkyKQor
KysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaAkod29y
a2luZyBjb3B5KQpAQCAtODMsNiArODMsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRSZWZsZWN0
ZWRTdHJpbmdBdHRyKGNvbnN0IFdlYkRPTVN0cmluZyYpOwogICAgIGludCByZWZsZWN0ZWRJbnRl
Z3JhbEF0dHIoKSBjb25zdDsKICAgICB2b2lkIHNldFJlZmxlY3RlZEludGVncmFsQXR0cihpbnQp
OworICAgIHVuc2lnbmVkIHJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyKCkgY29uc3Q7Cisg
ICAgdm9pZCBzZXRSZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0cih1bnNpZ25lZCk7CiAgICAg
Ym9vbCByZWZsZWN0ZWRCb29sZWFuQXR0cigpIGNvbnN0OwogICAgIHZvaWQgc2V0UmVmbGVjdGVk
Qm9vbGVhbkF0dHIoYm9vbCk7CiAgICAgV2ViRE9NU3RyaW5nIHJlZmxlY3RlZFVSTEF0dHIoKSBj
b25zdDsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0
RE9NVGVzdE9iai5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcAkocmV2aXNpb24gNzMyMzgpCisrKyBXZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC02NjUsNiArNjY1LDI1IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0
X3JlZmxlY3RlZF9pbnRlZ3IKICAgICBpdGVtLT5zZXRJbnRlZ3JhbEF0dHJpYnV0ZShXZWJDb3Jl
OjpIVE1MTmFtZXM6OnJlZmxlY3RlZGludGVncmFsYXR0ckF0dHIsIHZhbHVlKTsKIH0KIAorZ3Vs
b25nCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9yZWZsZWN0ZWRfdW5zaWduZWRfaW50ZWdyYWxf
YXR0cihXZWJLaXRET01UZXN0T2JqKiBzZWxmKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KHNlbGYsIDApOworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICBXZWJDb3JlOjpUZXN0T2JqICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBndWxv
bmcgcmVzID0gaXRlbS0+Z2V0VW5zaWduZWRJbnRlZ3JhbEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1M
TmFtZXM6OnJlZmxlY3RlZHVuc2lnbmVkaW50ZWdyYWxhdHRyQXR0cik7CisgICAgcmV0dXJuIHJl
czsKK30KKwordm9pZAord2Via2l0X2RvbV90ZXN0X29ial9zZXRfcmVmbGVjdGVkX3Vuc2lnbmVk
X2ludGVncmFsX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ3Vsb25nIHZhbHVlKQorewor
ICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OlRlc3RPYmogKiBpdGVtID0gV2ViS2l0Ojpjb3Jl
KHNlbGYpOworICAgIGl0ZW0tPnNldFVuc2lnbmVkSW50ZWdyYWxBdHRyaWJ1dGUoV2ViQ29yZTo6
SFRNTE5hbWVzOjpyZWZsZWN0ZWR1bnNpZ25lZGludGVncmFsYXR0ckF0dHIsIHZhbHVlKTsKK30K
KwogZ2Jvb2xlYW4KIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3JlZmxlY3RlZF9ib29sZWFuX2F0
dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKIHsKQEAgLTEwOTQsNiArMTExMyw3IEBAIGVudW0g
ewogICAgIFBST1BfQ1JFQVRFLAogICAgIFBST1BfUkVGTEVDVEVEX1NUUklOR19BVFRSLAogICAg
IFBST1BfUkVGTEVDVEVEX0lOVEVHUkFMX0FUVFIsCisgICAgUFJPUF9SRUZMRUNURURfVU5TSUdO
RURfSU5URUdSQUxfQVRUUiwKICAgICBQUk9QX1JFRkxFQ1RFRF9CT09MRUFOX0FUVFIsCiAgICAg
UFJPUF9SRUZMRUNURURfVVJMX0FUVFIsCiAgICAgUFJPUF9SRUZMRUNURURfTk9OX0VNUFRZX1VS
TF9BVFRSLApAQCAtMTE4MCw2ICsxMjAwLDExIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVz
dF9vYmpfc2V0X3Byb3AKICAgICAgICAgY29yZVNlbGYtPnNldEludGVncmFsQXR0cmlidXRlKFdl
YkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkaW50ZWdyYWxhdHRyQXR0ciwgKGdfdmFsdWVfZ2V0
X2xvbmcodmFsdWUpKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyAgICBjYXNlIFBST1BfUkVG
TEVDVEVEX1VOU0lHTkVEX0lOVEVHUkFMX0FUVFI6CisgICAgeworICAgICAgICBjb3JlU2VsZi0+
c2V0VW5zaWduZWRJbnRlZ3JhbEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3Rl
ZHVuc2lnbmVkaW50ZWdyYWxhdHRyQXR0ciwgKGdfdmFsdWVfZ2V0X3Vsb25nKHZhbHVlKSkpOwor
ICAgICAgICBicmVhazsKKyAgICB9CiAgICAgY2FzZSBQUk9QX1JFRkxFQ1RFRF9CT09MRUFOX0FU
VFI6CiAgICAgewogICAgICAgICBjb3JlU2VsZi0+c2V0Qm9vbGVhbkF0dHJpYnV0ZShXZWJDb3Jl
OjpIVE1MTmFtZXM6OnJlZmxlY3RlZGJvb2xlYW5hdHRyQXR0ciwgKGdfdmFsdWVfZ2V0X2Jvb2xl
YW4odmFsdWUpKSk7CkBAIC0xMzU2LDYgKzEzODEsMTEgQEAgc3RhdGljIHZvaWQgd2Via2l0X2Rv
bV90ZXN0X29ial9nZXRfcHJvcAogICAgICAgICBnX3ZhbHVlX3NldF9sb25nKHZhbHVlLCBjb3Jl
U2VsZi0+Z2V0SW50ZWdyYWxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRp
bnRlZ3JhbGF0dHJBdHRyKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyAgICBjYXNlIFBST1Bf
UkVGTEVDVEVEX1VOU0lHTkVEX0lOVEVHUkFMX0FUVFI6CisgICAgeworICAgICAgICBnX3ZhbHVl
X3NldF91bG9uZyh2YWx1ZSwgY29yZVNlbGYtPmdldFVuc2lnbmVkSW50ZWdyYWxBdHRyaWJ1dGUo
V2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWR1bnNpZ25lZGludGVncmFsYXR0ckF0dHIpKTsK
KyAgICAgICAgYnJlYWs7CisgICAgfQogICAgIGNhc2UgUFJPUF9SRUZMRUNURURfQk9PTEVBTl9B
VFRSOgogICAgIHsKICAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgY29yZVNlbGYt
Pmhhc0F0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZGJvb2xlYW5hdHRyQXR0
cikpOwpAQCAtMTU5NCw2ICsxNjI0LDE1IEBAIEdfTUFYTE9ORywgLyogbWF4ICovCiAwLCAvKiBk
ZWZhdWx0ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKICAgICBnX29iamVjdF9jbGFz
c19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RDbGFzcywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFBST1BfUkVGTEVDVEVEX1VOU0lHTkVEX0lOVEVHUkFMX0FUVFIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfdWxvbmcoInJlZmxl
Y3RlZC11bnNpZ25lZC1pbnRlZ3JhbC1hdHRyIiwgLyogbmFtZSAqLworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdF9vYmpfcmVm
bGVjdGVkLXVuc2lnbmVkLWludGVncmFsLWF0dHIiLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAqLwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAicmVhZC13cml0ZSAgZ3Vsb25nIFRlc3RPYmoucmVmbGVjdGVkLXVuc2lnbmVkLWludGVncmFs
LWF0dHIiLCAvKiBsb25nZXIgLSBjb3VsZCBkbyB3aXRoIHNvbWUgZXh0cmEgZG9jIHN0dWZmIGhl
cmUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMCwgLyogbWluICovCitHX01BWFVMT05HLCAvKiBtYXggKi8KKzAsIC8qIGRlZmF1
bHQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURXUklURSkpOworICAgIGdfb2JqZWN0X2NsYXNzX2lu
c3RhbGxfcHJvcGVydHkoZ29iamVjdENsYXNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUFJPUF9SRUZMRUNURURfQk9PTEVBTl9BVFRSLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oInJlZmxlY3RlZC1ib29sZWFu
LWF0dHIiLCAvKiBuYW1lICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0X29ial9yZWZsZWN0ZWQtYm9vbGVhbi1hdHRyIiwg
Lyogc2hvcnQgZGVzY3JpcHRpb24gKi8KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oCShyZXZpc2lvbiA3
MzE5MikKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9N
VGVzdE9iai5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDgsNiArMjA4LDEyIEBAIHdlYmtpdF9kb21f
dGVzdF9vYmpfZ2V0X3JlZmxlY3RlZF9pbnRlZ3IKIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X2Rv
bV90ZXN0X29ial9zZXRfcmVmbGVjdGVkX2ludGVncmFsX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiog
c2VsZiwgZ2xvbmcgdmFsdWUpOwogCitXRUJLSVRfQVBJIGd1bG9uZword2Via2l0X2RvbV90ZXN0
X29ial9nZXRfcmVmbGVjdGVkX3Vuc2lnbmVkX2ludGVncmFsX2F0dHIoV2ViS2l0RE9NVGVzdE9i
aiogc2VsZik7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2RvbV90ZXN0X29ial9zZXRfcmVm
bGVjdGVkX3Vuc2lnbmVkX2ludGVncmFsX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ3Vs
b25nIHZhbHVlKTsKKwogV0VCS0lUX0FQSSBnYm9vbGVhbgogd2Via2l0X2RvbV90ZXN0X29ial9n
ZXRfcmVmbGVjdGVkX2Jvb2xlYW5fYXR0cihXZWJLaXRET01UZXN0T2JqKiBzZWxmKTsKIApJbmRl
eDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCShy
ZXZpc2lvbiA3MzE5MikKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE9iai5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1LDcgKzU1LDcgQEAgQVNTRVJUX0NMQVNTX0ZJ
VFNfSU5fQ0VMTChKU1Rlc3RPYmopOwogI2RlZmluZSBUSFVOS19HRU5FUkFUT1IoZ2VuZXJhdG9y
KQogI2VuZGlmCiAKLXN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpUYWJsZVZh
bHVlc1szNl0gPQorc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialRhYmxlVmFs
dWVzWzM3XSA9CiB7CiAgICAgeyAicmVhZE9ubHlJbnRBdHRyIiwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
VGVzdE9ialJlYWRPbmx5SW50QXR0ciksIChpbnRwdHJfdCkwIFRIVU5LX0dFTkVSQVRPUigwKSB9
LAogICAgIHsgInJlYWRPbmx5U3RyaW5nQXR0ciIsIERvbnREZWxldGUgfCBSZWFkT25seSwgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpS
ZWFkT25seVN0cmluZ0F0dHIpLCAoaW50cHRyX3QpMCBUSFVOS19HRU5FUkFUT1IoMCkgfSwKQEAg
LTcxLDYgKzcxLDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialRhYgog
ICAgIHsgImNyZWF0ZSIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ3JlYXRlKSwgKGludHB0cl90KXNldEpTVGVz
dE9iakNyZWF0ZSBUSFVOS19HRU5FUkFUT1IoMCkgfSwKICAgICB7ICJyZWZsZWN0ZWRTdHJpbmdB
dHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKSwgKGludHB0cl90KXNldEpT
VGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIgVEhVTktfR0VORVJBVE9SKDApIH0sCiAgICAgeyAi
cmVmbGVjdGVkSW50ZWdyYWxBdHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0
dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyIFRIVU5LX0dF
TkVSQVRPUigwKSB9LAorICAgIHsgInJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyIiwgRG9u
dERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RPYmpSZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0ciksIChpbnRwdHJfdClzZXRK
U1Rlc3RPYmpSZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0ciBUSFVOS19HRU5FUkFUT1IoMCkg
fSwKICAgICB7ICJyZWZsZWN0ZWRCb29sZWFuQXR0ciIsIERvbnREZWxldGUsIChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqUmVmbGVjdGVk
Qm9vbGVhbkF0dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqUmVmbGVjdGVkQm9vbGVhbkF0dHIg
VEhVTktfR0VORVJBVE9SKDApIH0sCiAgICAgeyAicmVmbGVjdGVkVVJMQXR0ciIsIERvbnREZWxl
dGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0T2JqUmVmbGVjdGVkVVJMQXR0ciksIChpbnRwdHJfdClzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRV
UkxBdHRyIFRIVU5LX0dFTkVSQVRPUigwKSB9LAogICAgIHsgInJlZmxlY3RlZE5vbkVtcHR5VVJM
QXR0ciIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0T2JqUmVmbGVjdGVkTm9uRW1wdHlVUkxBdHRyKSwgKGludHB0cl90
KXNldEpTVGVzdE9ialJlZmxlY3RlZE5vbkVtcHR5VVJMQXR0ciBUSFVOS19HRU5FUkFUT1IoMCkg
fSwKQEAgLTQwNyw2ICs0MDgsMTUgQEAgSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3Jh
bEF0dHIoRQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK0pTVmFsdWUganNUZXN0T2JqUmVmbGVj
dGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNl
LCBjb25zdCBJZGVudGlmaWVyJikKK3sKKyAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0
aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdChzbG90QmFzZSkpOworICAgIFVOVVNFRF9QQVJB
TShleGVjKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVk
VGhpcy0+aW1wbCgpKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKHN0ZDo6bWF4KDAs
IGltcC0+Z2V0SW50ZWdyYWxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWR1
bnNpZ25lZGludGVncmFsYXR0ckF0dHIpKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogSlNW
YWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFs
dWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImKQogewogICAgIEpTVGVzdE9iaiogY2FzdGVk
VGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CkBAIC02
NzksNiArNjg5LDEzIEBAIHZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyKEUK
ICAgICBpbXAtPnNldEludGVncmFsQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVj
dGVkaW50ZWdyYWxhdHRyQXR0ciwgdmFsdWUudG9JbnQzMihleGVjKSk7CiB9CiAKK3ZvaWQgc2V0
SlNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIoRXhlY1N0YXRlKiBleGVjLCBK
U09iamVjdCogdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBKU1Rlc3RPYmoqIGNh
c3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKKyAgICBUZXN0
T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAg
ICBpbXAtPnNldFVuc2lnbmVkSW50ZWdyYWxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpy
ZWZsZWN0ZWR1bnNpZ25lZGludGVncmFsYXR0ckF0dHIsIHZhbHVlLnRvVUludDMyKGV4ZWMpKTsK
K30KKwogdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0cihFeGVjU3RhdGUqIGV4
ZWMsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIEpTVGVzdE9i
aiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOwpJbmRl
eDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgJKHJldmlz
aW9uIDczMTkyKQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE0OSw2ICsxNDksOCBAQCBKU0M6OkpTVmFsdWUganNUZXN0
T2JqUmVmbGVjdGVkU3RyaW5nQXR0CiB2b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0
dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsKIEpTQzo6
SlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwogdm9pZCBzZXRKU1Rlc3RPYmpS
ZWZsZWN0ZWRJbnRlZ3JhbEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlND
OjpKU1ZhbHVlKTsKK0pTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRVbnNpZ25lZEludGVn
cmFsQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlm
aWVyJik7Cit2b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7CiBKU0M6OkpTVmFs
dWUganNUZXN0T2JqUmVmbGVjdGVkQm9vbGVhbkF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
VmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwogdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0
ZWRCb29sZWFuQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFs
dWUpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFVSTEF0dHIoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwpJbmRleDogV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgJKHJldmlzaW9u
IDczMTkyKQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2Jq
LmgJKHdvcmtpbmcgY29weSkKQEAgLTc1LDYgKzc1LDggQEAgZW51bSB7CiAtICh2b2lkKXNldFJl
ZmxlY3RlZFN0cmluZ0F0dHI6KE5TU3RyaW5nICopbmV3UmVmbGVjdGVkU3RyaW5nQXR0cjsKIC0g
KGludClyZWZsZWN0ZWRJbnRlZ3JhbEF0dHI7CiAtICh2b2lkKXNldFJlZmxlY3RlZEludGVncmFs
QXR0cjooaW50KW5ld1JlZmxlY3RlZEludGVncmFsQXR0cjsKKy0gKHVuc2lnbmVkKXJlZmxlY3Rl
ZFVuc2lnbmVkSW50ZWdyYWxBdHRyOworLSAodm9pZClzZXRSZWZsZWN0ZWRVbnNpZ25lZEludGVn
cmFsQXR0cjoodW5zaWduZWQpbmV3UmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHI7CiAtIChC
T09MKXJlZmxlY3RlZEJvb2xlYW5BdHRyOwogLSAodm9pZClzZXRSZWZsZWN0ZWRCb29sZWFuQXR0
cjooQk9PTCluZXdSZWZsZWN0ZWRCb29sZWFuQXR0cjsKIC0gKE5TU3RyaW5nICopcmVmbGVjdGVk
VVJMQXR0cjsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVz
dE9iai5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpD
L0RPTVRlc3RPYmoubW0JKHJldmlzaW9uIDczMTkyKQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMzAsNiArMjMw
LDE4IEBAIC0gKHZvaWQpc2V0UmVmbGVjdGVkSW50ZWdyYWxBdHRyOihpbnQpbmUKICAgICBJTVBM
LT5zZXRJbnRlZ3JhbEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZGludGVn
cmFsYXR0ckF0dHIsIG5ld1JlZmxlY3RlZEludGVncmFsQXR0cik7CiB9CiAKKy0gKHVuc2lnbmVk
KXJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRVbnNpZ25lZEludGVncmFs
QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkdW5zaWduZWRpbnRlZ3JhbGF0
dHJBdHRyKTsKK30KKworLSAodm9pZClzZXRSZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0cjoo
dW5zaWduZWQpbmV3UmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIKK3sKKyAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0VW5zaWduZWRJbnRl
Z3JhbEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZHVuc2lnbmVkaW50ZWdy
YWxhdHRyQXR0ciwgbmV3UmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIpOworfQorCiAtIChC
T09MKXJlZmxlY3RlZEJvb2xlYW5BdHRyCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0T2JqLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RPYmouY3BwCShyZXZpc2lvbiA3MzE5MikKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1Niw2ICsyNTYs
MjIgQEAgc3RhdGljIHZvaWQgcmVmbGVjdGVkSW50ZWdyYWxBdHRyQXR0clNldAogICAgIHJldHVy
bjsKIH0KIAorc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiByZWZsZWN0ZWRVbnNpZ25lZElu
dGVncmFsQXR0ckF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4
OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5yZWZs
ZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0ci5fZ2V0Iik7CisgICAgVGVzdE9iaiogaW1wID0gVjhU
ZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICByZXR1cm4gdjg6OkludGVnZXI6
Ok5ld0Zyb21VbnNpZ25lZChpbXAtPmdldFVuc2lnbmVkSW50ZWdyYWxBdHRyaWJ1dGUoV2ViQ29y
ZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWR1bnNpZ25lZGludGVncmFsYXR0ckF0dHIpKTsKK30KKwor
c3RhdGljIHZvaWQgcmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHJBdHRyU2V0dGVyKHY4OjpM
b2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qg
djg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLnJl
ZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyLl9zZXQiKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBW
OFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAgIHVuc2lnbmVkIHYgPSB0b1VJ
bnQzMih2YWx1ZSk7CisgICAgaW1wLT5zZXRVbnNpZ25lZEludGVncmFsQXR0cmlidXRlKFdlYkNv
cmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkdW5zaWduZWRpbnRlZ3JhbGF0dHJBdHRyLCB2KTsKKyAg
ICByZXR1cm47Cit9CisKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcmVmbGVjdGVkQm9v
bGVhbkF0dHJBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6
QWNjZXNzb3JJbmZvJiBpbmZvKQogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoucmVmbGVj
dGVkQm9vbGVhbkF0dHIuX2dldCIpOwpAQCAtMTE2Myw2ICsxMTc5LDggQEAgc3RhdGljIGNvbnN0
IEJhdGNoZWRBdHRyaWJ1dGUgVGVzdE9iakF0dAogICAgIHsicmVmbGVjdGVkU3RyaW5nQXR0ciIs
IFRlc3RPYmpJbnRlcm5hbDo6cmVmbGVjdGVkU3RyaW5nQXR0ckF0dHJHZXR0ZXIsIFRlc3RPYmpJ
bnRlcm5hbDo6cmVmbGVjdGVkU3RyaW5nQXR0ckF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywg
c3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8
djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAog
ICAgIC8vIEF0dHJpYnV0ZSAncmVmbGVjdGVkSW50ZWdyYWxBdHRyJyAoVHlwZTogJ2F0dHJpYnV0
ZScgRXh0QXR0cjogJ1JlZmxlY3QnKQogICAgIHsicmVmbGVjdGVkSW50ZWdyYWxBdHRyIiwgVGVz
dE9iakludGVybmFsOjpyZWZsZWN0ZWRJbnRlZ3JhbEF0dHJBdHRyR2V0dGVyLCBUZXN0T2JqSW50
ZXJuYWw6OnJlZmxlY3RlZEludGVncmFsQXR0ckF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywg
c3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8
djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAor
ICAgIC8vIEF0dHJpYnV0ZSAncmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHInIChUeXBlOiAn
YXR0cmlidXRlJyBFeHRBdHRyOiAnUmVmbGVjdCcpCisgICAgeyJyZWZsZWN0ZWRVbnNpZ25lZElu
dGVncmFsQXR0ciIsIFRlc3RPYmpJbnRlcm5hbDo6cmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0
dHJBdHRyR2V0dGVyLCBUZXN0T2JqSW50ZXJuYWw6OnJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxB
dHRyQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29u
dHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4
OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiAgICAgLy8gQXR0cmlidXRlICdyZWZsZWN0
ZWRCb29sZWFuQXR0cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICdSZWZsZWN0JykKICAg
ICB7InJlZmxlY3RlZEJvb2xlYW5BdHRyIiwgVGVzdE9iakludGVybmFsOjpyZWZsZWN0ZWRCb29s
ZWFuQXR0ckF0dHJHZXR0ZXIsIFRlc3RPYmpJbnRlcm5hbDo6cmVmbGVjdGVkQm9vbGVhbkF0dHJB
dHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9s
Pih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5v
bmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ3JlZmxlY3RlZFVS
TEF0dHInIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnVVJMIFJlZmxlY3QnKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75749</attachid>
            <date>2010-12-06 16:24:43 -0800</date>
            <delta_ts>2010-12-08 08:32:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50472-20101206162442.patch</filename>
            <type>text/plain</type>
            <size>22331</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MzQwMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzQgQEAKKzIwMTAtMTItMDYgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmxl
Y3RlZCB1bnNpZ25lZCBhdHRyaWJ1dGVzIHNob3VsZCBiZSBpbiB0aGUgcmFuZ2UgWzAsIDJeMzEp
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTA0NzIK
KworICAgICAgICBIVE1MNSBzYXlzIHRoYXQgdW5zaWduZWQgcmVmbGVjdGVkIGF0dHJpYnV0ZXMg
c2hvdWxkIGJlIGluIHRoZSByYW5nZQorICAgICAgICBbMCwgMl4zMSkuIFdoZW4gYSB2YWx1ZSBp
c24ndCBpbiB0aGlzIHJhbmdlLCBhIGRlZmF1bHQgdmFsdWUgKG9yIDApCisgICAgICAgIHNob3Vs
ZCBiZSByZXR1cm5lZCBpbnN0ZWFkLiBVcGRhdGUgdGhlIEpTIGJpbmRpbmdzIGNvZGUgZ2VuZXJh
dG9yIHRvCisgICAgICAgIGVuc3VyZSAwIGlzIHJldHVybmVkIHdoZW4gYSBjb250ZW50IGF0dHJp
YnV0ZSB2YWx1ZSBmYWxscyBvdXRzaWRlIG9mCisgICAgICAgIHRoaXMgcmFuZ2UuCisKKyAgICAg
ICAgVGVzdHM6IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAorICAgICAgICAgICAg
ICAgZmFzdC9odG1sL21hcnF1ZWUtZWxlbWVudC5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbTogUmV0dXJuIHRoZSBtYXhpbXVtIG9mIDAgYW5kIHRo
ZQorICAgICAgICBjb250ZW50IGF0dHJpYnV0ZSBhcyBhIDMyLWJpdCBzaWduZWQgaW50IHdoZW4g
Y29udmVydGluZyBhIG5hdGl2ZSB2YWx1ZQorICAgICAgICB0byBhbiB1bnNpZ25lZCBKUyB2YWx1
ZS4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGw6IEFkZCBhIHJl
ZmxlY3RlZCB1bnNpZ25lZCBhdHRyaWJ1dGUKKyAgICAgICAgdG8gdGVzdCBjb2RlIGdlbmVyYXRp
b24uCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNw
cDogVXBkYXRlIHRlc3QgcmVzdWx0cy4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
Q1BQL1dlYkRPTVRlc3RPYmouaDogRGl0dG8uCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHA6IERpdHRvLgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaDogRGl0dG8uCisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6IERpdHRvLgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaDogRGl0dG8uCisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oOiBEaXR0by4KKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tOiBEaXR0by4K
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcDogRGl0dG8u
CisKIDIwMTAtMTItMDYgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgWWV0IHVucmV2aWV3ZWQgYW5vdGhlciBMZW9wYXJkIGJ1aWxkIGZpeCBmb3IgcjczMzgwLgpJ
bmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZp
c2lvbiA3MzQwMCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0JKHdvcmtpbmcgY29weSkKQEAgLTI0OTcsNiArMjQ5NywxMiBAQCBzdWIgTmF0aXZlVG9KU1Zh
bHVlCiAgICAgaWYgKCR0eXBlIGVxICJEYXRlIikgewogICAgICAgICByZXR1cm4gImpzRGF0ZU9y
TnVsbChleGVjLCAkdmFsdWUpIjsKICAgICB9CisKKyAgICBpZiAoJHNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IlJlZmxlY3QifSBhbmQgKCR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIiBv
ciAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiKSkgeworICAgICAgICAkdmFsdWUgPX4gcy9nZXRV
bnNpZ25lZEludGVncmFsQXR0cmlidXRlL2dldEludGVncmFsQXR0cmlidXRlL2c7CisgICAgICAg
IHJldHVybiAianNOdW1iZXIoc3RkOjptYXgoMCwgIiAuICR2YWx1ZSAuICIpKSI7CisgICAgfQor
CiAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2ZVR5cGUoJHR5cGUpIG9yICR0eXBl
IGVxICJTVkdQYWludFR5cGUiIG9yICR0eXBlIGVxICJET01UaW1lU3RhbXAiKSB7CiAgICAgICAg
ICRpbXBsSW5jbHVkZXN7IjxydW50aW1lL0pTTnVtYmVyQ2VsbC5oPiJ9ID0gMTsKICAgICAgICAg
cmV0dXJuICJqc051bWJlcigkdmFsdWUpIjsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Rlc3RPYmouaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Rlc3RPYmouaWRsCShyZXZpc2lvbiA3MzQwMCkKKysrIFdlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCSh3b3JraW5nIGNvcHkpCkBAIC01MSw2ICs1MSw3IEBA
IG1vZHVsZSB0ZXN0IHsKICAgICAgICAgLy8gUmVmbGVjdGVkIERPTSBhdHRyaWJ1dGVzCiAgICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHJlZmxlY3RlZFN0cmluZ0F0dHI7CiAg
ICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gbG9uZyByZWZsZWN0ZWRJbnRlZ3JhbEF0dHI7Cisg
ICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gdW5zaWduZWQgbG9uZyByZWZsZWN0ZWRVbnNpZ25l
ZEludGVncmFsQXR0cjsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIHJlZmxl
Y3RlZEJvb2xlYW5BdHRyOwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3QsIFVSTF0gRE9NU3Ry
aW5nIHJlZmxlY3RlZFVSTEF0dHI7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCwgTm9uRW1w
dHksIFVSTF0gRE9NU3RyaW5nIHJlZmxlY3RlZE5vbkVtcHR5VVJMQXR0cjsKSW5kZXg6IFdlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5jcHAJ
KHJldmlzaW9uIDczNDAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dl
YkRPTVRlc3RPYmouY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODEsNiArMjgxLDIyIEBAIHZvaWQg
V2ViRE9NVGVzdE9iajo6c2V0UmVmbGVjdGVkSW50ZWdyYWwKICAgICBpbXBsKCktPnNldEludGVn
cmFsQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkaW50ZWdyYWxhdHRyQXR0
ciwgbmV3UmVmbGVjdGVkSW50ZWdyYWxBdHRyKTsKIH0KIAordW5zaWduZWQgV2ViRE9NVGVzdE9i
ajo6cmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIoKSBjb25zdAoreworICAgIGlmICghaW1w
bCgpKQorICAgICAgICByZXR1cm4gdW5zaWduZWQoKTsKKworICAgIHJldHVybiBpbXBsKCktPmdl
dFVuc2lnbmVkSW50ZWdyYWxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWR1
bnNpZ25lZGludGVncmFsYXR0ckF0dHIpOworfQorCit2b2lkIFdlYkRPTVRlc3RPYmo6OnNldFJl
ZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyKHVuc2lnbmVkIG5ld1JlZmxlY3RlZFVuc2lnbmVk
SW50ZWdyYWxBdHRyKQoreworICAgIGlmICghaW1wbCgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBpbXBsKCktPnNldFVuc2lnbmVkSW50ZWdyYWxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVz
OjpyZWZsZWN0ZWR1bnNpZ25lZGludGVncmFsYXR0ckF0dHIsIG5ld1JlZmxlY3RlZFVuc2lnbmVk
SW50ZWdyYWxBdHRyKTsKK30KKwogYm9vbCBXZWJET01UZXN0T2JqOjpyZWZsZWN0ZWRCb29sZWFu
QXR0cigpIGNvbnN0CiB7CiAgICAgaWYgKCFpbXBsKCkpCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmgJKHJldmlzaW9uIDczNDAw
KQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaAko
d29ya2luZyBjb3B5KQpAQCAtODMsNiArODMsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRSZWZs
ZWN0ZWRTdHJpbmdBdHRyKGNvbnN0IFdlYkRPTVN0cmluZyYpOwogICAgIGludCByZWZsZWN0ZWRJ
bnRlZ3JhbEF0dHIoKSBjb25zdDsKICAgICB2b2lkIHNldFJlZmxlY3RlZEludGVncmFsQXR0cihp
bnQpOworICAgIHVuc2lnbmVkIHJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyKCkgY29uc3Q7
CisgICAgdm9pZCBzZXRSZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0cih1bnNpZ25lZCk7CiAg
ICAgYm9vbCByZWZsZWN0ZWRCb29sZWFuQXR0cigpIGNvbnN0OwogICAgIHZvaWQgc2V0UmVmbGVj
dGVkQm9vbGVhbkF0dHIoYm9vbCk7CiAgICAgV2ViRE9NU3RyaW5nIHJlZmxlY3RlZFVSTEF0dHIo
KSBjb25zdDsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2Vi
S2l0RE9NVGVzdE9iai5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcAkocmV2aXNpb24gNzM0MDApCisrKyBX
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02NjUsNiArNjY1LDI1IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpf
c2V0X3JlZmxlY3RlZF9pbnRlZ3IKICAgICBpdGVtLT5zZXRJbnRlZ3JhbEF0dHJpYnV0ZShXZWJD
b3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZGludGVncmFsYXR0ckF0dHIsIHZhbHVlKTsKIH0KIAor
Z3Vsb25nCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9yZWZsZWN0ZWRfdW5zaWduZWRfaW50ZWdy
YWxfYXR0cihXZWJLaXRET01UZXN0T2JqKiBzZWxmKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9m
YWlsKHNlbGYsIDApOworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICBXZWJDb3JlOjpUZXN0T2JqICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBn
dWxvbmcgcmVzID0gaXRlbS0+Z2V0VW5zaWduZWRJbnRlZ3JhbEF0dHJpYnV0ZShXZWJDb3JlOjpI
VE1MTmFtZXM6OnJlZmxlY3RlZHVuc2lnbmVkaW50ZWdyYWxhdHRyQXR0cik7CisgICAgcmV0dXJu
IHJlczsKK30KKwordm9pZAord2Via2l0X2RvbV90ZXN0X29ial9zZXRfcmVmbGVjdGVkX3Vuc2ln
bmVkX2ludGVncmFsX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ3Vsb25nIHZhbHVlKQor
eworICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OlRlc3RPYmogKiBpdGVtID0gV2ViS2l0Ojpj
b3JlKHNlbGYpOworICAgIGl0ZW0tPnNldFVuc2lnbmVkSW50ZWdyYWxBdHRyaWJ1dGUoV2ViQ29y
ZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWR1bnNpZ25lZGludGVncmFsYXR0ckF0dHIsIHZhbHVlKTsK
K30KKwogZ2Jvb2xlYW4KIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3JlZmxlY3RlZF9ib29sZWFu
X2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKIHsKQEAgLTEwOTQsNiArMTExMyw3IEBAIGVu
dW0gewogICAgIFBST1BfQ1JFQVRFLAogICAgIFBST1BfUkVGTEVDVEVEX1NUUklOR19BVFRSLAog
ICAgIFBST1BfUkVGTEVDVEVEX0lOVEVHUkFMX0FUVFIsCisgICAgUFJPUF9SRUZMRUNURURfVU5T
SUdORURfSU5URUdSQUxfQVRUUiwKICAgICBQUk9QX1JFRkxFQ1RFRF9CT09MRUFOX0FUVFIsCiAg
ICAgUFJPUF9SRUZMRUNURURfVVJMX0FUVFIsCiAgICAgUFJPUF9SRUZMRUNURURfTk9OX0VNUFRZ
X1VSTF9BVFRSLApAQCAtMTE4MCw2ICsxMjAwLDExIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21f
dGVzdF9vYmpfc2V0X3Byb3AKICAgICAgICAgY29yZVNlbGYtPnNldEludGVncmFsQXR0cmlidXRl
KFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkaW50ZWdyYWxhdHRyQXR0ciwgKGdfdmFsdWVf
Z2V0X2xvbmcodmFsdWUpKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyAgICBjYXNlIFBST1Bf
UkVGTEVDVEVEX1VOU0lHTkVEX0lOVEVHUkFMX0FUVFI6CisgICAgeworICAgICAgICBjb3JlU2Vs
Zi0+c2V0VW5zaWduZWRJbnRlZ3JhbEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxl
Y3RlZHVuc2lnbmVkaW50ZWdyYWxhdHRyQXR0ciwgKGdfdmFsdWVfZ2V0X3Vsb25nKHZhbHVlKSkp
OworICAgICAgICBicmVhazsKKyAgICB9CiAgICAgY2FzZSBQUk9QX1JFRkxFQ1RFRF9CT09MRUFO
X0FUVFI6CiAgICAgewogICAgICAgICBjb3JlU2VsZi0+c2V0Qm9vbGVhbkF0dHJpYnV0ZShXZWJD
b3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZGJvb2xlYW5hdHRyQXR0ciwgKGdfdmFsdWVfZ2V0X2Jv
b2xlYW4odmFsdWUpKSk7CkBAIC0xMzU2LDYgKzEzODEsMTEgQEAgc3RhdGljIHZvaWQgd2Via2l0
X2RvbV90ZXN0X29ial9nZXRfcHJvcAogICAgICAgICBnX3ZhbHVlX3NldF9sb25nKHZhbHVlLCBj
b3JlU2VsZi0+Z2V0SW50ZWdyYWxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0
ZWRpbnRlZ3JhbGF0dHJBdHRyKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KKyAgICBjYXNlIFBS
T1BfUkVGTEVDVEVEX1VOU0lHTkVEX0lOVEVHUkFMX0FUVFI6CisgICAgeworICAgICAgICBnX3Zh
bHVlX3NldF91bG9uZyh2YWx1ZSwgY29yZVNlbGYtPmdldFVuc2lnbmVkSW50ZWdyYWxBdHRyaWJ1
dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWR1bnNpZ25lZGludGVncmFsYXR0ckF0dHIp
KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogICAgIGNhc2UgUFJPUF9SRUZMRUNURURfQk9PTEVB
Tl9BVFRSOgogICAgIHsKICAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgY29yZVNl
bGYtPmhhc0F0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZGJvb2xlYW5hdHRy
QXR0cikpOwpAQCAtMTU5NCw2ICsxNjI0LDE1IEBAIEdfTUFYTE9ORywgLyogbWF4ICovCiAwLCAv
KiBkZWZhdWx0ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKICAgICBnX29iamVjdF9j
bGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RDbGFzcywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFBST1BfUkVGTEVDVEVEX1VOU0lHTkVEX0lOVEVHUkFMX0FUVFIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfdWxvbmcoInJl
ZmxlY3RlZC11bnNpZ25lZC1pbnRlZ3JhbC1hdHRyIiwgLyogbmFtZSAqLworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdF9vYmpf
cmVmbGVjdGVkLXVuc2lnbmVkLWludGVncmFsLWF0dHIiLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAq
LworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAicmVhZC13cml0ZSAgZ3Vsb25nIFRlc3RPYmoucmVmbGVjdGVkLXVuc2lnbmVkLWludGVn
cmFsLWF0dHIiLCAvKiBsb25nZXIgLSBjb3VsZCBkbyB3aXRoIHNvbWUgZXh0cmEgZG9jIHN0dWZm
IGhlcmUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMCwgLyogbWluICovCitHX01BWFVMT05HLCAvKiBtYXggKi8KKzAsIC8qIGRl
ZmF1bHQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURXUklURSkpOworICAgIGdfb2JqZWN0X2NsYXNz
X2luc3RhbGxfcHJvcGVydHkoZ29iamVjdENsYXNzLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgUFJPUF9SRUZMRUNURURfQk9PTEVBTl9BVFRSLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oInJlZmxlY3RlZC1ib29s
ZWFuLWF0dHIiLCAvKiBuYW1lICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0X29ial9yZWZsZWN0ZWQtYm9vbGVhbi1hdHRy
IiwgLyogc2hvcnQgZGVzY3JpcHRpb24gKi8KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oCShyZXZpc2lv
biA3MzQwMCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0
RE9NVGVzdE9iai5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDgsNiArMjA4LDEyIEBAIHdlYmtpdF9k
b21fdGVzdF9vYmpfZ2V0X3JlZmxlY3RlZF9pbnRlZ3IKIFdFQktJVF9BUEkgdm9pZAogd2Via2l0
X2RvbV90ZXN0X29ial9zZXRfcmVmbGVjdGVkX2ludGVncmFsX2F0dHIoV2ViS2l0RE9NVGVzdE9i
aiogc2VsZiwgZ2xvbmcgdmFsdWUpOwogCitXRUJLSVRfQVBJIGd1bG9uZword2Via2l0X2RvbV90
ZXN0X29ial9nZXRfcmVmbGVjdGVkX3Vuc2lnbmVkX2ludGVncmFsX2F0dHIoV2ViS2l0RE9NVGVz
dE9iaiogc2VsZik7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2RvbV90ZXN0X29ial9zZXRf
cmVmbGVjdGVkX3Vuc2lnbmVkX2ludGVncmFsX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwg
Z3Vsb25nIHZhbHVlKTsKKwogV0VCS0lUX0FQSSBnYm9vbGVhbgogd2Via2l0X2RvbV90ZXN0X29i
al9nZXRfcmVmbGVjdGVkX2Jvb2xlYW5fYXR0cihXZWJLaXRET01UZXN0T2JqKiBzZWxmKTsKIApJ
bmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3Bw
CShyZXZpc2lvbiA3MzQwMCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE9iai5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1LDcgKzU1LDcgQEAgQVNTRVJUX0NMQVNT
X0ZJVFNfSU5fQ0VMTChKU1Rlc3RPYmopOwogI2RlZmluZSBUSFVOS19HRU5FUkFUT1IoZ2VuZXJh
dG9yKQogI2VuZGlmCiAKLXN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpUYWJs
ZVZhbHVlc1szNl0gPQorc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialRhYmxl
VmFsdWVzWzM3XSA9CiB7CiAgICAgeyAicmVhZE9ubHlJbnRBdHRyIiwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdE9ialJlYWRPbmx5SW50QXR0ciksIChpbnRwdHJfdCkwIFRIVU5LX0dFTkVSQVRPUigw
KSB9LAogICAgIHsgInJlYWRPbmx5U3RyaW5nQXR0ciIsIERvbnREZWxldGUgfCBSZWFkT25seSwg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RP
YmpSZWFkT25seVN0cmluZ0F0dHIpLCAoaW50cHRyX3QpMCBUSFVOS19HRU5FUkFUT1IoMCkgfSwK
QEAgLTcxLDYgKzcxLDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialRh
YgogICAgIHsgImNyZWF0ZSIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ3JlYXRlKSwgKGludHB0cl90KXNldEpT
VGVzdE9iakNyZWF0ZSBUSFVOS19HRU5FUkFUT1IoMCkgfSwKICAgICB7ICJyZWZsZWN0ZWRTdHJp
bmdBdHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKSwgKGludHB0cl90KXNl
dEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIgVEhVTktfR0VORVJBVE9SKDApIH0sCiAgICAg
eyAicmVmbGVjdGVkSW50ZWdyYWxBdHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19j
YXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3Jh
bEF0dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyIFRIVU5L
X0dFTkVSQVRPUigwKSB9LAorICAgIHsgInJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyIiwg
RG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3RPYmpSZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0ciksIChpbnRwdHJfdClz
ZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0ciBUSFVOS19HRU5FUkFUT1Io
MCkgfSwKICAgICB7ICJyZWZsZWN0ZWRCb29sZWFuQXR0ciIsIERvbnREZWxldGUsIChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqUmVmbGVj
dGVkQm9vbGVhbkF0dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqUmVmbGVjdGVkQm9vbGVhbkF0
dHIgVEhVTktfR0VORVJBVE9SKDApIH0sCiAgICAgeyAicmVmbGVjdGVkVVJMQXR0ciIsIERvbnRE
ZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0ciksIChpbnRwdHJfdClzZXRKU1Rlc3RPYmpSZWZsZWN0
ZWRVUkxBdHRyIFRIVU5LX0dFTkVSQVRPUigwKSB9LAogICAgIHsgInJlZmxlY3RlZE5vbkVtcHR5
VVJMQXR0ciIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqUmVmbGVjdGVkTm9uRW1wdHlVUkxBdHRyKSwgKGludHB0
cl90KXNldEpTVGVzdE9ialJlZmxlY3RlZE5vbkVtcHR5VVJMQXR0ciBUSFVOS19HRU5FUkFUT1Io
MCkgfSwKQEAgLTQwNyw2ICs0MDgsMTUgQEAgSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRJbnRl
Z3JhbEF0dHIoRQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK0pTVmFsdWUganNUZXN0T2JqUmVm
bGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RC
YXNlLCBjb25zdCBJZGVudGlmaWVyJikKK3sKKyAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBz
dGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdChzbG90QmFzZSkpOworICAgIFVOVVNFRF9Q
QVJBTShleGVjKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2Fz
dGVkVGhpcy0+aW1wbCgpKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKHN0ZDo6bWF4
KDAsIGltcC0+Z2V0SW50ZWdyYWxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0
ZWR1bnNpZ25lZGludGVncmFsYXR0ckF0dHIpKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwog
SlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImKQogewogICAgIEpTVGVzdE9iaiogY2Fz
dGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CkBA
IC02NzksNiArNjg5LDEzIEBAIHZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRy
KEUKICAgICBpbXAtPnNldEludGVncmFsQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVm
bGVjdGVkaW50ZWdyYWxhdHRyQXR0ciwgdmFsdWUudG9JbnQzMihleGVjKSk7CiB9CiAKK3ZvaWQg
c2V0SlNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIoRXhlY1N0YXRlKiBleGVj
LCBKU09iamVjdCogdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBKU1Rlc3RPYmoq
IGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKKyAgICBU
ZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsK
KyAgICBpbXAtPnNldFVuc2lnbmVkSW50ZWdyYWxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVz
OjpyZWZsZWN0ZWR1bnNpZ25lZGludGVncmFsYXR0ckF0dHIsIHZhbHVlLnRvVUludDMyKGV4ZWMp
KTsKK30KKwogdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0cihFeGVjU3RhdGUq
IGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIEpTVGVz
dE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOwpJ
bmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgJKHJl
dmlzaW9uIDczNDAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0OSw2ICsxNDksOCBAQCBKU0M6OkpTVmFsdWUganNU
ZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0CiB2b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmlu
Z0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsKIEpT
Qzo6SlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHIoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwogdm9pZCBzZXRKU1Rlc3RP
YmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0Kiwg
SlNDOjpKU1ZhbHVlKTsKK0pTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRVbnNpZ25lZElu
dGVncmFsQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVu
dGlmaWVyJik7Cit2b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRy
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7CiBKU0M6OkpT
VmFsdWUganNUZXN0T2JqUmVmbGVjdGVkQm9vbGVhbkF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwogdm9pZCBzZXRKU1Rlc3RPYmpSZWZs
ZWN0ZWRCb29sZWFuQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpT
VmFsdWUpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFVSTEF0dHIoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwpJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgJKHJldmlz
aW9uIDczNDAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0
T2JqLmgJKHdvcmtpbmcgY29weSkKQEAgLTc1LDYgKzc1LDggQEAgZW51bSB7CiAtICh2b2lkKXNl
dFJlZmxlY3RlZFN0cmluZ0F0dHI6KE5TU3RyaW5nICopbmV3UmVmbGVjdGVkU3RyaW5nQXR0cjsK
IC0gKGludClyZWZsZWN0ZWRJbnRlZ3JhbEF0dHI7CiAtICh2b2lkKXNldFJlZmxlY3RlZEludGVn
cmFsQXR0cjooaW50KW5ld1JlZmxlY3RlZEludGVncmFsQXR0cjsKKy0gKHVuc2lnbmVkKXJlZmxl
Y3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyOworLSAodm9pZClzZXRSZWZsZWN0ZWRVbnNpZ25lZElu
dGVncmFsQXR0cjoodW5zaWduZWQpbmV3UmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHI7CiAt
IChCT09MKXJlZmxlY3RlZEJvb2xlYW5BdHRyOwogLSAodm9pZClzZXRSZWZsZWN0ZWRCb29sZWFu
QXR0cjooQk9PTCluZXdSZWZsZWN0ZWRCb29sZWFuQXR0cjsKIC0gKE5TU3RyaW5nICopcmVmbGVj
dGVkVVJMQXR0cjsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9N
VGVzdE9iai5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9P
YmpDL0RPTVRlc3RPYmoubW0JKHJldmlzaW9uIDczNDAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMzAsNiAr
MjMwLDE4IEBAIC0gKHZvaWQpc2V0UmVmbGVjdGVkSW50ZWdyYWxBdHRyOihpbnQpbmUKICAgICBJ
TVBMLT5zZXRJbnRlZ3JhbEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZGlu
dGVncmFsYXR0ckF0dHIsIG5ld1JlZmxlY3RlZEludGVncmFsQXR0cik7CiB9CiAKKy0gKHVuc2ln
bmVkKXJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyCit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRVbnNpZ25lZEludGVn
cmFsQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkdW5zaWduZWRpbnRlZ3Jh
bGF0dHJBdHRyKTsKK30KKworLSAodm9pZClzZXRSZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0
cjoodW5zaWduZWQpbmV3UmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIKK3sKKyAgICBXZWJD
b3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0VW5zaWduZWRJ
bnRlZ3JhbEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZHVuc2lnbmVkaW50
ZWdyYWxhdHRyQXR0ciwgbmV3UmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIpOworfQorCiAt
IChCT09MKXJlZmxlY3RlZEJvb2xlYW5BdHRyCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0T2JqLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RPYmouY3BwCShyZXZpc2lvbiA3MzQwMCkKKysrIFdlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1Niw2ICsy
NTYsMjIgQEAgc3RhdGljIHZvaWQgcmVmbGVjdGVkSW50ZWdyYWxBdHRyQXR0clNldAogICAgIHJl
dHVybjsKIH0KIAorc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiByZWZsZWN0ZWRVbnNpZ25l
ZEludGVncmFsQXR0ckF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0
IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5y
ZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0ci5fZ2V0Iik7CisgICAgVGVzdE9iaiogaW1wID0g
VjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICByZXR1cm4gdjg6OkludGVn
ZXI6Ok5ld0Zyb21VbnNpZ25lZChpbXAtPmdldFVuc2lnbmVkSW50ZWdyYWxBdHRyaWJ1dGUoV2Vi
Q29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWR1bnNpZ25lZGludGVncmFsYXR0ckF0dHIpKTsKK30K
Kworc3RhdGljIHZvaWQgcmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHJBdHRyU2V0dGVyKHY4
OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29u
c3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2Jq
LnJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyLl9zZXQiKTsKKyAgICBUZXN0T2JqKiBpbXAg
PSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAgIHVuc2lnbmVkIHYgPSB0
b1VJbnQzMih2YWx1ZSk7CisgICAgaW1wLT5zZXRVbnNpZ25lZEludGVncmFsQXR0cmlidXRlKFdl
YkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkdW5zaWduZWRpbnRlZ3JhbGF0dHJBdHRyLCB2KTsK
KyAgICByZXR1cm47Cit9CisKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcmVmbGVjdGVk
Qm9vbGVhbkF0dHJBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2
ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoucmVm
bGVjdGVkQm9vbGVhbkF0dHIuX2dldCIpOwpAQCAtMTE2Myw2ICsxMTc5LDggQEAgc3RhdGljIGNv
bnN0IEJhdGNoZWRBdHRyaWJ1dGUgVGVzdE9iakF0dAogICAgIHsicmVmbGVjdGVkU3RyaW5nQXR0
ciIsIFRlc3RPYmpJbnRlcm5hbDo6cmVmbGVjdGVkU3RyaW5nQXR0ckF0dHJHZXR0ZXIsIFRlc3RP
YmpJbnRlcm5hbDo6cmVmbGVjdGVkU3RyaW5nQXR0ckF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAq
Lywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nh
c3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99
LAogICAgIC8vIEF0dHJpYnV0ZSAncmVmbGVjdGVkSW50ZWdyYWxBdHRyJyAoVHlwZTogJ2F0dHJp
YnV0ZScgRXh0QXR0cjogJ1JlZmxlY3QnKQogICAgIHsicmVmbGVjdGVkSW50ZWdyYWxBdHRyIiwg
VGVzdE9iakludGVybmFsOjpyZWZsZWN0ZWRJbnRlZ3JhbEF0dHJBdHRyR2V0dGVyLCBUZXN0T2Jq
SW50ZXJuYWw6OnJlZmxlY3RlZEludGVncmFsQXR0ckF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAq
Lywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nh
c3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99
LAorICAgIC8vIEF0dHJpYnV0ZSAncmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHInIChUeXBl
OiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnUmVmbGVjdCcpCisgICAgeyJyZWZsZWN0ZWRVbnNpZ25l
ZEludGVncmFsQXR0ciIsIFRlc3RPYmpJbnRlcm5hbDo6cmVmbGVjdGVkVW5zaWduZWRJbnRlZ3Jh
bEF0dHJBdHRyR2V0dGVyLCBUZXN0T2JqSW50ZXJuYWw6OnJlZmxlY3RlZFVuc2lnbmVkSW50ZWdy
YWxBdHRyQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNz
Q29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+
KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiAgICAgLy8gQXR0cmlidXRlICdyZWZs
ZWN0ZWRCb29sZWFuQXR0cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICdSZWZsZWN0JykK
ICAgICB7InJlZmxlY3RlZEJvb2xlYW5BdHRyIiwgVGVzdE9iakludGVybmFsOjpyZWZsZWN0ZWRC
b29sZWFuQXR0ckF0dHJHZXR0ZXIsIFRlc3RPYmpJbnRlcm5hbDo6cmVmbGVjdGVkQm9vbGVhbkF0
dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250
cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6
Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ3JlZmxlY3Rl
ZFVSTEF0dHInIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnVVJMIFJlZmxlY3QnKQpJbmRl
eDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkocmV2aXNpb24gNzM0MDkpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMC0xMi0wNiAgQW5keSBFc3RlcyAgPGFlc3Rlc0Bh
cHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVmbGVjdGVkIHVuc2lnbmVkIGF0dHJpYnV0ZXMgc2hvdWxkIGJlIGluIHRoZSByYW5nZSBb
MCwgMl4zMSkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01MDQ3MgorCisgICAgICAgICogZmFzdC9odG1sL21hcnF1ZWUtZWxlbWVudC5odG1sOiBHaXZl
IGhzcGFjZSBhbmQgdnNwYWNlIG5lZ2F0aXZlIHZhbHVlcworICAgICAgICBhbmQgdGVzdCB3aGF0
IHRoZWlyIGNvcnJlc3BvbmRpbmcgSURMIGF0dHJpYnV0ZXMgcmVmbGVjdC4KKyAgICAgICAgKiBm
YXN0L2h0bWwvbWFycXVlZS1lbGVtZW50LWV4cGVjdGVkLnR4dDoKKwogMjAxMC0xMi0wNiAgVmlj
dG9yIFdhbmcgIDx2aWN0b3J3QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9odG1sL21hcnF1ZWUtZWxlbWVudC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9odG1sL21hcnF1ZWUtZWxlbWVudC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDczNDAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9odG1sL21hcnF1
ZWUtZWxlbWVudC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDEwIEBA
IFBBU1MgbWFycXVlZS5oZWlnaHQgaXMgIjIwMHB4IgogUEFTUyBtYXJxdWVlLmhzcGFjZSBpcyAx
MAogImhzcGFjZSIgSURMIGF0dHJpYnV0ZSBjYW4gYmUgbW9kaWZpZWQ6CiBQQVNTIG1hcnF1ZWUu
aHNwYWNlIGlzIDIwCisiaHNwYWNlIiBJREwgYXR0cmlidXRlIGlzIDAgd2hlbiBjb250ZW50IGF0
dHJpYnV0ZSBpcyBuZWdhdGl2ZToKK1BBU1MgbWFycXVlZS5oc3BhY2UgaXMgMAorImhzcGFjZSIg
SURMIGF0dHJpYnV0ZSBpcyAwIHdoZW4gY29udGVudCBhdHRyaWJ1dGUgaXMgdG9vIGxhcmdlOgor
UEFTUyBtYXJxdWVlLmhzcGFjZSBpcyAwCiAibG9vcCIgSURMIGF0dHJpYnV0ZSByZWZsZWN0cyBj
b250ZW50IGF0dHJpYnV0ZToKIFBBU1MgbWFycXVlZS5sb29wIGlzIDMKICJsb29wIiBJREwgYXR0
cmlidXRlIGNhbiBiZSBtb2RpZmllZDoKQEAgLTQzLDYgKzQ3LDEwIEBAIFBBU1MgbWFycXVlZS50
cnVlU3BlZWQgaXMgZmFsc2UKIFBBU1MgbWFycXVlZS52c3BhY2UgaXMgMTAKICJ2c3BhY2UiIElE
TCBhdHRyaWJ1dGUgY2FuIGJlIG1vZGlmaWVkOgogUEFTUyBtYXJxdWVlLnZzcGFjZSBpcyAyMAor
InZzcGFjZSIgSURMIGF0dHJpYnV0ZSBpcyAwIHdoZW4gY29udGVudCBhdHRyaWJ1dGUgaXMgbmVn
YXRpdmU6CitQQVNTIG1hcnF1ZWUudnNwYWNlIGlzIDAKKyJ2c3BhY2UiIElETCBhdHRyaWJ1dGUg
aXMgMCB3aGVuIGNvbnRlbnQgYXR0cmlidXRlIGlzIHRvbyBsYXJnZToKK1BBU1MgbWFycXVlZS52
c3BhY2UgaXMgMAogRGVmYXVsdCAic2Nyb2xsQW1vdW50IiB2YWx1ZSBpcyA2OgogUEFTUyBtYXJx
dWVlLnNjcm9sbEFtb3VudCBpcyA2CiAic2Nyb2xsQW1vdW50IiB1c2VzIGRlZmF1bHQgdmFsdWUg
d2hlbiBjb250ZW50IGF0dHJpYnV0ZSBpcyBub3QgYSBudW1iZXI6CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2h0bWwvbWFycXVlZS1lbGVtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9odG1sL21hcnF1ZWUtZWxlbWVudC5odG1sCShyZXZpc2lvbiA3MzQwMCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvaHRtbC9tYXJxdWVlLWVsZW1lbnQuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtNjksNiArNjksMTYgQEAgbWFycXVlZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYXJx
dQogbWFycXVlZS5oc3BhY2U9MjA7CiBzaG91bGRCZSgnbWFycXVlZS5oc3BhY2UnLCAnMjAnKTsK
IAorZGVidWcoJyJoc3BhY2UiIElETCBhdHRyaWJ1dGUgaXMgMCB3aGVuIGNvbnRlbnQgYXR0cmli
dXRlIGlzIG5lZ2F0aXZlOicpOwordGVzdFBhcmVudC5pbm5lckhUTUwgPSAnPG1hcnF1ZWUgaWQ9
Im1hcnF1ZWUiIGhzcGFjZT0iLTEiPnRlc3Q8L21hcnF1ZWU+JzsKK21hcnF1ZWUgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnbWFycXVlZScpOworc2hvdWxkQmUoJ21hcnF1ZWUuaHNwYWNlJywg
JzAnKTsKKworZGVidWcoJyJoc3BhY2UiIElETCBhdHRyaWJ1dGUgaXMgMCB3aGVuIGNvbnRlbnQg
YXR0cmlidXRlIGlzIHRvbyBsYXJnZTonKTsKK3Rlc3RQYXJlbnQuaW5uZXJIVE1MID0gJzxtYXJx
dWVlIGlkPSJtYXJxdWVlIiBoc3BhY2U9IjIxNDc0ODM2NDgiPnRlc3Q8L21hcnF1ZWU+JzsKK21h
cnF1ZWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWFycXVlZScpOworc2hvdWxkQmUoJ21h
cnF1ZWUuaHNwYWNlJywgJzAnKTsKKwogZGVidWcoJyJsb29wIiBJREwgYXR0cmlidXRlIHJlZmxl
Y3RzIGNvbnRlbnQgYXR0cmlidXRlOicpOwogdGVzdFBhcmVudC5pbm5lckhUTUwgPSAnPG1hcnF1
ZWUgaWQ9Im1hcnF1ZWUiIGxvb3A9IjMiPnRlc3Q8L21hcnF1ZWU+JzsKIG1hcnF1ZWUgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnbWFycXVlZScpOwpAQCAtMTI0LDYgKzEzNCwxNiBAQCBtYXJx
dWVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21hcnF1CiBtYXJxdWVlLnZzcGFjZT0yMDsK
IHNob3VsZEJlKCdtYXJxdWVlLnZzcGFjZScsICcyMCcpOwogCitkZWJ1ZygnInZzcGFjZSIgSURM
IGF0dHJpYnV0ZSBpcyAwIHdoZW4gY29udGVudCBhdHRyaWJ1dGUgaXMgbmVnYXRpdmU6Jyk7Cit0
ZXN0UGFyZW50LmlubmVySFRNTCA9ICc8bWFycXVlZSBpZD0ibWFycXVlZSIgdnNwYWNlPSItMSI+
dGVzdDwvbWFycXVlZT4nOworbWFycXVlZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYXJx
dWVlJyk7CitzaG91bGRCZSgnbWFycXVlZS52c3BhY2UnLCAnMCcpOworCitkZWJ1ZygnInZzcGFj
ZSIgSURMIGF0dHJpYnV0ZSBpcyAwIHdoZW4gY29udGVudCBhdHRyaWJ1dGUgaXMgdG9vIGxhcmdl
OicpOwordGVzdFBhcmVudC5pbm5lckhUTUwgPSAnPG1hcnF1ZWUgaWQ9Im1hcnF1ZWUiIHZzcGFj
ZT0iMjE0NzQ4MzY0OCI+dGVzdDwvbWFycXVlZT4nOworbWFycXVlZSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdtYXJxdWVlJyk7CitzaG91bGRCZSgnbWFycXVlZS52c3BhY2UnLCAnMCcpOwor
CiBkZWJ1ZygnRGVmYXVsdCAic2Nyb2xsQW1vdW50IiB2YWx1ZSBpcyA2OicpOwogdGVzdFBhcmVu
dC5pbm5lckhUTUwgPSAnPG1hcnF1ZWUgaWQ9Im1hcnF1ZWUiPnRlc3Q8L21hcnF1ZWU+JzsKIG1h
cnF1ZWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWFycXVlZScpOwo=
</data>
<flag name="review"
          id="66579"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>