<?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>138208</bug_id>
          
          <creation_ts>2014-10-29 21:20:52 -0700</creation_ts>
          <short_desc>Move -webkit-marquee-increment property to the new StyleBuilder</short_desc>
          <delta_ts>2014-10-31 16:46:20 -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>CSS</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>
          <dependson>137910</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1044973</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-29 21:20:52 -0700</bug_when>
    <thetext>Move -webkit-marquee-increment property from DeprecatedStyleBuilder to the new StyleBuilder so that it is generated from CSSPropertyNames.in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044977</commentid>
    <comment_count>1</comment_count>
      <attachid>240657</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-29 21:52:53 -0700</bug_when>
    <thetext>Created attachment 240657
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045021</commentid>
    <comment_count>2</comment_count>
      <attachid>240657</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-10-30 06:08:46 -0700</bug_when>
    <thetext>Comment on attachment 240657
Patch

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

&gt; Source/WebCore/css/StyleBuilderCustom.h:47
&gt; +    auto&amp; primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(value);

What guarantees this cast is safe? Could we have applyValueWebkitMarqueeIncrement() take a CSSPrimitiveValue instead of a CSSValue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045053</commentid>
    <comment_count>3</comment_count>
      <attachid>240680</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-30 10:29:22 -0700</bug_when>
    <thetext>Created attachment 240680
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045055</commentid>
    <comment_count>4</comment_count>
      <attachid>240657</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-30 10:33:46 -0700</bug_when>
    <thetext>Comment on attachment 240657
Patch

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

&gt;&gt; Source/WebCore/css/StyleBuilderCustom.h:47
&gt;&gt; +    auto&amp; primitiveValue = downcast&lt;CSSPrimitiveValue&gt;(value);
&gt; 
&gt; What guarantees this cast is safe? Could we have applyValueWebkitMarqueeIncrement() take a CSSPrimitiveValue instead of a CSSValue?

The CSS Parser is already marking sure the value for -webkit-marquee-increment property is a CSSPrimitiveValue so this cast should be safe and the assertion in downcast&lt;&gt;() should protect us against a mismatch between the CSS Parser and the StyleBuilder. The reason the StyleBuilder functions take a CSSValue and not a CSSPrimitiveValue is because not all properties have a CSSPrimitiveValue as value. Some have a CSSValueList for e.g. and make prop.pl does not have any way to know as far as I can tell because this information is coded in the CSSParser, not CSSPropertyNames.in.

I have added a new layout test in the latest patch iteration to gain coverage for non CSSPrimitive values on  -webkit-marquee-increment, and make sure we don&apos;t crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045133</commentid>
    <comment_count>5</comment_count>
      <attachid>240702</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-30 14:37:13 -0700</bug_when>
    <thetext>Created attachment 240702
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045219</commentid>
    <comment_count>6</comment_count>
      <attachid>240723</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-30 20:42:42 -0700</bug_when>
    <thetext>Created attachment 240723
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045284</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-10-31 09:58:09 -0700</bug_when>
    <thetext>ping review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045426</commentid>
    <comment_count>8</comment_count>
      <attachid>240723</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-10-31 16:19:26 -0700</bug_when>
    <thetext>Comment on attachment 240723
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045440</commentid>
    <comment_count>9</comment_count>
      <attachid>240723</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-31 16:46:15 -0700</bug_when>
    <thetext>Comment on attachment 240723
Patch

Clearing flags on attachment: 240723

Committed r175439: &lt;http://trac.webkit.org/changeset/175439&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045441</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-31 16:46:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240657</attachid>
            <date>2014-10-29 21:52:53 -0700</date>
            <delta_ts>2014-10-30 10:29:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138208-20141029215302.patch</filename>
            <type>text/plain</type>
            <size>10906</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWYwOGJmMTdkYjljYzU1
Y2Q1ZGRlNTJhOGNhMTYxNWI1YmFiNDNmYS4uMzgwNGY3NjBjYjUxZDFhNGNmZDE5MDRlMGI1YTBh
ZjVhM2M2YjZlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE0LTEwLTI5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSAtd2Via2l0LW1hcnF1
ZWUtaW5jcmVtZW50IHByb3BlcnR5IHRvIHRoZSBuZXcgU3R5bGVCdWlsZGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzgyMDgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIC13ZWJraXQtbWFycXVl
ZS1pbmNyZW1lbnQgcHJvcGVydHkgZnJvbSBEZXByZWNhdGVkU3R5bGVCdWlsZGVyIHRvCisgICAg
ICAgIHRoZSBuZXcgU3R5bGVCdWlsZGVyIHNvIHRoYXQgaXQgaXMgZ2VuZXJhdGVkIGZyb20gQ1NT
UHJvcGVydHlOYW1lcy5pbi4KKyAgICAgICAgQ3VzdG9tIGNvZGUgaXMgdXNlZCB0byBzZXQgdGhl
IHZhbHVlIGR1ZSB0byB0aGUgIWxlbmd0aC5pc1VuZGVmaW5lZCgpCisgICAgICAgIGNoZWNrIGJl
Zm9yZSBjYWxsaW5nIHNldE1hcnF1ZWVJbmNyZW1lbnQoKS4KKworICAgICAgICBObyBuZXcgdGVz
dHMsIG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIGNzcy9DU1NQcm9wZXJ0eU5hbWVz
LmluOgorICAgICAgICAqIGNzcy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRlcHJlY2F0ZWRTdHlsZUJ1aWxkZXI6OkRlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIp
OgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eUxlbmd0aDo6c2V0VmFsdWUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eUxlbmd0aDo6YXBwbHlWYWx1ZSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5TGVuZ3RoOjpjcmVhdGVI
YW5kbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlNYXJxdWVl
SW5jcmVtZW50OjphcHBseVZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5
UHJvcGVydHlNYXJxdWVlSW5jcmVtZW50OjpjcmVhdGVIYW5kbGVyKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBjc3MvU3R5bGVCdWlsZGVyQ3VzdG9tLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUJ1
aWxkZXJGdW5jdGlvbnM6OmFwcGx5VmFsdWVXZWJraXRNYXJxdWVlSW5jcmVtZW50KToKKwogMjAx
NC0xMC0yOSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAg
ICAgICAgIEFTU0VSVElPTiBOT1QgUkVBQ0hFRCBiZWNhdXNlIFJlbmRlclN0eWxlOjpzZXRXb3Jk
U3BhY2luZygpIGRvZXMgbm90IGhhbmRsZSBhIExlbmd0aCB2YWx1ZSBvZiB0eXBlICdDYWxjdWxh
dGVkJy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmlu
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KaW5kZXggZTkwZjExMTFk
NTE1N2NiNDkyNTUzYjY5YjAwODg3YTVlOTM2ODg5My4uNDYwMGIxMDE3MWZhZjlhNjA2MTQyOTg2
YjZiMmRmMjYyNTVhODg2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3Bl
cnR5TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4K
QEAgLTQwMiw3ICs0MDIsNyBAQCBqdXN0aWZ5LWNvbnRlbnQgW05ld1N0eWxlQnVpbGRlcl0KIC13
ZWJraXQtbWFyZ2luLXN0YXJ0CiAtd2Via2l0LW1hcnF1ZWUKIC13ZWJraXQtbWFycXVlZS1kaXJl
Y3Rpb24gW05ld1N0eWxlQnVpbGRlcl0KLS13ZWJraXQtbWFycXVlZS1pbmNyZW1lbnQKKy13ZWJr
aXQtbWFycXVlZS1pbmNyZW1lbnQgW05ld1N0eWxlQnVpbGRlciwgQ3VzdG9tPVZhbHVlXQogLXdl
YmtpdC1tYXJxdWVlLXJlcGV0aXRpb24KIC13ZWJraXQtbWFycXVlZS1zcGVlZAogLXdlYmtpdC1t
YXJxdWVlLXN0eWxlIFtOZXdTdHlsZUJ1aWxkZXIsIFR5cGVOYW1lPUVNYXJxdWVlQmVoYXZpb3Is
IE5hbWVGb3JNZXRob2RzPU1hcnF1ZWVCZWhhdmlvcl0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9E
ZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcAppbmRleCAzYmE0YjhkMTQ1NmRmMmYzOTJhMTFlYzJk
YTk0MTA3NTEyYWZmNGM1Li44ZWExMDljMDcyZjVlMzAxMTRlNjY1MTU2Y2U5MTFkN2JjYzkyNWIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3BwCkBA
IC0zMjAsNzMgKzMyMCw2IEBAIHB1YmxpYzoKICAgICB9CiB9OwogCi1lbnVtIExlbmd0aEF1dG8g
eyBBdXRvRGlzYWJsZWQgPSAwLCBBdXRvRW5hYmxlZCB9OwotZW51bSBMZW5ndGhMZWdhY3lJbnRy
aW5zaWMgeyBMZWdhY3lJbnRyaW5zaWNEaXNhYmxlZCA9IDAsIExlZ2FjeUludHJpbnNpY0VuYWJs
ZWQgfTsKLWVudW0gTGVuZ3RoSW50cmluc2ljIHsgSW50cmluc2ljRGlzYWJsZWQgPSAwLCBJbnRy
aW5zaWNFbmFibGVkIH07Ci1lbnVtIExlbmd0aE5vbmUgeyBOb25lRGlzYWJsZWQgPSAwLCBOb25l
RW5hYmxlZCB9OwotZW51bSBMZW5ndGhVbmRlZmluZWQgeyBVbmRlZmluZWREaXNhYmxlZCA9IDAs
IFVuZGVmaW5lZEVuYWJsZWQgfTsKLXRlbXBsYXRlIDxjb25zdCBMZW5ndGgmIChSZW5kZXJTdHls
ZTo6KmdldHRlckZ1bmN0aW9uKSgpIGNvbnN0LAotICAgICAgICAgIHZvaWQgKFJlbmRlclN0eWxl
Ojoqc2V0dGVyRnVuY3Rpb24pKExlbmd0aCksCi0gICAgICAgICAgTGVuZ3RoICgqaW5pdGlhbEZ1
bmN0aW9uKSgpLAotICAgICAgICAgIExlbmd0aEF1dG8gYXV0b0VuYWJsZWQgPSBBdXRvRGlzYWJs
ZWQsCi0gICAgICAgICAgTGVuZ3RoTGVnYWN5SW50cmluc2ljIGxlZ2FjeUludHJpbnNpY0VuYWJs
ZWQgPSBMZWdhY3lJbnRyaW5zaWNEaXNhYmxlZCwKLSAgICAgICAgICBMZW5ndGhJbnRyaW5zaWMg
aW50cmluc2ljRW5hYmxlZCA9IEludHJpbnNpY0Rpc2FibGVkLAotICAgICAgICAgIExlbmd0aE5v
bmUgbm9uZUVuYWJsZWQgPSBOb25lRGlzYWJsZWQsCi0gICAgICAgICAgTGVuZ3RoVW5kZWZpbmVk
IG5vbmVVbmRlZmluZWQgPSBVbmRlZmluZWREaXNhYmxlZD4KLWNsYXNzIEFwcGx5UHJvcGVydHlM
ZW5ndGggewotcHVibGljOgotICAgIHN0YXRpYyB2b2lkIHNldFZhbHVlKFJlbmRlclN0eWxlKiBz
dHlsZSwgTGVuZ3RoIHZhbHVlKSB7IChzdHlsZS0+KnNldHRlckZ1bmN0aW9uKShXVEY6Om1vdmUo
dmFsdWUpKTsgfQotICAgIHN0YXRpYyB2b2lkIGFwcGx5VmFsdWUoQ1NTUHJvcGVydHlJRCwgU3R5
bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlciwgQ1NTVmFsdWUqIHZhbHVlKQotICAgIHsKLSAgICAg
ICAgaWYgKCFpczxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKSkKLSAgICAgICAgICAgIHJldHVy
bjsKLQotICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSYgcHJpbWl0aXZlVmFsdWUgPSBkb3duY2Fz
dDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKTsKLSAgICAgICAgaWYgKG5vbmVFbmFibGVkICYm
IHByaW1pdGl2ZVZhbHVlLmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZU5vbmUpIHsKLSAgICAgICAg
ICAgIGlmIChub25lVW5kZWZpbmVkKQotICAgICAgICAgICAgICAgIHNldFZhbHVlKHN0eWxlUmVz
b2x2ZXItPnN0eWxlKCksIExlbmd0aChVbmRlZmluZWQpKTsKLSAgICAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29sdmVyLT5zdHlsZSgpLCBMZW5ndGgoKSk7
Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGxlZ2FjeUludHJpbnNpY0VuYWJsZWQpIHsKLSAgICAg
ICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVJbnRyaW5z
aWMpCi0gICAgICAgICAgICAgICAgc2V0VmFsdWUoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgTGVu
Z3RoKEludHJpbnNpYykpOwotICAgICAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUuZ2V0
VmFsdWVJRCgpID09IENTU1ZhbHVlTWluSW50cmluc2ljKQotICAgICAgICAgICAgICAgIHNldFZh
bHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIExlbmd0aChNaW5JbnRyaW5zaWMpKTsKLSAgICAg
ICAgfQotICAgICAgICBpZiAoaW50cmluc2ljRW5hYmxlZCkgewotICAgICAgICAgICAgaWYgKHBy
aW1pdGl2ZVZhbHVlLmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZVdlYmtpdE1pbkNvbnRlbnQpCi0g
ICAgICAgICAgICAgICAgc2V0VmFsdWUoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgTGVuZ3RoKE1p
bkNvbnRlbnQpKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLmdldFZhbHVl
SUQoKSA9PSBDU1NWYWx1ZVdlYmtpdE1heENvbnRlbnQpCi0gICAgICAgICAgICAgICAgc2V0VmFs
dWUoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgTGVuZ3RoKE1heENvbnRlbnQpKTsKLSAgICAgICAg
ICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZVdlYmtp
dEZpbGxBdmFpbGFibGUpCi0gICAgICAgICAgICAgICAgc2V0VmFsdWUoc3R5bGVSZXNvbHZlci0+
c3R5bGUoKSwgTGVuZ3RoKEZpbGxBdmFpbGFibGUpKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKHBy
aW1pdGl2ZVZhbHVlLmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZVdlYmtpdEZpdENvbnRlbnQpCi0g
ICAgICAgICAgICAgICAgc2V0VmFsdWUoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgTGVuZ3RoKEZp
dENvbnRlbnQpKTsKLSAgICAgICAgfQotCi0gICAgICAgIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRh
dGEgY29udmVyc2lvbkRhdGEgPSBzdHlsZVJlc29sdmVyLT51c2VTVkdab29tUnVsZXNGb3JMZW5n
dGgoKSA/Ci0gICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5zdGF0ZSgpLmNzc1RvTGVuZ3RoQ29u
dmVyc2lvbkRhdGEoKS5jb3B5V2l0aEFkanVzdGVkWm9vbSgxLjBmKQotICAgICAgICAgICAgOiBz
dHlsZVJlc29sdmVyLT5zdGF0ZSgpLmNzc1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoKTsKLSAgICAg
ICAgaWYgKGF1dG9FbmFibGVkICYmIHByaW1pdGl2ZVZhbHVlLmdldFZhbHVlSUQoKSA9PSBDU1NW
YWx1ZUF1dG8pCi0gICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29sdmVyLT5zdHlsZSgpLCBM
ZW5ndGgoKSk7Ci0gICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLmlzTGVuZ3RoKCkpIHsK
LSAgICAgICAgICAgIExlbmd0aCBsZW5ndGggPSBwcmltaXRpdmVWYWx1ZS5jb21wdXRlTGVuZ3Ro
PExlbmd0aD4oY29udmVyc2lvbkRhdGEpOwotICAgICAgICAgICAgbGVuZ3RoLnNldEhhc1F1aXJr
KHByaW1pdGl2ZVZhbHVlLmlzUXVpcmtWYWx1ZSgpKTsKLSAgICAgICAgICAgIHNldFZhbHVlKHN0
eWxlUmVzb2x2ZXItPnN0eWxlKCksIGxlbmd0aCk7Ci0gICAgICAgIH0gZWxzZSBpZiAocHJpbWl0
aXZlVmFsdWUuaXNQZXJjZW50YWdlKCkpCi0gICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29s
dmVyLT5zdHlsZSgpLCBMZW5ndGgocHJpbWl0aXZlVmFsdWUuZ2V0RG91YmxlVmFsdWUoKSwgUGVy
Y2VudCkpOwotICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS5pc0NhbGN1bGF0ZWRQZXJj
ZW50YWdlV2l0aExlbmd0aCgpKQotICAgICAgICAgICAgc2V0VmFsdWUoc3R5bGVSZXNvbHZlci0+
c3R5bGUoKSwgTGVuZ3RoKHByaW1pdGl2ZVZhbHVlLmNzc0NhbGNWYWx1ZSgpLT5jcmVhdGVDYWxj
dWxhdGlvblZhbHVlKGNvbnZlcnNpb25EYXRhKSkpOwotICAgIH0KLQotICAgIHN0YXRpYyBQcm9w
ZXJ0eUhhbmRsZXIgY3JlYXRlSGFuZGxlcigpCi0gICAgewotICAgICAgICBQcm9wZXJ0eUhhbmRs
ZXIgaGFuZGxlciA9IEFwcGx5UHJvcGVydHlEZWZhdWx0QmFzZTxjb25zdCBMZW5ndGgmLCBnZXR0
ZXJGdW5jdGlvbiwgTGVuZ3RoLCBzZXR0ZXJGdW5jdGlvbiwgTGVuZ3RoLCBpbml0aWFsRnVuY3Rp
b24+OjpjcmVhdGVIYW5kbGVyKCk7Ci0gICAgICAgIHJldHVybiBQcm9wZXJ0eUhhbmRsZXIoaGFu
ZGxlci5pbmhlcml0RnVuY3Rpb24oKSwgaGFuZGxlci5pbml0aWFsRnVuY3Rpb24oKSwgJmFwcGx5
VmFsdWUpOwotICAgIH0KLX07Ci0KIGVudW0gU3RyaW5nSWRlbnRCZWhhdmlvciB7IE5vdGhpbmdN
YXBzVG9OdWxsID0gMCwgTWFwTm9uZVRvTnVsbCwgTWFwQXV0b1RvTnVsbCB9OwogdGVtcGxhdGUg
PFN0cmluZ0lkZW50QmVoYXZpb3IgaWRlbnRCZWhhdmlvciwgY29uc3QgQXRvbWljU3RyaW5nJiAo
UmVuZGVyU3R5bGU6OipnZXR0ZXJGdW5jdGlvbikoKSBjb25zdCwgdm9pZCAoUmVuZGVyU3R5bGU6
OipzZXR0ZXJGdW5jdGlvbikoY29uc3QgQXRvbWljU3RyaW5nJiksIGNvbnN0IEF0b21pY1N0cmlu
ZyYgKCppbml0aWFsRnVuY3Rpb24pKCk+CiBjbGFzcyBBcHBseVByb3BlcnR5U3RyaW5nIHsKQEAg
LTExOTUsNDEgKzExMjgsNiBAQCBwdWJsaWM6CiAgICAgfQogfTsKIAotY2xhc3MgQXBwbHlQcm9w
ZXJ0eU1hcnF1ZWVJbmNyZW1lbnQgewotcHVibGljOgotICAgIHN0YXRpYyB2b2lkIGFwcGx5VmFs
dWUoQ1NTUHJvcGVydHlJRCwgU3R5bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlciwgQ1NTVmFsdWUq
IHZhbHVlKQotICAgIHsKLSAgICAgICAgaWYgKCFpczxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVl
KSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSYgcHJp
bWl0aXZlVmFsdWUgPSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKTsKLSAgICAg
ICAgTGVuZ3RoIG1hcnF1ZWVMZW5ndGgoVW5kZWZpbmVkKTsKLSAgICAgICAgc3dpdGNoIChwcmlt
aXRpdmVWYWx1ZS5nZXRWYWx1ZUlEKCkpIHsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZVNtYWxsOgot
ICAgICAgICAgICAgbWFycXVlZUxlbmd0aCA9IExlbmd0aCgxLCBGaXhlZCk7IC8vIDFweC4KLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1ZhbHVlTm9ybWFsOgotICAgICAgICAg
ICAgbWFycXVlZUxlbmd0aCA9IExlbmd0aCg2LCBGaXhlZCk7IC8vIDZweC4gVGhlIFdpbklFIGRl
ZmF1bHQuCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDU1NWYWx1ZUxhcmdlOgot
ICAgICAgICAgICAgbWFycXVlZUxlbmd0aCA9IExlbmd0aCgzNiwgRml4ZWQpOyAvLyAzNnB4Lgot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVJbnZhbGlkOgotICAgICAg
ICAgICAgbWFycXVlZUxlbmd0aCA9IHByaW1pdGl2ZVZhbHVlLmNvbnZlcnRUb0xlbmd0aDxGaXhl
ZEludGVnZXJDb252ZXJzaW9uIHwgUGVyY2VudENvbnZlcnNpb24gfCBDYWxjdWxhdGVkQ29udmVy
c2lvbj4oc3R5bGVSZXNvbHZlci0+c3RhdGUoKS5jc3NUb0xlbmd0aENvbnZlcnNpb25EYXRhKCku
Y29weVdpdGhBZGp1c3RlZFpvb20oMS4wZikpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGRlZmF1bHQ6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBpZiAoIW1h
cnF1ZWVMZW5ndGguaXNVbmRlZmluZWQoKSkKLSAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0
eWxlKCktPnNldE1hcnF1ZWVJbmNyZW1lbnQobWFycXVlZUxlbmd0aCk7Ci0gICAgfQotICAgIHN0
YXRpYyBQcm9wZXJ0eUhhbmRsZXIgY3JlYXRlSGFuZGxlcigpCi0gICAgewotICAgICAgICBQcm9w
ZXJ0eUhhbmRsZXIgaGFuZGxlciA9IEFwcGx5UHJvcGVydHlMZW5ndGg8JlJlbmRlclN0eWxlOjpt
YXJxdWVlSW5jcmVtZW50LCAmUmVuZGVyU3R5bGU6OnNldE1hcnF1ZWVJbmNyZW1lbnQsICZSZW5k
ZXJTdHlsZTo6aW5pdGlhbE1hcnF1ZWVJbmNyZW1lbnQ+OjpjcmVhdGVIYW5kbGVyKCk7Ci0gICAg
ICAgIHJldHVybiBQcm9wZXJ0eUhhbmRsZXIoaGFuZGxlci5pbmhlcml0RnVuY3Rpb24oKSwgaGFu
ZGxlci5pbml0aWFsRnVuY3Rpb24oKSwgJmFwcGx5VmFsdWUpOwotICAgIH0KLX07Ci0KIGNsYXNz
IEFwcGx5UHJvcGVydHlNYXJxdWVlUmVwZXRpdGlvbiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIHZv
aWQgYXBwbHlWYWx1ZShDU1NQcm9wZXJ0eUlELCBTdHlsZVJlc29sdmVyKiBzdHlsZVJlc29sdmVy
LCBDU1NWYWx1ZSogdmFsdWUpCkBAIC0yMjgwLDcgKzIxNzgsNiBAQCBEZXByZWNhdGVkU3R5bGVC
dWlsZGVyOjpEZXByZWNhdGVkU3R5bGVCdWlsZGVyKCkKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIo
Q1NTUHJvcGVydHlXZWJraXRGb250VmFyaWFudExpZ2F0dXJlcywgQXBwbHlQcm9wZXJ0eUZvbnRW
YXJpYW50TGlnYXR1cmVzOjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxl
cihDU1NQcm9wZXJ0eVdlYmtpdEh5cGhlbmF0ZUNoYXJhY3RlciwgQXBwbHlQcm9wZXJ0eVN0cmlu
ZzxNYXBBdXRvVG9OdWxsLCAmUmVuZGVyU3R5bGU6Omh5cGhlbmF0aW9uU3RyaW5nLCAmUmVuZGVy
U3R5bGU6OnNldEh5cGhlbmF0aW9uU3RyaW5nLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxIeXBoZW5h
dGlvblN0cmluZz46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENT
U1Byb3BlcnR5V2Via2l0TGluZUdyaWQsIEFwcGx5UHJvcGVydHlTdHJpbmc8TWFwTm9uZVRvTnVs
bCwgJlJlbmRlclN0eWxlOjpsaW5lR3JpZCwgJlJlbmRlclN0eWxlOjpzZXRMaW5lR3JpZCwgJlJl
bmRlclN0eWxlOjppbml0aWFsTGluZUdyaWQ+OjpjcmVhdGVIYW5kbGVyKCkpOwotICAgIHNldFBy
b3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdE1hcnF1ZWVJbmNyZW1lbnQsIEFwcGx5UHJv
cGVydHlNYXJxdWVlSW5jcmVtZW50OjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5
SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdE1hcnF1ZWVSZXBldGl0aW9uLCBBcHBseVByb3BlcnR5
TWFycXVlZVJlcGV0aXRpb246OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5k
bGVyKENTU1Byb3BlcnR5V2Via2l0TWFycXVlZVNwZWVkLCBBcHBseVByb3BlcnR5TWFycXVlZVNw
ZWVkOjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0
eVdlYmtpdE1hc2tCb3hJbWFnZSwgQXBwbHlQcm9wZXJ0eUJvcmRlckltYWdlPEJvcmRlck1hc2ss
IENTU1Byb3BlcnR5V2Via2l0TWFza0JveEltYWdlLCAmUmVuZGVyU3R5bGU6Om1hc2tCb3hJbWFn
ZSwgJlJlbmRlclN0eWxlOjpzZXRNYXNrQm94SW1hZ2U+OjpjcmVhdGVIYW5kbGVyKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlckN1c3RvbS5oIGIvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlckN1c3RvbS5oCmluZGV4IDc3N2VjZDBiM2I0MWRmOTdl
ZmM3OTlhNjE3MzMzYzE1NWZiZTk3MjEuLmNiNGNlMjg5NmM4Mjk2MDU0MWQ4ODNiZWY1NTE0YmQ4
NzVmNzZjODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDdXN0
b20uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ3VzdG9tLmgKQEAgLTQy
LDYgKzQyLDMwIEBAIGlubGluZSB2b2lkIGFwcGx5VmFsdWVXZWJraXRIeXBoZW5hdGVMaW1pdExp
bmVzKFN0eWxlUmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIsIENTCiAgICAgc3R5bGVSZXNvbHZlci5z
dHlsZSgpLT5zZXRIeXBoZW5hdGlvbkxpbWl0TGluZXMobnVtYmVyKTsKIH0KIAoraW5saW5lIHZv
aWQgYXBwbHlWYWx1ZVdlYmtpdE1hcnF1ZWVJbmNyZW1lbnQoU3R5bGVSZXNvbHZlciYgc3R5bGVS
ZXNvbHZlciwgQ1NTVmFsdWUmIHZhbHVlKQoreworICAgIGF1dG8mIHByaW1pdGl2ZVZhbHVlID0g
ZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKTsKKyAgICBMZW5ndGggbWFycXVlZUxl
bmd0aChVbmRlZmluZWQpOworICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUuZ2V0VmFsdWVJRCgp
KSB7CisgICAgY2FzZSBDU1NWYWx1ZVNtYWxsOgorICAgICAgICBtYXJxdWVlTGVuZ3RoID0gTGVu
Z3RoKDEsIEZpeGVkKTsgLy8gMXB4LgorICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1ZhbHVl
Tm9ybWFsOgorICAgICAgICBtYXJxdWVlTGVuZ3RoID0gTGVuZ3RoKDYsIEZpeGVkKTsgLy8gNnB4
LiBUaGUgV2luSUUgZGVmYXVsdC4KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUxh
cmdlOgorICAgICAgICBtYXJxdWVlTGVuZ3RoID0gTGVuZ3RoKDM2LCBGaXhlZCk7IC8vIDM2cHgu
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVJbnZhbGlkOgorICAgICAgICBtYXJx
dWVlTGVuZ3RoID0gcHJpbWl0aXZlVmFsdWUuY29udmVydFRvTGVuZ3RoPEZpeGVkSW50ZWdlckNv
bnZlcnNpb24gfCBQZXJjZW50Q29udmVyc2lvbiB8IENhbGN1bGF0ZWRDb252ZXJzaW9uPihzdHls
ZVJlc29sdmVyLnN0YXRlKCkuY3NzVG9MZW5ndGhDb252ZXJzaW9uRGF0YSgpLmNvcHlXaXRoQWRq
dXN0ZWRab29tKDEuMGYpKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAg
YnJlYWs7CisgICAgfQorICAgIGlmICghbWFycXVlZUxlbmd0aC5pc1VuZGVmaW5lZCgpKQorICAg
ICAgICBzdHlsZVJlc29sdmVyLnN0eWxlKCktPnNldE1hcnF1ZWVJbmNyZW1lbnQobWFycXVlZUxl
bmd0aCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFN0eWxlQnVpbGRlckZ1bmN0aW9ucwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240680</attachid>
            <date>2014-10-30 10:29:22 -0700</date>
            <delta_ts>2014-10-30 14:37:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138208-20141030102930.patch</filename>
            <type>text/plain</type>
            <size>12801</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWYwOGJmMTdkYjljYzU1
Y2Q1ZGRlNTJhOGNhMTYxNWI1YmFiNDNmYS4uNmY4YmZlNjdjZDUxMzlmOGQ1YzdhY2IzNjk5YmEx
NmRiMjFiMWQwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE0LTEwLTI5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSAtd2Via2l0LW1hcnF1
ZWUtaW5jcmVtZW50IHByb3BlcnR5IHRvIHRoZSBuZXcgU3R5bGVCdWlsZGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzgyMDgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIC13ZWJraXQtbWFycXVl
ZS1pbmNyZW1lbnQgcHJvcGVydHkgZnJvbSBEZXByZWNhdGVkU3R5bGVCdWlsZGVyIHRvCisgICAg
ICAgIHRoZSBuZXcgU3R5bGVCdWlsZGVyIHNvIHRoYXQgaXQgaXMgZ2VuZXJhdGVkIGZyb20gQ1NT
UHJvcGVydHlOYW1lcy5pbi4KKyAgICAgICAgQ3VzdG9tIGNvZGUgaXMgdXNlZCB0byBzZXQgdGhl
IHZhbHVlIGR1ZSB0byB0aGUgIWxlbmd0aC5pc1VuZGVmaW5lZCgpCisgICAgICAgIGNoZWNrIGJl
Zm9yZSBjYWxsaW5nIHNldE1hcnF1ZWVJbmNyZW1lbnQoKS4KKworICAgICAgICBUZXN0OiBmYXN0
L2Nzcy93ZWJraXQtbWFycXVlZS1pbmNyZW1lbnQtYmFkLXZhbHVlLmh0bWwKKworICAgICAgICAq
IGNzcy9DU1NQcm9wZXJ0eU5hbWVzLmluOgorICAgICAgICAqIGNzcy9EZXByZWNhdGVkU3R5bGVC
dWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRTdHlsZUJ1aWxkZXI6OkRl
cHJlY2F0ZWRTdHlsZUJ1aWxkZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eUxl
bmd0aDo6c2V0VmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0
eUxlbmd0aDo6YXBwbHlWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBcHBseVBy
b3BlcnR5TGVuZ3RoOjpjcmVhdGVIYW5kbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkFwcGx5UHJvcGVydHlNYXJxdWVlSW5jcmVtZW50OjphcHBseVZhbHVlKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlNYXJxdWVlSW5jcmVtZW50OjpjcmVhdGVIYW5k
bGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3MvU3R5bGVCdWlsZGVyQ3VzdG9tLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZUJ1aWxkZXJGdW5jdGlvbnM6OmFwcGx5VmFsdWVXZWJraXRNYXJx
dWVlSW5jcmVtZW50KToKKwogMjAxNC0xMC0yOSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhh
bGxhd2FAYXBwbGUuY29tPgogCiAgICAgICAgIEFTU0VSVElPTiBOT1QgUkVBQ0hFRCBiZWNhdXNl
IFJlbmRlclN0eWxlOjpzZXRXb3JkU3BhY2luZygpIGRvZXMgbm90IGhhbmRsZSBhIExlbmd0aCB2
YWx1ZSBvZiB0eXBlICdDYWxjdWxhdGVkJy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcm9wZXJ0eU5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFt
ZXMuaW4KaW5kZXggZTkwZjExMTFkNTE1N2NiNDkyNTUzYjY5YjAwODg3YTVlOTM2ODg5My4uNDYw
MGIxMDE3MWZhZjlhNjA2MTQyOTg2YjZiMmRmMjYyNTVhODg2MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1Byb3BlcnR5TmFtZXMuaW4KQEAgLTQwMiw3ICs0MDIsNyBAQCBqdXN0aWZ5LWNvbnRlbnQg
W05ld1N0eWxlQnVpbGRlcl0KIC13ZWJraXQtbWFyZ2luLXN0YXJ0CiAtd2Via2l0LW1hcnF1ZWUK
IC13ZWJraXQtbWFycXVlZS1kaXJlY3Rpb24gW05ld1N0eWxlQnVpbGRlcl0KLS13ZWJraXQtbWFy
cXVlZS1pbmNyZW1lbnQKKy13ZWJraXQtbWFycXVlZS1pbmNyZW1lbnQgW05ld1N0eWxlQnVpbGRl
ciwgQ3VzdG9tPVZhbHVlXQogLXdlYmtpdC1tYXJxdWVlLXJlcGV0aXRpb24KIC13ZWJraXQtbWFy
cXVlZS1zcGVlZAogLXdlYmtpdC1tYXJxdWVlLXN0eWxlIFtOZXdTdHlsZUJ1aWxkZXIsIFR5cGVO
YW1lPUVNYXJxdWVlQmVoYXZpb3IsIE5hbWVGb3JNZXRob2RzPU1hcnF1ZWVCZWhhdmlvcl0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcAppbmRleCAzYmE0
YjhkMTQ1NmRmMmYzOTJhMTFlYzJkYTk0MTA3NTEyYWZmNGM1Li44ZWExMDljMDcyZjVlMzAxMTRl
NjY1MTU2Y2U5MTFkN2JjYzkyNWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVw
cmVjYXRlZFN0eWxlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0
ZWRTdHlsZUJ1aWxkZXIuY3BwCkBAIC0zMjAsNzMgKzMyMCw2IEBAIHB1YmxpYzoKICAgICB9CiB9
OwogCi1lbnVtIExlbmd0aEF1dG8geyBBdXRvRGlzYWJsZWQgPSAwLCBBdXRvRW5hYmxlZCB9Owot
ZW51bSBMZW5ndGhMZWdhY3lJbnRyaW5zaWMgeyBMZWdhY3lJbnRyaW5zaWNEaXNhYmxlZCA9IDAs
IExlZ2FjeUludHJpbnNpY0VuYWJsZWQgfTsKLWVudW0gTGVuZ3RoSW50cmluc2ljIHsgSW50cmlu
c2ljRGlzYWJsZWQgPSAwLCBJbnRyaW5zaWNFbmFibGVkIH07Ci1lbnVtIExlbmd0aE5vbmUgeyBO
b25lRGlzYWJsZWQgPSAwLCBOb25lRW5hYmxlZCB9OwotZW51bSBMZW5ndGhVbmRlZmluZWQgeyBV
bmRlZmluZWREaXNhYmxlZCA9IDAsIFVuZGVmaW5lZEVuYWJsZWQgfTsKLXRlbXBsYXRlIDxjb25z
dCBMZW5ndGgmIChSZW5kZXJTdHlsZTo6KmdldHRlckZ1bmN0aW9uKSgpIGNvbnN0LAotICAgICAg
ICAgIHZvaWQgKFJlbmRlclN0eWxlOjoqc2V0dGVyRnVuY3Rpb24pKExlbmd0aCksCi0gICAgICAg
ICAgTGVuZ3RoICgqaW5pdGlhbEZ1bmN0aW9uKSgpLAotICAgICAgICAgIExlbmd0aEF1dG8gYXV0
b0VuYWJsZWQgPSBBdXRvRGlzYWJsZWQsCi0gICAgICAgICAgTGVuZ3RoTGVnYWN5SW50cmluc2lj
IGxlZ2FjeUludHJpbnNpY0VuYWJsZWQgPSBMZWdhY3lJbnRyaW5zaWNEaXNhYmxlZCwKLSAgICAg
ICAgICBMZW5ndGhJbnRyaW5zaWMgaW50cmluc2ljRW5hYmxlZCA9IEludHJpbnNpY0Rpc2FibGVk
LAotICAgICAgICAgIExlbmd0aE5vbmUgbm9uZUVuYWJsZWQgPSBOb25lRGlzYWJsZWQsCi0gICAg
ICAgICAgTGVuZ3RoVW5kZWZpbmVkIG5vbmVVbmRlZmluZWQgPSBVbmRlZmluZWREaXNhYmxlZD4K
LWNsYXNzIEFwcGx5UHJvcGVydHlMZW5ndGggewotcHVibGljOgotICAgIHN0YXRpYyB2b2lkIHNl
dFZhbHVlKFJlbmRlclN0eWxlKiBzdHlsZSwgTGVuZ3RoIHZhbHVlKSB7IChzdHlsZS0+KnNldHRl
ckZ1bmN0aW9uKShXVEY6Om1vdmUodmFsdWUpKTsgfQotICAgIHN0YXRpYyB2b2lkIGFwcGx5VmFs
dWUoQ1NTUHJvcGVydHlJRCwgU3R5bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlciwgQ1NTVmFsdWUq
IHZhbHVlKQotICAgIHsKLSAgICAgICAgaWYgKCFpczxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVl
KSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSYgcHJp
bWl0aXZlVmFsdWUgPSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKTsKLSAgICAg
ICAgaWYgKG5vbmVFbmFibGVkICYmIHByaW1pdGl2ZVZhbHVlLmdldFZhbHVlSUQoKSA9PSBDU1NW
YWx1ZU5vbmUpIHsKLSAgICAgICAgICAgIGlmIChub25lVW5kZWZpbmVkKQotICAgICAgICAgICAg
ICAgIHNldFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIExlbmd0aChVbmRlZmluZWQpKTsK
LSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29sdmVy
LT5zdHlsZSgpLCBMZW5ndGgoKSk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGxlZ2FjeUludHJp
bnNpY0VuYWJsZWQpIHsKLSAgICAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS5nZXRWYWx1ZUlE
KCkgPT0gQ1NTVmFsdWVJbnRyaW5zaWMpCi0gICAgICAgICAgICAgICAgc2V0VmFsdWUoc3R5bGVS
ZXNvbHZlci0+c3R5bGUoKSwgTGVuZ3RoKEludHJpbnNpYykpOwotICAgICAgICAgICAgZWxzZSBp
ZiAocHJpbWl0aXZlVmFsdWUuZ2V0VmFsdWVJRCgpID09IENTU1ZhbHVlTWluSW50cmluc2ljKQot
ICAgICAgICAgICAgICAgIHNldFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIExlbmd0aChN
aW5JbnRyaW5zaWMpKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoaW50cmluc2ljRW5hYmxlZCkg
ewotICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1
ZVdlYmtpdE1pbkNvbnRlbnQpCi0gICAgICAgICAgICAgICAgc2V0VmFsdWUoc3R5bGVSZXNvbHZl
ci0+c3R5bGUoKSwgTGVuZ3RoKE1pbkNvbnRlbnQpKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKHBy
aW1pdGl2ZVZhbHVlLmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZVdlYmtpdE1heENvbnRlbnQpCi0g
ICAgICAgICAgICAgICAgc2V0VmFsdWUoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgTGVuZ3RoKE1h
eENvbnRlbnQpKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLmdldFZhbHVl
SUQoKSA9PSBDU1NWYWx1ZVdlYmtpdEZpbGxBdmFpbGFibGUpCi0gICAgICAgICAgICAgICAgc2V0
VmFsdWUoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgTGVuZ3RoKEZpbGxBdmFpbGFibGUpKTsKLSAg
ICAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1
ZVdlYmtpdEZpdENvbnRlbnQpCi0gICAgICAgICAgICAgICAgc2V0VmFsdWUoc3R5bGVSZXNvbHZl
ci0+c3R5bGUoKSwgTGVuZ3RoKEZpdENvbnRlbnQpKTsKLSAgICAgICAgfQotCi0gICAgICAgIENT
U1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEgY29udmVyc2lvbkRhdGEgPSBzdHlsZVJlc29sdmVyLT51
c2VTVkdab29tUnVsZXNGb3JMZW5ndGgoKSA/Ci0gICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5z
dGF0ZSgpLmNzc1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEoKS5jb3B5V2l0aEFkanVzdGVkWm9vbSgx
LjBmKQotICAgICAgICAgICAgOiBzdHlsZVJlc29sdmVyLT5zdGF0ZSgpLmNzc1RvTGVuZ3RoQ29u
dmVyc2lvbkRhdGEoKTsKLSAgICAgICAgaWYgKGF1dG9FbmFibGVkICYmIHByaW1pdGl2ZVZhbHVl
LmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZUF1dG8pCi0gICAgICAgICAgICBzZXRWYWx1ZShzdHls
ZVJlc29sdmVyLT5zdHlsZSgpLCBMZW5ndGgoKSk7Ci0gICAgICAgIGVsc2UgaWYgKHByaW1pdGl2
ZVZhbHVlLmlzTGVuZ3RoKCkpIHsKLSAgICAgICAgICAgIExlbmd0aCBsZW5ndGggPSBwcmltaXRp
dmVWYWx1ZS5jb21wdXRlTGVuZ3RoPExlbmd0aD4oY29udmVyc2lvbkRhdGEpOwotICAgICAgICAg
ICAgbGVuZ3RoLnNldEhhc1F1aXJrKHByaW1pdGl2ZVZhbHVlLmlzUXVpcmtWYWx1ZSgpKTsKLSAg
ICAgICAgICAgIHNldFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIGxlbmd0aCk7Ci0gICAg
ICAgIH0gZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUuaXNQZXJjZW50YWdlKCkpCi0gICAgICAgICAg
ICBzZXRWYWx1ZShzdHlsZVJlc29sdmVyLT5zdHlsZSgpLCBMZW5ndGgocHJpbWl0aXZlVmFsdWUu
Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCkpOwotICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVW
YWx1ZS5pc0NhbGN1bGF0ZWRQZXJjZW50YWdlV2l0aExlbmd0aCgpKQotICAgICAgICAgICAgc2V0
VmFsdWUoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgTGVuZ3RoKHByaW1pdGl2ZVZhbHVlLmNzc0Nh
bGNWYWx1ZSgpLT5jcmVhdGVDYWxjdWxhdGlvblZhbHVlKGNvbnZlcnNpb25EYXRhKSkpOwotICAg
IH0KLQotICAgIHN0YXRpYyBQcm9wZXJ0eUhhbmRsZXIgY3JlYXRlSGFuZGxlcigpCi0gICAgewot
ICAgICAgICBQcm9wZXJ0eUhhbmRsZXIgaGFuZGxlciA9IEFwcGx5UHJvcGVydHlEZWZhdWx0QmFz
ZTxjb25zdCBMZW5ndGgmLCBnZXR0ZXJGdW5jdGlvbiwgTGVuZ3RoLCBzZXR0ZXJGdW5jdGlvbiwg
TGVuZ3RoLCBpbml0aWFsRnVuY3Rpb24+OjpjcmVhdGVIYW5kbGVyKCk7Ci0gICAgICAgIHJldHVy
biBQcm9wZXJ0eUhhbmRsZXIoaGFuZGxlci5pbmhlcml0RnVuY3Rpb24oKSwgaGFuZGxlci5pbml0
aWFsRnVuY3Rpb24oKSwgJmFwcGx5VmFsdWUpOwotICAgIH0KLX07Ci0KIGVudW0gU3RyaW5nSWRl
bnRCZWhhdmlvciB7IE5vdGhpbmdNYXBzVG9OdWxsID0gMCwgTWFwTm9uZVRvTnVsbCwgTWFwQXV0
b1RvTnVsbCB9OwogdGVtcGxhdGUgPFN0cmluZ0lkZW50QmVoYXZpb3IgaWRlbnRCZWhhdmlvciwg
Y29uc3QgQXRvbWljU3RyaW5nJiAoUmVuZGVyU3R5bGU6OipnZXR0ZXJGdW5jdGlvbikoKSBjb25z
dCwgdm9pZCAoUmVuZGVyU3R5bGU6OipzZXR0ZXJGdW5jdGlvbikoY29uc3QgQXRvbWljU3RyaW5n
JiksIGNvbnN0IEF0b21pY1N0cmluZyYgKCppbml0aWFsRnVuY3Rpb24pKCk+CiBjbGFzcyBBcHBs
eVByb3BlcnR5U3RyaW5nIHsKQEAgLTExOTUsNDEgKzExMjgsNiBAQCBwdWJsaWM6CiAgICAgfQog
fTsKIAotY2xhc3MgQXBwbHlQcm9wZXJ0eU1hcnF1ZWVJbmNyZW1lbnQgewotcHVibGljOgotICAg
IHN0YXRpYyB2b2lkIGFwcGx5VmFsdWUoQ1NTUHJvcGVydHlJRCwgU3R5bGVSZXNvbHZlciogc3R5
bGVSZXNvbHZlciwgQ1NTVmFsdWUqIHZhbHVlKQotICAgIHsKLSAgICAgICAgaWYgKCFpczxDU1NQ
cmltaXRpdmVWYWx1ZT4oKnZhbHVlKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBD
U1NQcmltaXRpdmVWYWx1ZSYgcHJpbWl0aXZlVmFsdWUgPSBkb3duY2FzdDxDU1NQcmltaXRpdmVW
YWx1ZT4oKnZhbHVlKTsKLSAgICAgICAgTGVuZ3RoIG1hcnF1ZWVMZW5ndGgoVW5kZWZpbmVkKTsK
LSAgICAgICAgc3dpdGNoIChwcmltaXRpdmVWYWx1ZS5nZXRWYWx1ZUlEKCkpIHsKLSAgICAgICAg
Y2FzZSBDU1NWYWx1ZVNtYWxsOgotICAgICAgICAgICAgbWFycXVlZUxlbmd0aCA9IExlbmd0aCgx
LCBGaXhlZCk7IC8vIDFweC4KLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1Zh
bHVlTm9ybWFsOgotICAgICAgICAgICAgbWFycXVlZUxlbmd0aCA9IExlbmd0aCg2LCBGaXhlZCk7
IC8vIDZweC4gVGhlIFdpbklFIGRlZmF1bHQuCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBDU1NWYWx1ZUxhcmdlOgotICAgICAgICAgICAgbWFycXVlZUxlbmd0aCA9IExlbmd0aCgz
NiwgRml4ZWQpOyAvLyAzNnB4LgotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NT
VmFsdWVJbnZhbGlkOgotICAgICAgICAgICAgbWFycXVlZUxlbmd0aCA9IHByaW1pdGl2ZVZhbHVl
LmNvbnZlcnRUb0xlbmd0aDxGaXhlZEludGVnZXJDb252ZXJzaW9uIHwgUGVyY2VudENvbnZlcnNp
b24gfCBDYWxjdWxhdGVkQ29udmVyc2lvbj4oc3R5bGVSZXNvbHZlci0+c3RhdGUoKS5jc3NUb0xl
bmd0aENvbnZlcnNpb25EYXRhKCkuY29weVdpdGhBZGp1c3RlZFpvb20oMS4wZikpOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgfQotICAgICAgICBpZiAoIW1hcnF1ZWVMZW5ndGguaXNVbmRlZmluZWQoKSkKLSAgICAgICAg
ICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldE1hcnF1ZWVJbmNyZW1lbnQobWFycXVlZUxl
bmd0aCk7Ci0gICAgfQotICAgIHN0YXRpYyBQcm9wZXJ0eUhhbmRsZXIgY3JlYXRlSGFuZGxlcigp
Ci0gICAgewotICAgICAgICBQcm9wZXJ0eUhhbmRsZXIgaGFuZGxlciA9IEFwcGx5UHJvcGVydHlM
ZW5ndGg8JlJlbmRlclN0eWxlOjptYXJxdWVlSW5jcmVtZW50LCAmUmVuZGVyU3R5bGU6OnNldE1h
cnF1ZWVJbmNyZW1lbnQsICZSZW5kZXJTdHlsZTo6aW5pdGlhbE1hcnF1ZWVJbmNyZW1lbnQ+Ojpj
cmVhdGVIYW5kbGVyKCk7Ci0gICAgICAgIHJldHVybiBQcm9wZXJ0eUhhbmRsZXIoaGFuZGxlci5p
bmhlcml0RnVuY3Rpb24oKSwgaGFuZGxlci5pbml0aWFsRnVuY3Rpb24oKSwgJmFwcGx5VmFsdWUp
OwotICAgIH0KLX07Ci0KIGNsYXNzIEFwcGx5UHJvcGVydHlNYXJxdWVlUmVwZXRpdGlvbiB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIHZvaWQgYXBwbHlWYWx1ZShDU1NQcm9wZXJ0eUlELCBTdHlsZVJl
c29sdmVyKiBzdHlsZVJlc29sdmVyLCBDU1NWYWx1ZSogdmFsdWUpCkBAIC0yMjgwLDcgKzIxNzgs
NiBAQCBEZXByZWNhdGVkU3R5bGVCdWlsZGVyOjpEZXByZWNhdGVkU3R5bGVCdWlsZGVyKCkKICAg
ICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRGb250VmFyaWFudExpZ2F0dXJl
cywgQXBwbHlQcm9wZXJ0eUZvbnRWYXJpYW50TGlnYXR1cmVzOjpjcmVhdGVIYW5kbGVyKCkpOwog
ICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdEh5cGhlbmF0ZUNoYXJhY3Rl
ciwgQXBwbHlQcm9wZXJ0eVN0cmluZzxNYXBBdXRvVG9OdWxsLCAmUmVuZGVyU3R5bGU6Omh5cGhl
bmF0aW9uU3RyaW5nLCAmUmVuZGVyU3R5bGU6OnNldEh5cGhlbmF0aW9uU3RyaW5nLCAmUmVuZGVy
U3R5bGU6OmluaXRpYWxIeXBoZW5hdGlvblN0cmluZz46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAg
c2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0TGluZUdyaWQsIEFwcGx5UHJvcGVy
dHlTdHJpbmc8TWFwTm9uZVRvTnVsbCwgJlJlbmRlclN0eWxlOjpsaW5lR3JpZCwgJlJlbmRlclN0
eWxlOjpzZXRMaW5lR3JpZCwgJlJlbmRlclN0eWxlOjppbml0aWFsTGluZUdyaWQ+OjpjcmVhdGVI
YW5kbGVyKCkpOwotICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdE1hcnF1
ZWVJbmNyZW1lbnQsIEFwcGx5UHJvcGVydHlNYXJxdWVlSW5jcmVtZW50OjpjcmVhdGVIYW5kbGVy
KCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdE1hcnF1ZWVSZXBl
dGl0aW9uLCBBcHBseVByb3BlcnR5TWFycXVlZVJlcGV0aXRpb246OmNyZWF0ZUhhbmRsZXIoKSk7
CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0TWFycXVlZVNwZWVkLCBB
cHBseVByb3BlcnR5TWFycXVlZVNwZWVkOjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFByb3Bl
cnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdE1hc2tCb3hJbWFnZSwgQXBwbHlQcm9wZXJ0eUJv
cmRlckltYWdlPEJvcmRlck1hc2ssIENTU1Byb3BlcnR5V2Via2l0TWFza0JveEltYWdlLCAmUmVu
ZGVyU3R5bGU6Om1hc2tCb3hJbWFnZSwgJlJlbmRlclN0eWxlOjpzZXRNYXNrQm94SW1hZ2U+Ojpj
cmVhdGVIYW5kbGVyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVp
bGRlckN1c3RvbS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlckN1c3RvbS5oCmlu
ZGV4IDc3N2VjZDBiM2I0MWRmOTdlZmM3OTlhNjE3MzMzYzE1NWZiZTk3MjEuLmY2ODcxYWQxNzll
ZGYxZDA3ODJkY2I2MzEwOTliYWUyYmNjZDA4MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZUJ1aWxkZXJDdXN0b20uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVC
dWlsZGVyQ3VzdG9tLmgKQEAgLTQyLDYgKzQyLDMwIEBAIGlubGluZSB2b2lkIGFwcGx5VmFsdWVX
ZWJraXRIeXBoZW5hdGVMaW1pdExpbmVzKFN0eWxlUmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIsIENT
CiAgICAgc3R5bGVSZXNvbHZlci5zdHlsZSgpLT5zZXRIeXBoZW5hdGlvbkxpbWl0TGluZXMobnVt
YmVyKTsKIH0KIAorTk9fUkVUVVJOIGlubGluZSB2b2lkIGFwcGx5VmFsdWVXZWJraXRNYXJxdWVl
SW5jcmVtZW50KFN0eWxlUmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIsIENTU1ZhbHVlJiB2YWx1ZSkK
K3sKKyAgICBhdXRvJiBwcmltaXRpdmVWYWx1ZSA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVl
Pih2YWx1ZSk7CisgICAgTGVuZ3RoIG1hcnF1ZWVMZW5ndGgoVW5kZWZpbmVkKTsKKyAgICBzd2l0
Y2ggKHByaW1pdGl2ZVZhbHVlLmdldFZhbHVlSUQoKSkgeworICAgIGNhc2UgQ1NTVmFsdWVTbWFs
bDoKKyAgICAgICAgbWFycXVlZUxlbmd0aCA9IExlbmd0aCgxLCBGaXhlZCk7IC8vIDFweC4KKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKKyAgICAgICAgbWFycXVlZUxl
bmd0aCA9IExlbmd0aCg2LCBGaXhlZCk7IC8vIDZweC4gVGhlIFdpbklFIGRlZmF1bHQuCisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQ1NTVmFsdWVMYXJnZToKKyAgICAgICAgbWFycXVlZUxlbmd0
aCA9IExlbmd0aCgzNiwgRml4ZWQpOyAvLyAzNnB4LgorICAgICAgICBicmVhazsKKyAgICBjYXNl
IENTU1ZhbHVlSW52YWxpZDoKKyAgICAgICAgbWFycXVlZUxlbmd0aCA9IHByaW1pdGl2ZVZhbHVl
LmNvbnZlcnRUb0xlbmd0aDxGaXhlZEludGVnZXJDb252ZXJzaW9uIHwgUGVyY2VudENvbnZlcnNp
b24gfCBDYWxjdWxhdGVkQ29udmVyc2lvbj4oc3R5bGVSZXNvbHZlci5zdGF0ZSgpLmNzc1RvTGVu
Z3RoQ29udmVyc2lvbkRhdGEoKS5jb3B5V2l0aEFkanVzdGVkWm9vbSgxLjBmKSk7CisgICAgICAg
IGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBpZiAoIW1h
cnF1ZWVMZW5ndGguaXNVbmRlZmluZWQoKSkKKyAgICAgICAgc3R5bGVSZXNvbHZlci5zdHlsZSgp
LT5zZXRNYXJxdWVlSW5jcmVtZW50KG1hcnF1ZWVMZW5ndGgpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBTdHlsZUJ1aWxkZXJGdW5jdGlvbnMKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvd2Via2l0LW1hcnF1ZWUtaW5jcmVtZW50LWJhZC12
YWx1ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy93ZWJraXQtbWFycXVlZS1p
bmNyZW1lbnQtYmFkLXZhbHVlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZjcyYzU5ZDFlZmJj
MmVjNTk0ZGVmY2ZkZmNkOWMxOWMxNDA4MDQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9jc3Mvd2Via2l0LW1hcnF1ZWUtaW5jcmVtZW50LWJhZC12YWx1ZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMiBAQAorTWFrZXMgc3VyZSB3ZSBkb24ndCBjcmFzaCBpbiB0aGUgU3R5
bGVCdWlsZGVyIGlmIGJhZCB2YWx1ZXMgYXJlIHVzZWQgZm9yIC13ZWJraXQtbWFycXVlZS1pbmNy
ZW1lbnQgcHJvcGVydHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIE5v
IGNyYXNoIGZvciAxcHggMnB4IHZhbHVlCitQQVNTIE5vIGNyYXNoIGZvciB1cmwoInJlc291cmNl
cy9ib3JkZXItaW1hZ2UucG5nIikgdmFsdWUKK1BBU1MgTm8gY3Jhc2ggZm9yIGNvcHkgdmFsdWUK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy93ZWJraXQtbWFycXVlZS1pbmNyZW1lbnQtYmFk
LXZhbHVlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy93ZWJraXQtbWFycXVlZS1pbmNyZW1l
bnQtYmFkLXZhbHVlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGJmYTRmOGQwODA4YjAwODA1OWNlN2E4MDg3
MDQ0YmMzMjQ4OGE3NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3dl
YmtpdC1tYXJxdWVlLWluY3JlbWVudC1iYWQtdmFsdWUuaHRtbApAQCAtMCwwICsxLDIxIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPG1hcnF1ZWUgaWQ9Im15TWFycXVlZSI+PC9tYXJxdWVlPgorCis8c2Ny
aXB0PgorZGVzY3JpcHRpb24oIk1ha2VzIHN1cmUgd2UgZG9uJ3QgY3Jhc2ggaW4gdGhlIFN0eWxl
QnVpbGRlciBpZiBiYWQgdmFsdWVzIGFyZSB1c2VkIGZvciAtd2Via2l0LW1hcnF1ZWUtaW5jcmVt
ZW50IHByb3BlcnR5LiIpOworCit2YXIgYmFkVmFsdWVzID0gWworICAgICIxcHggMnB4IiwgLy8g
YSBsaXN0LgorICAgICJ1cmwoXCJyZXNvdXJjZXMvYm9yZGVyLWltYWdlLnBuZ1wiKSIsIC8vIGFu
IGltYWdlIHVybC4KKyAgICAiY29weSIsIC8vIGEgY3Vyc29yLgorXTsKKwordmFyIHRlc3RFbGVt
ZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15TWFycXVlZSIpOworZm9yICh2YXIgaSA9
IDA7IGkgPCBiYWRWYWx1ZXMubGVuZ3RoOyArK2kpIHsKKyAgICB0ZXN0RWxlbWVudC5zdHlsZVsi
LXdlYmtpdC1tYXJxdWVlLWluY3JlbWVudCJdID0gYmFkVmFsdWVzW2ldOworICAgIGRvY3VtZW50
LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUodGVzdEVsZW1lbnQpWyItd2Via2l0LW1hcnF1
ZWUtaW5jcmVtZW50Il07CisgICAgdGVzdFBhc3NlZCgiTm8gY3Jhc2ggZm9yICIgKyBiYWRWYWx1
ZXNbaV0gKyAiIHZhbHVlIik7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240702</attachid>
            <date>2014-10-30 14:37:13 -0700</date>
            <delta_ts>2014-10-30 20:42:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138208-20141030143721.patch</filename>
            <type>text/plain</type>
            <size>12673</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MzgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQ3ZDBmMGIxYjdjYTdm
N2UwZmEyZGUwYTQ5YWQ3YWY5MThkMzU4Ny4uZDI2ZGZiOTFjMTM5M2I4ZGE5NGZlMjYzMzM5MzIz
NTQyMGIyN2JhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE0LTEwLTI5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSAtd2Via2l0LW1hcnF1
ZWUtaW5jcmVtZW50IHByb3BlcnR5IHRvIHRoZSBuZXcgU3R5bGVCdWlsZGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzgyMDgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIC13ZWJraXQtbWFycXVl
ZS1pbmNyZW1lbnQgcHJvcGVydHkgZnJvbSBEZXByZWNhdGVkU3R5bGVCdWlsZGVyIHRvCisgICAg
ICAgIHRoZSBuZXcgU3R5bGVCdWlsZGVyIHNvIHRoYXQgaXQgaXMgZ2VuZXJhdGVkIGZyb20gQ1NT
UHJvcGVydHlOYW1lcy5pbi4KKyAgICAgICAgQ3VzdG9tIGNvZGUgaXMgdXNlZCB0byBzZXQgdGhl
IHZhbHVlIGR1ZSB0byB0aGUgIWxlbmd0aC5pc1VuZGVmaW5lZCgpCisgICAgICAgIGNoZWNrIGJl
Zm9yZSBjYWxsaW5nIHNldE1hcnF1ZWVJbmNyZW1lbnQoKS4KKworICAgICAgICBUZXN0OiBmYXN0
L2Nzcy93ZWJraXQtbWFycXVlZS1pbmNyZW1lbnQtYmFkLXZhbHVlLmh0bWwKKworICAgICAgICAq
IGNzcy9DU1NQcm9wZXJ0eU5hbWVzLmluOgorICAgICAgICAqIGNzcy9EZXByZWNhdGVkU3R5bGVC
dWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRTdHlsZUJ1aWxkZXI6OkRl
cHJlY2F0ZWRTdHlsZUJ1aWxkZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eUxl
bmd0aDo6c2V0VmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0
eUxlbmd0aDo6YXBwbHlWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBcHBseVBy
b3BlcnR5TGVuZ3RoOjpjcmVhdGVIYW5kbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkFwcGx5UHJvcGVydHlNYXJxdWVlSW5jcmVtZW50OjphcHBseVZhbHVlKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlNYXJxdWVlSW5jcmVtZW50OjpjcmVhdGVIYW5k
bGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3MvU3R5bGVCdWlsZGVyQ3VzdG9tLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZUJ1aWxkZXJGdW5jdGlvbnM6OmFwcGx5VmFsdWVXZWJraXRNYXJx
dWVlSW5jcmVtZW50KToKKwogMjAxNC0xMC0zMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIE1vdmUgLXdlYmtpdC1ib3JkZXItaW1hZ2UgLyAtd2Via2l0LW1hc2st
Ym94LWltYWdlIHRvIHRoZSBuZXcgU3R5bGVCdWlsZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9w
ZXJ0eU5hbWVzLmluCmluZGV4IDg2ZDA4YmM3NDIwNjNmOTIzYmIyMzBlYTZjYWY5YjkyNWViN2I1
NWIuLjI1ODRiNDY5ZWUxNjkxMmU5ZWZjOWU0OWJhZDMyZDYzY2RjNTlhNTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCkBAIC00MDIsNyArNDAyLDcgQEAganVzdGlmeS1j
b250ZW50IFtOZXdTdHlsZUJ1aWxkZXJdCiAtd2Via2l0LW1hcmdpbi1zdGFydAogLXdlYmtpdC1t
YXJxdWVlCiAtd2Via2l0LW1hcnF1ZWUtZGlyZWN0aW9uIFtOZXdTdHlsZUJ1aWxkZXJdCi0td2Vi
a2l0LW1hcnF1ZWUtaW5jcmVtZW50Cistd2Via2l0LW1hcnF1ZWUtaW5jcmVtZW50IFtOZXdTdHls
ZUJ1aWxkZXIsIEN1c3RvbT1WYWx1ZV0KIC13ZWJraXQtbWFycXVlZS1yZXBldGl0aW9uCiAtd2Vi
a2l0LW1hcnF1ZWUtc3BlZWQKIC13ZWJraXQtbWFycXVlZS1zdHlsZSBbTmV3U3R5bGVCdWlsZGVy
LCBUeXBlTmFtZT1FTWFycXVlZUJlaGF2aW9yLCBOYW1lRm9yTWV0aG9kcz1NYXJxdWVlQmVoYXZp
b3JdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHAKaW5k
ZXggZDYyNGUxMTM5MDFkOGJmMDZkZGQ4ODM0NjllNjEyZTc4MDAwOWFiZi4uN2UzODBjODkwZTgx
ZjljZTZiZmVkMGRmN2ZlNThlMzQ4Y2FmY2FkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9E
ZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcApAQCAtMzIwLDczICszMjAsNiBAQCBwdWJsaWM6CiAg
ICAgfQogfTsKIAotZW51bSBMZW5ndGhBdXRvIHsgQXV0b0Rpc2FibGVkID0gMCwgQXV0b0VuYWJs
ZWQgfTsKLWVudW0gTGVuZ3RoTGVnYWN5SW50cmluc2ljIHsgTGVnYWN5SW50cmluc2ljRGlzYWJs
ZWQgPSAwLCBMZWdhY3lJbnRyaW5zaWNFbmFibGVkIH07Ci1lbnVtIExlbmd0aEludHJpbnNpYyB7
IEludHJpbnNpY0Rpc2FibGVkID0gMCwgSW50cmluc2ljRW5hYmxlZCB9OwotZW51bSBMZW5ndGhO
b25lIHsgTm9uZURpc2FibGVkID0gMCwgTm9uZUVuYWJsZWQgfTsKLWVudW0gTGVuZ3RoVW5kZWZp
bmVkIHsgVW5kZWZpbmVkRGlzYWJsZWQgPSAwLCBVbmRlZmluZWRFbmFibGVkIH07Ci10ZW1wbGF0
ZSA8Y29uc3QgTGVuZ3RoJiAoUmVuZGVyU3R5bGU6OipnZXR0ZXJGdW5jdGlvbikoKSBjb25zdCwK
LSAgICAgICAgICB2b2lkIChSZW5kZXJTdHlsZTo6KnNldHRlckZ1bmN0aW9uKShMZW5ndGgpLAot
ICAgICAgICAgIExlbmd0aCAoKmluaXRpYWxGdW5jdGlvbikoKSwKLSAgICAgICAgICBMZW5ndGhB
dXRvIGF1dG9FbmFibGVkID0gQXV0b0Rpc2FibGVkLAotICAgICAgICAgIExlbmd0aExlZ2FjeUlu
dHJpbnNpYyBsZWdhY3lJbnRyaW5zaWNFbmFibGVkID0gTGVnYWN5SW50cmluc2ljRGlzYWJsZWQs
Ci0gICAgICAgICAgTGVuZ3RoSW50cmluc2ljIGludHJpbnNpY0VuYWJsZWQgPSBJbnRyaW5zaWNE
aXNhYmxlZCwKLSAgICAgICAgICBMZW5ndGhOb25lIG5vbmVFbmFibGVkID0gTm9uZURpc2FibGVk
LAotICAgICAgICAgIExlbmd0aFVuZGVmaW5lZCBub25lVW5kZWZpbmVkID0gVW5kZWZpbmVkRGlz
YWJsZWQ+Ci1jbGFzcyBBcHBseVByb3BlcnR5TGVuZ3RoIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMg
dm9pZCBzZXRWYWx1ZShSZW5kZXJTdHlsZSogc3R5bGUsIExlbmd0aCB2YWx1ZSkgeyAoc3R5bGUt
PipzZXR0ZXJGdW5jdGlvbikoV1RGOjptb3ZlKHZhbHVlKSk7IH0KLSAgICBzdGF0aWMgdm9pZCBh
cHBseVZhbHVlKENTU1Byb3BlcnR5SUQsIFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIsIENT
U1ZhbHVlKiB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIGlmICghaXM8Q1NTUHJpbWl0aXZlVmFsdWU+
KCp2YWx1ZSkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgQ1NTUHJpbWl0aXZlVmFs
dWUmIHByaW1pdGl2ZVZhbHVlID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSk7
Ci0gICAgICAgIGlmIChub25lRW5hYmxlZCAmJiBwcmltaXRpdmVWYWx1ZS5nZXRWYWx1ZUlEKCkg
PT0gQ1NTVmFsdWVOb25lKSB7Ci0gICAgICAgICAgICBpZiAobm9uZVVuZGVmaW5lZCkKLSAgICAg
ICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29sdmVyLT5zdHlsZSgpLCBMZW5ndGgoVW5kZWZp
bmVkKSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgc2V0VmFsdWUoc3R5bGVS
ZXNvbHZlci0+c3R5bGUoKSwgTGVuZ3RoKCkpOwotICAgICAgICB9Ci0gICAgICAgIGlmIChsZWdh
Y3lJbnRyaW5zaWNFbmFibGVkKSB7Ci0gICAgICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUuZ2V0
VmFsdWVJRCgpID09IENTU1ZhbHVlSW50cmluc2ljKQotICAgICAgICAgICAgICAgIHNldFZhbHVl
KHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIExlbmd0aChJbnRyaW5zaWMpKTsKLSAgICAgICAgICAg
IGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZU1pbkludHJp
bnNpYykKLSAgICAgICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29sdmVyLT5zdHlsZSgpLCBM
ZW5ndGgoTWluSW50cmluc2ljKSk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGludHJpbnNpY0Vu
YWJsZWQpIHsKLSAgICAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS5nZXRWYWx1ZUlEKCkgPT0g
Q1NTVmFsdWVXZWJraXRNaW5Db250ZW50KQotICAgICAgICAgICAgICAgIHNldFZhbHVlKHN0eWxl
UmVzb2x2ZXItPnN0eWxlKCksIExlbmd0aChNaW5Db250ZW50KSk7Ci0gICAgICAgICAgICBlbHNl
IGlmIChwcmltaXRpdmVWYWx1ZS5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVXZWJraXRNYXhDb250
ZW50KQotICAgICAgICAgICAgICAgIHNldFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIExl
bmd0aChNYXhDb250ZW50KSk7Ci0gICAgICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS5n
ZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVXZWJraXRGaWxsQXZhaWxhYmxlKQotICAgICAgICAgICAg
ICAgIHNldFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIExlbmd0aChGaWxsQXZhaWxhYmxl
KSk7Ci0gICAgICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS5nZXRWYWx1ZUlEKCkgPT0g
Q1NTVmFsdWVXZWJraXRGaXRDb250ZW50KQotICAgICAgICAgICAgICAgIHNldFZhbHVlKHN0eWxl
UmVzb2x2ZXItPnN0eWxlKCksIExlbmd0aChGaXRDb250ZW50KSk7Ci0gICAgICAgIH0KLQotICAg
ICAgICBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhIGNvbnZlcnNpb25EYXRhID0gc3R5bGVSZXNv
bHZlci0+dXNlU1ZHWm9vbVJ1bGVzRm9yTGVuZ3RoKCkgPwotICAgICAgICAgICAgc3R5bGVSZXNv
bHZlci0+c3RhdGUoKS5jc3NUb0xlbmd0aENvbnZlcnNpb25EYXRhKCkuY29weVdpdGhBZGp1c3Rl
ZFpvb20oMS4wZikKLSAgICAgICAgICAgIDogc3R5bGVSZXNvbHZlci0+c3RhdGUoKS5jc3NUb0xl
bmd0aENvbnZlcnNpb25EYXRhKCk7Ci0gICAgICAgIGlmIChhdXRvRW5hYmxlZCAmJiBwcmltaXRp
dmVWYWx1ZS5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVBdXRvKQotICAgICAgICAgICAgc2V0VmFs
dWUoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgTGVuZ3RoKCkpOwotICAgICAgICBlbHNlIGlmIChw
cmltaXRpdmVWYWx1ZS5pc0xlbmd0aCgpKSB7Ci0gICAgICAgICAgICBMZW5ndGggbGVuZ3RoID0g
cHJpbWl0aXZlVmFsdWUuY29tcHV0ZUxlbmd0aDxMZW5ndGg+KGNvbnZlcnNpb25EYXRhKTsKLSAg
ICAgICAgICAgIGxlbmd0aC5zZXRIYXNRdWlyayhwcmltaXRpdmVWYWx1ZS5pc1F1aXJrVmFsdWUo
KSk7Ci0gICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29sdmVyLT5zdHlsZSgpLCBsZW5ndGgp
OwotICAgICAgICB9IGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLmlzUGVyY2VudGFnZSgpKQotICAg
ICAgICAgICAgc2V0VmFsdWUoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgTGVuZ3RoKHByaW1pdGl2
ZVZhbHVlLmdldERvdWJsZVZhbHVlKCksIFBlcmNlbnQpKTsKLSAgICAgICAgZWxzZSBpZiAocHJp
bWl0aXZlVmFsdWUuaXNDYWxjdWxhdGVkUGVyY2VudGFnZVdpdGhMZW5ndGgoKSkKLSAgICAgICAg
ICAgIHNldFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIExlbmd0aChwcmltaXRpdmVWYWx1
ZS5jc3NDYWxjVmFsdWUoKS0+Y3JlYXRlQ2FsY3VsYXRpb25WYWx1ZShjb252ZXJzaW9uRGF0YSkp
KTsKLSAgICB9Ci0KLSAgICBzdGF0aWMgUHJvcGVydHlIYW5kbGVyIGNyZWF0ZUhhbmRsZXIoKQot
ICAgIHsKLSAgICAgICAgUHJvcGVydHlIYW5kbGVyIGhhbmRsZXIgPSBBcHBseVByb3BlcnR5RGVm
YXVsdEJhc2U8Y29uc3QgTGVuZ3RoJiwgZ2V0dGVyRnVuY3Rpb24sIExlbmd0aCwgc2V0dGVyRnVu
Y3Rpb24sIExlbmd0aCwgaW5pdGlhbEZ1bmN0aW9uPjo6Y3JlYXRlSGFuZGxlcigpOwotICAgICAg
ICByZXR1cm4gUHJvcGVydHlIYW5kbGVyKGhhbmRsZXIuaW5oZXJpdEZ1bmN0aW9uKCksIGhhbmRs
ZXIuaW5pdGlhbEZ1bmN0aW9uKCksICZhcHBseVZhbHVlKTsKLSAgICB9Ci19OwotCiBlbnVtIFN0
cmluZ0lkZW50QmVoYXZpb3IgeyBOb3RoaW5nTWFwc1RvTnVsbCA9IDAsIE1hcE5vbmVUb051bGws
IE1hcEF1dG9Ub051bGwgfTsKIHRlbXBsYXRlIDxTdHJpbmdJZGVudEJlaGF2aW9yIGlkZW50QmVo
YXZpb3IsIGNvbnN0IEF0b21pY1N0cmluZyYgKFJlbmRlclN0eWxlOjoqZ2V0dGVyRnVuY3Rpb24p
KCkgY29uc3QsIHZvaWQgKFJlbmRlclN0eWxlOjoqc2V0dGVyRnVuY3Rpb24pKGNvbnN0IEF0b21p
Y1N0cmluZyYpLCBjb25zdCBBdG9taWNTdHJpbmcmICgqaW5pdGlhbEZ1bmN0aW9uKSgpPgogY2xh
c3MgQXBwbHlQcm9wZXJ0eVN0cmluZyB7CkBAIC0xMTczLDQxICsxMTA2LDYgQEAgcHVibGljOgog
ICAgIH0KIH07CiAKLWNsYXNzIEFwcGx5UHJvcGVydHlNYXJxdWVlSW5jcmVtZW50IHsKLXB1Ymxp
YzoKLSAgICBzdGF0aWMgdm9pZCBhcHBseVZhbHVlKENTU1Byb3BlcnR5SUQsIFN0eWxlUmVzb2x2
ZXIqIHN0eWxlUmVzb2x2ZXIsIENTU1ZhbHVlKiB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIGlmICgh
aXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAg
ICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUmIHByaW1pdGl2ZVZhbHVlID0gZG93bmNhc3Q8Q1NTUHJp
bWl0aXZlVmFsdWU+KCp2YWx1ZSk7Ci0gICAgICAgIExlbmd0aCBtYXJxdWVlTGVuZ3RoKFVuZGVm
aW5lZCk7Ci0gICAgICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUuZ2V0VmFsdWVJRCgpKSB7Ci0g
ICAgICAgIGNhc2UgQ1NTVmFsdWVTbWFsbDoKLSAgICAgICAgICAgIG1hcnF1ZWVMZW5ndGggPSBM
ZW5ndGgoMSwgRml4ZWQpOyAvLyAxcHguCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBDU1NWYWx1ZU5vcm1hbDoKLSAgICAgICAgICAgIG1hcnF1ZWVMZW5ndGggPSBMZW5ndGgoNiwg
Rml4ZWQpOyAvLyA2cHguIFRoZSBXaW5JRSBkZWZhdWx0LgotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgQ1NTVmFsdWVMYXJnZToKLSAgICAgICAgICAgIG1hcnF1ZWVMZW5ndGggPSBM
ZW5ndGgoMzYsIEZpeGVkKTsgLy8gMzZweC4KLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIENTU1ZhbHVlSW52YWxpZDoKLSAgICAgICAgICAgIG1hcnF1ZWVMZW5ndGggPSBwcmltaXRp
dmVWYWx1ZS5jb252ZXJ0VG9MZW5ndGg8Rml4ZWRJbnRlZ2VyQ29udmVyc2lvbiB8IFBlcmNlbnRD
b252ZXJzaW9uIHwgQ2FsY3VsYXRlZENvbnZlcnNpb24+KHN0eWxlUmVzb2x2ZXItPnN0YXRlKCku
Y3NzVG9MZW5ndGhDb252ZXJzaW9uRGF0YSgpLmNvcHlXaXRoQWRqdXN0ZWRab29tKDEuMGYpKTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFtYXJxdWVlTGVuZ3RoLmlzVW5kZWZpbmVkKCkpCi0g
ICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRNYXJxdWVlSW5jcmVtZW50KG1h
cnF1ZWVMZW5ndGgpOwotICAgIH0KLSAgICBzdGF0aWMgUHJvcGVydHlIYW5kbGVyIGNyZWF0ZUhh
bmRsZXIoKQotICAgIHsKLSAgICAgICAgUHJvcGVydHlIYW5kbGVyIGhhbmRsZXIgPSBBcHBseVBy
b3BlcnR5TGVuZ3RoPCZSZW5kZXJTdHlsZTo6bWFycXVlZUluY3JlbWVudCwgJlJlbmRlclN0eWxl
OjpzZXRNYXJxdWVlSW5jcmVtZW50LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxNYXJxdWVlSW5jcmVt
ZW50Pjo6Y3JlYXRlSGFuZGxlcigpOwotICAgICAgICByZXR1cm4gUHJvcGVydHlIYW5kbGVyKGhh
bmRsZXIuaW5oZXJpdEZ1bmN0aW9uKCksIGhhbmRsZXIuaW5pdGlhbEZ1bmN0aW9uKCksICZhcHBs
eVZhbHVlKTsKLSAgICB9Ci19OwotCiBjbGFzcyBBcHBseVByb3BlcnR5TWFycXVlZVJlcGV0aXRp
b24gewogcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGFwcGx5VmFsdWUoQ1NTUHJvcGVydHlJRCwg
U3R5bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlciwgQ1NTVmFsdWUqIHZhbHVlKQpAQCAtMjI1Nyw3
ICsyMTU1LDYgQEAgRGVwcmVjYXRlZFN0eWxlQnVpbGRlcjo6RGVwcmVjYXRlZFN0eWxlQnVpbGRl
cigpCiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0Rm9udFZhcmlhbnRM
aWdhdHVyZXMsIEFwcGx5UHJvcGVydHlGb250VmFyaWFudExpZ2F0dXJlczo6Y3JlYXRlSGFuZGxl
cigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRIeXBoZW5hdGVD
aGFyYWN0ZXIsIEFwcGx5UHJvcGVydHlTdHJpbmc8TWFwQXV0b1RvTnVsbCwgJlJlbmRlclN0eWxl
OjpoeXBoZW5hdGlvblN0cmluZywgJlJlbmRlclN0eWxlOjpzZXRIeXBoZW5hdGlvblN0cmluZywg
JlJlbmRlclN0eWxlOjppbml0aWFsSHlwaGVuYXRpb25TdHJpbmc+OjpjcmVhdGVIYW5kbGVyKCkp
OwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdExpbmVHcmlkLCBBcHBs
eVByb3BlcnR5U3RyaW5nPE1hcE5vbmVUb051bGwsICZSZW5kZXJTdHlsZTo6bGluZUdyaWQsICZS
ZW5kZXJTdHlsZTo6c2V0TGluZUdyaWQsICZSZW5kZXJTdHlsZTo6aW5pdGlhbExpbmVHcmlkPjo6
Y3JlYXRlSGFuZGxlcigpKTsKLSAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJr
aXRNYXJxdWVlSW5jcmVtZW50LCBBcHBseVByb3BlcnR5TWFycXVlZUluY3JlbWVudDo6Y3JlYXRl
SGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRNYXJx
dWVlUmVwZXRpdGlvbiwgQXBwbHlQcm9wZXJ0eU1hcnF1ZWVSZXBldGl0aW9uOjpjcmVhdGVIYW5k
bGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdE1hcnF1ZWVT
cGVlZCwgQXBwbHlQcm9wZXJ0eU1hcnF1ZWVTcGVlZDo6Y3JlYXRlSGFuZGxlcigpKTsKICAgICBz
ZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRNYXNrQm94SW1hZ2VPdXRzZXQsIEFw
cGx5UHJvcGVydHlCb3JkZXJJbWFnZU1vZGlmaWVyPEJvcmRlck1hc2ssIE91dHNldD46OmNyZWF0
ZUhhbmRsZXIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVy
Q3VzdG9tLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ3VzdG9tLmgKaW5kZXgg
Nzc3ZWNkMGIzYjQxZGY5N2VmYzc5OWE2MTczMzNjMTU1ZmJlOTcyMS4uY2I0Y2UyODk2YzgyOTYw
NTQxZDg4M2JlZjU1MTRiZDg3NWY3NmM4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlQnVpbGRlckN1c3RvbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxk
ZXJDdXN0b20uaApAQCAtNDIsNiArNDIsMzAgQEAgaW5saW5lIHZvaWQgYXBwbHlWYWx1ZVdlYmtp
dEh5cGhlbmF0ZUxpbWl0TGluZXMoU3R5bGVSZXNvbHZlciYgc3R5bGVSZXNvbHZlciwgQ1MKICAg
ICBzdHlsZVJlc29sdmVyLnN0eWxlKCktPnNldEh5cGhlbmF0aW9uTGltaXRMaW5lcyhudW1iZXIp
OwogfQogCitpbmxpbmUgdm9pZCBhcHBseVZhbHVlV2Via2l0TWFycXVlZUluY3JlbWVudChTdHls
ZVJlc29sdmVyJiBzdHlsZVJlc29sdmVyLCBDU1NWYWx1ZSYgdmFsdWUpCit7CisgICAgYXV0byYg
cHJpbWl0aXZlVmFsdWUgPSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUpOworICAg
IExlbmd0aCBtYXJxdWVlTGVuZ3RoKFVuZGVmaW5lZCk7CisgICAgc3dpdGNoIChwcmltaXRpdmVW
YWx1ZS5nZXRWYWx1ZUlEKCkpIHsKKyAgICBjYXNlIENTU1ZhbHVlU21hbGw6CisgICAgICAgIG1h
cnF1ZWVMZW5ndGggPSBMZW5ndGgoMSwgRml4ZWQpOyAvLyAxcHguCisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQ1NTVmFsdWVOb3JtYWw6CisgICAgICAgIG1hcnF1ZWVMZW5ndGggPSBMZW5ndGgo
NiwgRml4ZWQpOyAvLyA2cHguIFRoZSBXaW5JRSBkZWZhdWx0LgorICAgICAgICBicmVhazsKKyAg
ICBjYXNlIENTU1ZhbHVlTGFyZ2U6CisgICAgICAgIG1hcnF1ZWVMZW5ndGggPSBMZW5ndGgoMzYs
IEZpeGVkKTsgLy8gMzZweC4KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1ZUludmFs
aWQ6CisgICAgICAgIG1hcnF1ZWVMZW5ndGggPSBwcmltaXRpdmVWYWx1ZS5jb252ZXJ0VG9MZW5n
dGg8Rml4ZWRJbnRlZ2VyQ29udmVyc2lvbiB8IFBlcmNlbnRDb252ZXJzaW9uIHwgQ2FsY3VsYXRl
ZENvbnZlcnNpb24+KHN0eWxlUmVzb2x2ZXIuc3RhdGUoKS5jc3NUb0xlbmd0aENvbnZlcnNpb25E
YXRhKCkuY29weVdpdGhBZGp1c3RlZFpvb20oMS4wZikpOworICAgICAgICBicmVhazsKKyAgICBk
ZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisgICAgaWYgKCFtYXJxdWVlTGVuZ3RoLmlz
VW5kZWZpbmVkKCkpCisgICAgICAgIHN0eWxlUmVzb2x2ZXIuc3R5bGUoKS0+c2V0TWFycXVlZUlu
Y3JlbWVudChtYXJxdWVlTGVuZ3RoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgU3R5bGVCdWlsZGVy
RnVuY3Rpb25zCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvY3NzL3dlYmtpdC1tYXJxdWVlLWluY3JlbWVudC1iYWQtdmFsdWUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvd2Via2l0LW1hcnF1ZWUtaW5jcmVtZW50LWJhZC12
YWx1ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Y3MmM1OWQxZWZiYzJlYzU5NGRlZmNmZGZj
ZDljMTljMTQwODA0MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3dl
YmtpdC1tYXJxdWVlLWluY3JlbWVudC1iYWQtdmFsdWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTIgQEAKK01ha2VzIHN1cmUgd2UgZG9uJ3QgY3Jhc2ggaW4gdGhlIFN0eWxlQnVpbGRlciBpZiBi
YWQgdmFsdWVzIGFyZSB1c2VkIGZvciAtd2Via2l0LW1hcnF1ZWUtaW5jcmVtZW50IHByb3BlcnR5
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBObyBjcmFzaCBmb3IgMXB4
IDJweCB2YWx1ZQorUEFTUyBObyBjcmFzaCBmb3IgdXJsKCJyZXNvdXJjZXMvYm9yZGVyLWltYWdl
LnBuZyIpIHZhbHVlCitQQVNTIE5vIGNyYXNoIGZvciBjb3B5IHZhbHVlCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9jc3Mvd2Via2l0LW1hcnF1ZWUtaW5jcmVtZW50LWJhZC12YWx1ZS5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9jc3Mvd2Via2l0LW1hcnF1ZWUtaW5jcmVtZW50LWJhZC12YWx1ZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmRiZmE0ZjhkMDgwOGIwMDgwNTljZTdhODA4NzA0NGJjMzI0ODhhNzQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy93ZWJraXQtbWFycXVlZS1p
bmNyZW1lbnQtYmFkLXZhbHVlLmh0bWwKQEAgLTAsMCArMSwyMSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxtYXJxdWVlIGlkPSJteU1hcnF1ZWUiPjwvbWFycXVlZT4KKworPHNjcmlwdD4KK2Rlc2NyaXB0
aW9uKCJNYWtlcyBzdXJlIHdlIGRvbid0IGNyYXNoIGluIHRoZSBTdHlsZUJ1aWxkZXIgaWYgYmFk
IHZhbHVlcyBhcmUgdXNlZCBmb3IgLXdlYmtpdC1tYXJxdWVlLWluY3JlbWVudCBwcm9wZXJ0eS4i
KTsKKwordmFyIGJhZFZhbHVlcyA9IFsKKyAgICAiMXB4IDJweCIsIC8vIGEgbGlzdC4KKyAgICAi
dXJsKFwicmVzb3VyY2VzL2JvcmRlci1pbWFnZS5wbmdcIikiLCAvLyBhbiBpbWFnZSB1cmwuCisg
ICAgImNvcHkiLCAvLyBhIGN1cnNvci4KK107CisKK3ZhciB0ZXN0RWxlbWVudCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJteU1hcnF1ZWUiKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgYmFkVmFs
dWVzLmxlbmd0aDsgKytpKSB7CisgICAgdGVzdEVsZW1lbnQuc3R5bGVbIi13ZWJraXQtbWFycXVl
ZS1pbmNyZW1lbnQiXSA9IGJhZFZhbHVlc1tpXTsKKyAgICBkb2N1bWVudC5kZWZhdWx0Vmlldy5n
ZXRDb21wdXRlZFN0eWxlKHRlc3RFbGVtZW50KVsiLXdlYmtpdC1tYXJxdWVlLWluY3JlbWVudCJd
OworICAgIHRlc3RQYXNzZWQoIk5vIGNyYXNoIGZvciAiICsgYmFkVmFsdWVzW2ldICsgIiB2YWx1
ZSIpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240723</attachid>
            <date>2014-10-30 20:42:42 -0700</date>
            <delta_ts>2014-10-31 16:46:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138208-20141030204250.patch</filename>
            <type>text/plain</type>
            <size>12679</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1NDA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmNjNTg2MWY1MzRjNTNi
YTIyNDI3NmYyYjc5NDMxMjViNjQ5MTMzZC4uNDRhMGU5NjQ3OWM1MDcwMGQwMGE3ZTZkMGYzOTQ3
ZmRmZDM5MmRmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE0LTEwLTI5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSAtd2Via2l0LW1hcnF1
ZWUtaW5jcmVtZW50IHByb3BlcnR5IHRvIHRoZSBuZXcgU3R5bGVCdWlsZGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzgyMDgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIC13ZWJraXQtbWFycXVl
ZS1pbmNyZW1lbnQgcHJvcGVydHkgZnJvbSBEZXByZWNhdGVkU3R5bGVCdWlsZGVyIHRvCisgICAg
ICAgIHRoZSBuZXcgU3R5bGVCdWlsZGVyIHNvIHRoYXQgaXQgaXMgZ2VuZXJhdGVkIGZyb20gQ1NT
UHJvcGVydHlOYW1lcy5pbi4KKyAgICAgICAgQ3VzdG9tIGNvZGUgaXMgdXNlZCB0byBzZXQgdGhl
IHZhbHVlIGR1ZSB0byB0aGUgIWxlbmd0aC5pc1VuZGVmaW5lZCgpCisgICAgICAgIGNoZWNrIGJl
Zm9yZSBjYWxsaW5nIHNldE1hcnF1ZWVJbmNyZW1lbnQoKS4KKworICAgICAgICBUZXN0OiBmYXN0
L2Nzcy93ZWJraXQtbWFycXVlZS1pbmNyZW1lbnQtYmFkLXZhbHVlLmh0bWwKKworICAgICAgICAq
IGNzcy9DU1NQcm9wZXJ0eU5hbWVzLmluOgorICAgICAgICAqIGNzcy9EZXByZWNhdGVkU3R5bGVC
dWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlcHJlY2F0ZWRTdHlsZUJ1aWxkZXI6OkRl
cHJlY2F0ZWRTdHlsZUJ1aWxkZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eUxl
bmd0aDo6c2V0VmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0
eUxlbmd0aDo6YXBwbHlWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBcHBseVBy
b3BlcnR5TGVuZ3RoOjpjcmVhdGVIYW5kbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkFwcGx5UHJvcGVydHlNYXJxdWVlSW5jcmVtZW50OjphcHBseVZhbHVlKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlNYXJxdWVlSW5jcmVtZW50OjpjcmVhdGVIYW5k
bGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3MvU3R5bGVCdWlsZGVyQ3VzdG9tLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZUJ1aWxkZXJGdW5jdGlvbnM6OmFwcGx5VmFsdWVXZWJraXRNYXJx
dWVlSW5jcmVtZW50KToKKwogMjAxNC0xMC0zMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIE1vdmUgYm9yZGVyLWltYWdlLXNvdXJjZSAvIC13ZWJraXQtbWFzay1i
b3gtaW1hZ2Utc291cmNlIHRvIHRoZSBuZXcgU3R5bGVCdWlsZGVyCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQcm9wZXJ0eU5hbWVzLmluCmluZGV4IGNiODk2YjYwZGI5NjFhMGQyZmZiNGZlMDMwMjEyOTc3
Y2I5ZGViNTYuLjVmODM0MDhiYjcyMzA3OWUzMjg5M2VkNmQ0MTc4YmQ2NzY2MWEyMWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCkBAIC00MDIsNyArNDAyLDcgQEAganVz
dGlmeS1jb250ZW50IFtOZXdTdHlsZUJ1aWxkZXJdCiAtd2Via2l0LW1hcmdpbi1zdGFydAogLXdl
YmtpdC1tYXJxdWVlCiAtd2Via2l0LW1hcnF1ZWUtZGlyZWN0aW9uIFtOZXdTdHlsZUJ1aWxkZXJd
Ci0td2Via2l0LW1hcnF1ZWUtaW5jcmVtZW50Cistd2Via2l0LW1hcnF1ZWUtaW5jcmVtZW50IFtO
ZXdTdHlsZUJ1aWxkZXIsIEN1c3RvbT1WYWx1ZV0KIC13ZWJraXQtbWFycXVlZS1yZXBldGl0aW9u
CiAtd2Via2l0LW1hcnF1ZWUtc3BlZWQKIC13ZWJraXQtbWFycXVlZS1zdHlsZSBbTmV3U3R5bGVC
dWlsZGVyLCBUeXBlTmFtZT1FTWFycXVlZUJlaGF2aW9yLCBOYW1lRm9yTWV0aG9kcz1NYXJxdWVl
QmVoYXZpb3JdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZFN0eWxl
QnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5j
cHAKaW5kZXggNTFmN2Q3OWFhNzgyMjYwMmYyZmI5YjM2NDY1YTVhNjljYWU1NWZiYi4uMjI3NzI2
ODk0NWM0OWVlZjc4MThlMzI1ZTJhNTRkYjQ4YmQ1NmRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9EZXByZWNhdGVkU3R5bGVCdWlsZGVyLmNwcApAQCAtMzIwLDczICszMjAsNiBAQCBwdWJs
aWM6CiAgICAgfQogfTsKIAotZW51bSBMZW5ndGhBdXRvIHsgQXV0b0Rpc2FibGVkID0gMCwgQXV0
b0VuYWJsZWQgfTsKLWVudW0gTGVuZ3RoTGVnYWN5SW50cmluc2ljIHsgTGVnYWN5SW50cmluc2lj
RGlzYWJsZWQgPSAwLCBMZWdhY3lJbnRyaW5zaWNFbmFibGVkIH07Ci1lbnVtIExlbmd0aEludHJp
bnNpYyB7IEludHJpbnNpY0Rpc2FibGVkID0gMCwgSW50cmluc2ljRW5hYmxlZCB9OwotZW51bSBM
ZW5ndGhOb25lIHsgTm9uZURpc2FibGVkID0gMCwgTm9uZUVuYWJsZWQgfTsKLWVudW0gTGVuZ3Ro
VW5kZWZpbmVkIHsgVW5kZWZpbmVkRGlzYWJsZWQgPSAwLCBVbmRlZmluZWRFbmFibGVkIH07Ci10
ZW1wbGF0ZSA8Y29uc3QgTGVuZ3RoJiAoUmVuZGVyU3R5bGU6OipnZXR0ZXJGdW5jdGlvbikoKSBj
b25zdCwKLSAgICAgICAgICB2b2lkIChSZW5kZXJTdHlsZTo6KnNldHRlckZ1bmN0aW9uKShMZW5n
dGgpLAotICAgICAgICAgIExlbmd0aCAoKmluaXRpYWxGdW5jdGlvbikoKSwKLSAgICAgICAgICBM
ZW5ndGhBdXRvIGF1dG9FbmFibGVkID0gQXV0b0Rpc2FibGVkLAotICAgICAgICAgIExlbmd0aExl
Z2FjeUludHJpbnNpYyBsZWdhY3lJbnRyaW5zaWNFbmFibGVkID0gTGVnYWN5SW50cmluc2ljRGlz
YWJsZWQsCi0gICAgICAgICAgTGVuZ3RoSW50cmluc2ljIGludHJpbnNpY0VuYWJsZWQgPSBJbnRy
aW5zaWNEaXNhYmxlZCwKLSAgICAgICAgICBMZW5ndGhOb25lIG5vbmVFbmFibGVkID0gTm9uZURp
c2FibGVkLAotICAgICAgICAgIExlbmd0aFVuZGVmaW5lZCBub25lVW5kZWZpbmVkID0gVW5kZWZp
bmVkRGlzYWJsZWQ+Ci1jbGFzcyBBcHBseVByb3BlcnR5TGVuZ3RoIHsKLXB1YmxpYzoKLSAgICBz
dGF0aWMgdm9pZCBzZXRWYWx1ZShSZW5kZXJTdHlsZSogc3R5bGUsIExlbmd0aCB2YWx1ZSkgeyAo
c3R5bGUtPipzZXR0ZXJGdW5jdGlvbikoV1RGOjptb3ZlKHZhbHVlKSk7IH0KLSAgICBzdGF0aWMg
dm9pZCBhcHBseVZhbHVlKENTU1Byb3BlcnR5SUQsIFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2
ZXIsIENTU1ZhbHVlKiB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIGlmICghaXM8Q1NTUHJpbWl0aXZl
VmFsdWU+KCp2YWx1ZSkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgQ1NTUHJpbWl0
aXZlVmFsdWUmIHByaW1pdGl2ZVZhbHVlID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2
YWx1ZSk7Ci0gICAgICAgIGlmIChub25lRW5hYmxlZCAmJiBwcmltaXRpdmVWYWx1ZS5nZXRWYWx1
ZUlEKCkgPT0gQ1NTVmFsdWVOb25lKSB7Ci0gICAgICAgICAgICBpZiAobm9uZVVuZGVmaW5lZCkK
LSAgICAgICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29sdmVyLT5zdHlsZSgpLCBMZW5ndGgo
VW5kZWZpbmVkKSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgc2V0VmFsdWUo
c3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgTGVuZ3RoKCkpOwotICAgICAgICB9Ci0gICAgICAgIGlm
IChsZWdhY3lJbnRyaW5zaWNFbmFibGVkKSB7Ci0gICAgICAgICAgICBpZiAocHJpbWl0aXZlVmFs
dWUuZ2V0VmFsdWVJRCgpID09IENTU1ZhbHVlSW50cmluc2ljKQotICAgICAgICAgICAgICAgIHNl
dFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIExlbmd0aChJbnRyaW5zaWMpKTsKLSAgICAg
ICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZU1p
bkludHJpbnNpYykKLSAgICAgICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29sdmVyLT5zdHls
ZSgpLCBMZW5ndGgoTWluSW50cmluc2ljKSk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGludHJp
bnNpY0VuYWJsZWQpIHsKLSAgICAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS5nZXRWYWx1ZUlE
KCkgPT0gQ1NTVmFsdWVXZWJraXRNaW5Db250ZW50KQotICAgICAgICAgICAgICAgIHNldFZhbHVl
KHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIExlbmd0aChNaW5Db250ZW50KSk7Ci0gICAgICAgICAg
ICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVXZWJraXRN
YXhDb250ZW50KQotICAgICAgICAgICAgICAgIHNldFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxl
KCksIExlbmd0aChNYXhDb250ZW50KSk7Ci0gICAgICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVW
YWx1ZS5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVXZWJraXRGaWxsQXZhaWxhYmxlKQotICAgICAg
ICAgICAgICAgIHNldFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIExlbmd0aChGaWxsQXZh
aWxhYmxlKSk7Ci0gICAgICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS5nZXRWYWx1ZUlE
KCkgPT0gQ1NTVmFsdWVXZWJraXRGaXRDb250ZW50KQotICAgICAgICAgICAgICAgIHNldFZhbHVl
KHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIExlbmd0aChGaXRDb250ZW50KSk7Ci0gICAgICAgIH0K
LQotICAgICAgICBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhIGNvbnZlcnNpb25EYXRhID0gc3R5
bGVSZXNvbHZlci0+dXNlU1ZHWm9vbVJ1bGVzRm9yTGVuZ3RoKCkgPwotICAgICAgICAgICAgc3R5
bGVSZXNvbHZlci0+c3RhdGUoKS5jc3NUb0xlbmd0aENvbnZlcnNpb25EYXRhKCkuY29weVdpdGhB
ZGp1c3RlZFpvb20oMS4wZikKLSAgICAgICAgICAgIDogc3R5bGVSZXNvbHZlci0+c3RhdGUoKS5j
c3NUb0xlbmd0aENvbnZlcnNpb25EYXRhKCk7Ci0gICAgICAgIGlmIChhdXRvRW5hYmxlZCAmJiBw
cmltaXRpdmVWYWx1ZS5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVBdXRvKQotICAgICAgICAgICAg
c2V0VmFsdWUoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgTGVuZ3RoKCkpOwotICAgICAgICBlbHNl
IGlmIChwcmltaXRpdmVWYWx1ZS5pc0xlbmd0aCgpKSB7Ci0gICAgICAgICAgICBMZW5ndGggbGVu
Z3RoID0gcHJpbWl0aXZlVmFsdWUuY29tcHV0ZUxlbmd0aDxMZW5ndGg+KGNvbnZlcnNpb25EYXRh
KTsKLSAgICAgICAgICAgIGxlbmd0aC5zZXRIYXNRdWlyayhwcmltaXRpdmVWYWx1ZS5pc1F1aXJr
VmFsdWUoKSk7Ci0gICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29sdmVyLT5zdHlsZSgpLCBs
ZW5ndGgpOwotICAgICAgICB9IGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLmlzUGVyY2VudGFnZSgp
KQotICAgICAgICAgICAgc2V0VmFsdWUoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgTGVuZ3RoKHBy
aW1pdGl2ZVZhbHVlLmdldERvdWJsZVZhbHVlKCksIFBlcmNlbnQpKTsKLSAgICAgICAgZWxzZSBp
ZiAocHJpbWl0aXZlVmFsdWUuaXNDYWxjdWxhdGVkUGVyY2VudGFnZVdpdGhMZW5ndGgoKSkKLSAg
ICAgICAgICAgIHNldFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIExlbmd0aChwcmltaXRp
dmVWYWx1ZS5jc3NDYWxjVmFsdWUoKS0+Y3JlYXRlQ2FsY3VsYXRpb25WYWx1ZShjb252ZXJzaW9u
RGF0YSkpKTsKLSAgICB9Ci0KLSAgICBzdGF0aWMgUHJvcGVydHlIYW5kbGVyIGNyZWF0ZUhhbmRs
ZXIoKQotICAgIHsKLSAgICAgICAgUHJvcGVydHlIYW5kbGVyIGhhbmRsZXIgPSBBcHBseVByb3Bl
cnR5RGVmYXVsdEJhc2U8Y29uc3QgTGVuZ3RoJiwgZ2V0dGVyRnVuY3Rpb24sIExlbmd0aCwgc2V0
dGVyRnVuY3Rpb24sIExlbmd0aCwgaW5pdGlhbEZ1bmN0aW9uPjo6Y3JlYXRlSGFuZGxlcigpOwot
ICAgICAgICByZXR1cm4gUHJvcGVydHlIYW5kbGVyKGhhbmRsZXIuaW5oZXJpdEZ1bmN0aW9uKCks
IGhhbmRsZXIuaW5pdGlhbEZ1bmN0aW9uKCksICZhcHBseVZhbHVlKTsKLSAgICB9Ci19OwotCiBl
bnVtIFN0cmluZ0lkZW50QmVoYXZpb3IgeyBOb3RoaW5nTWFwc1RvTnVsbCA9IDAsIE1hcE5vbmVU
b051bGwsIE1hcEF1dG9Ub051bGwgfTsKIHRlbXBsYXRlIDxTdHJpbmdJZGVudEJlaGF2aW9yIGlk
ZW50QmVoYXZpb3IsIGNvbnN0IEF0b21pY1N0cmluZyYgKFJlbmRlclN0eWxlOjoqZ2V0dGVyRnVu
Y3Rpb24pKCkgY29uc3QsIHZvaWQgKFJlbmRlclN0eWxlOjoqc2V0dGVyRnVuY3Rpb24pKGNvbnN0
IEF0b21pY1N0cmluZyYpLCBjb25zdCBBdG9taWNTdHJpbmcmICgqaW5pdGlhbEZ1bmN0aW9uKSgp
PgogY2xhc3MgQXBwbHlQcm9wZXJ0eVN0cmluZyB7CkBAIC0xMTYyLDQxICsxMDk1LDYgQEAgcHVi
bGljOgogICAgIH0KIH07CiAKLWNsYXNzIEFwcGx5UHJvcGVydHlNYXJxdWVlSW5jcmVtZW50IHsK
LXB1YmxpYzoKLSAgICBzdGF0aWMgdm9pZCBhcHBseVZhbHVlKENTU1Byb3BlcnR5SUQsIFN0eWxl
UmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIsIENTU1ZhbHVlKiB2YWx1ZSkKLSAgICB7Ci0gICAgICAg
IGlmICghaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkpCi0gICAgICAgICAgICByZXR1cm47
Ci0KLSAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUmIHByaW1pdGl2ZVZhbHVlID0gZG93bmNhc3Q8
Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSk7Ci0gICAgICAgIExlbmd0aCBtYXJxdWVlTGVuZ3Ro
KFVuZGVmaW5lZCk7Ci0gICAgICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUuZ2V0VmFsdWVJRCgp
KSB7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVTbWFsbDoKLSAgICAgICAgICAgIG1hcnF1ZWVMZW5n
dGggPSBMZW5ndGgoMSwgRml4ZWQpOyAvLyAxcHguCi0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKLSAgICAgICAgICAgIG1hcnF1ZWVMZW5ndGggPSBMZW5n
dGgoNiwgRml4ZWQpOyAvLyA2cHguIFRoZSBXaW5JRSBkZWZhdWx0LgotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgQ1NTVmFsdWVMYXJnZToKLSAgICAgICAgICAgIG1hcnF1ZWVMZW5n
dGggPSBMZW5ndGgoMzYsIEZpeGVkKTsgLy8gMzZweC4KLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIENTU1ZhbHVlSW52YWxpZDoKLSAgICAgICAgICAgIG1hcnF1ZWVMZW5ndGggPSBw
cmltaXRpdmVWYWx1ZS5jb252ZXJ0VG9MZW5ndGg8Rml4ZWRJbnRlZ2VyQ29udmVyc2lvbiB8IFBl
cmNlbnRDb252ZXJzaW9uIHwgQ2FsY3VsYXRlZENvbnZlcnNpb24+KHN0eWxlUmVzb2x2ZXItPnN0
YXRlKCkuY3NzVG9MZW5ndGhDb252ZXJzaW9uRGF0YSgpLmNvcHlXaXRoQWRqdXN0ZWRab29tKDEu
MGYpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFtYXJxdWVlTGVuZ3RoLmlzVW5kZWZpbmVk
KCkpCi0gICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRNYXJxdWVlSW5jcmVt
ZW50KG1hcnF1ZWVMZW5ndGgpOwotICAgIH0KLSAgICBzdGF0aWMgUHJvcGVydHlIYW5kbGVyIGNy
ZWF0ZUhhbmRsZXIoKQotICAgIHsKLSAgICAgICAgUHJvcGVydHlIYW5kbGVyIGhhbmRsZXIgPSBB
cHBseVByb3BlcnR5TGVuZ3RoPCZSZW5kZXJTdHlsZTo6bWFycXVlZUluY3JlbWVudCwgJlJlbmRl
clN0eWxlOjpzZXRNYXJxdWVlSW5jcmVtZW50LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxNYXJxdWVl
SW5jcmVtZW50Pjo6Y3JlYXRlSGFuZGxlcigpOwotICAgICAgICByZXR1cm4gUHJvcGVydHlIYW5k
bGVyKGhhbmRsZXIuaW5oZXJpdEZ1bmN0aW9uKCksIGhhbmRsZXIuaW5pdGlhbEZ1bmN0aW9uKCks
ICZhcHBseVZhbHVlKTsKLSAgICB9Ci19OwotCiBjbGFzcyBBcHBseVByb3BlcnR5TWFycXVlZVJl
cGV0aXRpb24gewogcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGFwcGx5VmFsdWUoQ1NTUHJvcGVy
dHlJRCwgU3R5bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlciwgQ1NTVmFsdWUqIHZhbHVlKQpAQCAt
MjI0NSw3ICsyMTQzLDYgQEAgRGVwcmVjYXRlZFN0eWxlQnVpbGRlcjo6RGVwcmVjYXRlZFN0eWxl
QnVpbGRlcigpCiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0Rm9udFZh
cmlhbnRMaWdhdHVyZXMsIEFwcGx5UHJvcGVydHlGb250VmFyaWFudExpZ2F0dXJlczo6Y3JlYXRl
SGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRIeXBo
ZW5hdGVDaGFyYWN0ZXIsIEFwcGx5UHJvcGVydHlTdHJpbmc8TWFwQXV0b1RvTnVsbCwgJlJlbmRl
clN0eWxlOjpoeXBoZW5hdGlvblN0cmluZywgJlJlbmRlclN0eWxlOjpzZXRIeXBoZW5hdGlvblN0
cmluZywgJlJlbmRlclN0eWxlOjppbml0aWFsSHlwaGVuYXRpb25TdHJpbmc+OjpjcmVhdGVIYW5k
bGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdExpbmVHcmlk
LCBBcHBseVByb3BlcnR5U3RyaW5nPE1hcE5vbmVUb051bGwsICZSZW5kZXJTdHlsZTo6bGluZUdy
aWQsICZSZW5kZXJTdHlsZTo6c2V0TGluZUdyaWQsICZSZW5kZXJTdHlsZTo6aW5pdGlhbExpbmVH
cmlkPjo6Y3JlYXRlSGFuZGxlcigpKTsKLSAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVy
dHlXZWJraXRNYXJxdWVlSW5jcmVtZW50LCBBcHBseVByb3BlcnR5TWFycXVlZUluY3JlbWVudDo6
Y3JlYXRlSGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJr
aXRNYXJxdWVlUmVwZXRpdGlvbiwgQXBwbHlQcm9wZXJ0eU1hcnF1ZWVSZXBldGl0aW9uOjpjcmVh
dGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdE1h
cnF1ZWVTcGVlZCwgQXBwbHlQcm9wZXJ0eU1hcnF1ZWVTcGVlZDo6Y3JlYXRlSGFuZGxlcigpKTsK
ICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRNYXNrQm94SW1hZ2VPdXRz
ZXQsIEFwcGx5UHJvcGVydHlCb3JkZXJJbWFnZU1vZGlmaWVyPEJvcmRlck1hc2ssIE91dHNldD46
OmNyZWF0ZUhhbmRsZXIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVC
dWlsZGVyQ3VzdG9tLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ3VzdG9tLmgK
aW5kZXggNzc3ZWNkMGIzYjQxZGY5N2VmYzc5OWE2MTczMzNjMTU1ZmJlOTcyMS4uY2I0Y2UyODk2
YzgyOTYwNTQxZDg4M2JlZjU1MTRiZDg3NWY3NmM4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlQnVpbGRlckN1c3RvbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZUJ1aWxkZXJDdXN0b20uaApAQCAtNDIsNiArNDIsMzAgQEAgaW5saW5lIHZvaWQgYXBwbHlWYWx1
ZVdlYmtpdEh5cGhlbmF0ZUxpbWl0TGluZXMoU3R5bGVSZXNvbHZlciYgc3R5bGVSZXNvbHZlciwg
Q1MKICAgICBzdHlsZVJlc29sdmVyLnN0eWxlKCktPnNldEh5cGhlbmF0aW9uTGltaXRMaW5lcyhu
dW1iZXIpOwogfQogCitpbmxpbmUgdm9pZCBhcHBseVZhbHVlV2Via2l0TWFycXVlZUluY3JlbWVu
dChTdHlsZVJlc29sdmVyJiBzdHlsZVJlc29sdmVyLCBDU1NWYWx1ZSYgdmFsdWUpCit7CisgICAg
YXV0byYgcHJpbWl0aXZlVmFsdWUgPSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUp
OworICAgIExlbmd0aCBtYXJxdWVlTGVuZ3RoKFVuZGVmaW5lZCk7CisgICAgc3dpdGNoIChwcmlt
aXRpdmVWYWx1ZS5nZXRWYWx1ZUlEKCkpIHsKKyAgICBjYXNlIENTU1ZhbHVlU21hbGw6CisgICAg
ICAgIG1hcnF1ZWVMZW5ndGggPSBMZW5ndGgoMSwgRml4ZWQpOyAvLyAxcHguCisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQ1NTVmFsdWVOb3JtYWw6CisgICAgICAgIG1hcnF1ZWVMZW5ndGggPSBM
ZW5ndGgoNiwgRml4ZWQpOyAvLyA2cHguIFRoZSBXaW5JRSBkZWZhdWx0LgorICAgICAgICBicmVh
azsKKyAgICBjYXNlIENTU1ZhbHVlTGFyZ2U6CisgICAgICAgIG1hcnF1ZWVMZW5ndGggPSBMZW5n
dGgoMzYsIEZpeGVkKTsgLy8gMzZweC4KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NWYWx1
ZUludmFsaWQ6CisgICAgICAgIG1hcnF1ZWVMZW5ndGggPSBwcmltaXRpdmVWYWx1ZS5jb252ZXJ0
VG9MZW5ndGg8Rml4ZWRJbnRlZ2VyQ29udmVyc2lvbiB8IFBlcmNlbnRDb252ZXJzaW9uIHwgQ2Fs
Y3VsYXRlZENvbnZlcnNpb24+KHN0eWxlUmVzb2x2ZXIuc3RhdGUoKS5jc3NUb0xlbmd0aENvbnZl
cnNpb25EYXRhKCkuY29weVdpdGhBZGp1c3RlZFpvb20oMS4wZikpOworICAgICAgICBicmVhazsK
KyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisgICAgaWYgKCFtYXJxdWVlTGVu
Z3RoLmlzVW5kZWZpbmVkKCkpCisgICAgICAgIHN0eWxlUmVzb2x2ZXIuc3R5bGUoKS0+c2V0TWFy
cXVlZUluY3JlbWVudChtYXJxdWVlTGVuZ3RoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgU3R5bGVC
dWlsZGVyRnVuY3Rpb25zCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL3dlYmtpdC1tYXJxdWVlLWluY3JlbWVudC1iYWQtdmFsdWUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvd2Via2l0LW1hcnF1ZWUtaW5jcmVtZW50
LWJhZC12YWx1ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Y3MmM1OWQxZWZiYzJlYzU5NGRl
ZmNmZGZjZDljMTljMTQwODA0MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL3dlYmtpdC1tYXJxdWVlLWluY3JlbWVudC1iYWQtdmFsdWUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTIgQEAKK01ha2VzIHN1cmUgd2UgZG9uJ3QgY3Jhc2ggaW4gdGhlIFN0eWxlQnVpbGRl
ciBpZiBiYWQgdmFsdWVzIGFyZSB1c2VkIGZvciAtd2Via2l0LW1hcnF1ZWUtaW5jcmVtZW50IHBy
b3BlcnR5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBObyBjcmFzaCBm
b3IgMXB4IDJweCB2YWx1ZQorUEFTUyBObyBjcmFzaCBmb3IgdXJsKCJyZXNvdXJjZXMvYm9yZGVy
LWltYWdlLnBuZyIpIHZhbHVlCitQQVNTIE5vIGNyYXNoIGZvciBjb3B5IHZhbHVlCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9jc3Mvd2Via2l0LW1hcnF1ZWUtaW5jcmVtZW50LWJhZC12YWx1ZS5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvd2Via2l0LW1hcnF1ZWUtaW5jcmVtZW50LWJhZC12
YWx1ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiZmE0ZjhkMDgwOGIwMDgwNTljZTdhODA4NzA0NGJjMzI0
ODhhNzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy93ZWJraXQtbWFy
cXVlZS1pbmNyZW1lbnQtYmFkLXZhbHVlLmh0bWwKQEAgLTAsMCArMSwyMSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxtYXJxdWVlIGlkPSJteU1hcnF1ZWUiPjwvbWFycXVlZT4KKworPHNjcmlwdD4KK2Rl
c2NyaXB0aW9uKCJNYWtlcyBzdXJlIHdlIGRvbid0IGNyYXNoIGluIHRoZSBTdHlsZUJ1aWxkZXIg
aWYgYmFkIHZhbHVlcyBhcmUgdXNlZCBmb3IgLXdlYmtpdC1tYXJxdWVlLWluY3JlbWVudCBwcm9w
ZXJ0eS4iKTsKKwordmFyIGJhZFZhbHVlcyA9IFsKKyAgICAiMXB4IDJweCIsIC8vIGEgbGlzdC4K
KyAgICAidXJsKFwicmVzb3VyY2VzL2JvcmRlci1pbWFnZS5wbmdcIikiLCAvLyBhbiBpbWFnZSB1
cmwuCisgICAgImNvcHkiLCAvLyBhIGN1cnNvci4KK107CisKK3ZhciB0ZXN0RWxlbWVudCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJteU1hcnF1ZWUiKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwg
YmFkVmFsdWVzLmxlbmd0aDsgKytpKSB7CisgICAgdGVzdEVsZW1lbnQuc3R5bGVbIi13ZWJraXQt
bWFycXVlZS1pbmNyZW1lbnQiXSA9IGJhZFZhbHVlc1tpXTsKKyAgICBkb2N1bWVudC5kZWZhdWx0
Vmlldy5nZXRDb21wdXRlZFN0eWxlKHRlc3RFbGVtZW50KVsiLXdlYmtpdC1tYXJxdWVlLWluY3Jl
bWVudCJdOworICAgIHRlc3RQYXNzZWQoIk5vIGNyYXNoIGZvciAiICsgYmFkVmFsdWVzW2ldICsg
IiB2YWx1ZSIpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>