<?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>146690</bug_id>
          
          <creation_ts>2015-07-07 12:52:05 -0700</creation_ts>
          <short_desc>Crash when appending an SVG &lt;use&gt; element dynamically which has animated SVG &lt;path&gt; element</short_desc>
          <delta_ts>2015-07-08 16:58:06 -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>SVG</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1107524</commentid>
    <comment_count>0</comment_count>
      <attachid>256314</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-07-07 12:52:05 -0700</bug_when>
    <thetext>Created attachment 256314
crash test case

1. Open the attached test case.
2. Click the &quot;Add&quot; button&quot;

Result: WebKit crashes with the follow call stack:

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.JavaScriptCore      	0x0000000114523aa7 WTFCrash + 39
1   com.apple.WebCore             	0x0000000117b56ad6 WebCore::SVGAnimatedPathSegListPropertyTearOff::animValDidChange() + 70 (SVGAnimatedPathSegListPropertyTearOff.h:90)
2   com.apple.WebCore             	0x0000000117b568d7 void WebCore::SVGAnimatedTypeAnimator::executeAction&lt;WebCore::SVGAnimatedPathSegListPropertyTearOff&gt;(WebCore::SVGAnimatedTypeAnimator::AnimationAction, WTF::Vector&lt;WebCore::SVGElementAnimatedProperties, 0ul, WTF::CrashOnOverflow, 16ul&gt; const&amp;, unsigned int, WebCore::SVGAnimatedPathSegListPropertyTearOff::ContentType*) + 599 (SVGAnimatedTypeAnimator.h:194)
3   com.apple.WebCore             	0x0000000117b54117 void WebCore::SVGAnimatedTypeAnimator::animValDidChangeForType&lt;WebCore::SVGAnimatedPathSegListPropertyTearOff&gt;(WTF::Vector&lt;WebCore::SVGElementAnimatedProperties, 0ul, WTF::CrashOnOverflow, 16ul&gt; const&amp;) + 135 (SVGAnimatedTypeAnimator.h:101)
4   com.apple.WebCore             	0x0000000117b52cd8 WebCore::SVGAnimatedPathAnimator::animValDidChange(WTF::Vector&lt;WebCore::SVGElementAnimatedProperties, 0ul, WTF::CrashOnOverflow, 16ul&gt; const&amp;) + 40 (SVGAnimatedPath.cpp:86)
5   com.apple.WebCore             	0x0000000117b6afbc WebCore::SVGAnimateElementBase::resetAnimatedType() + 1516 (SVGAnimateElementBase.cpp:217)
6   com.apple.WebCore             	0x0000000117c528cf WebCore::SVGSMILElement::progress(WebCore::SMILTime, WebCore::SVGSMILElement*, bool) + 1135 (SVGSMILElement.cpp:1100)
7   com.apple.WebCore             	0x00000001179e7b5b WebCore::SMILTimeContainer::updateAnimations(WebCore::SMILTime, bool) + 779 (SMILTimeContainer.cpp:288)
8   com.apple.WebCore             	0x00000001179e6b9b WebCore::SMILTimeContainer::timerFired() + 187 (SMILTimeContainer.cpp:218)
9   com.apple.WebCore             	0x00000001179eac08 void std::__1::__invoke_void_return_wrapper&lt;void&gt;::__call&lt;std::__1::__bind&lt;void (WebCore::SMILTimeContainer::*&amp;)(), WebCore::SMILTimeContainer*&gt;&amp;&gt;(std::__1::__bind&lt;void (WebCore::SMILTimeContainer::*&amp;)(), WebCore::SMILTimeContainer*&gt;&amp;&amp;&amp;) + 248 (__functional_base:441)
10  com.apple.WebCore             	0x00000001179eaadc std::__1::__function::__func&lt;std::__1::__bind&lt;void (WebCore::SMILTimeContainer::*&amp;)(), WebCore::SMILTimeContainer*&gt;, std::__1::allocator&lt;std::__1::__bind&lt;void (WebCore::SMILTimeContainer::*&amp;)(), WebCore::SMILTimeContainer*&gt; &gt;, void ()&gt;::operator()() + 44 (functional:1407)
11  com.apple.WebCore             	0x0000000115ce0ada std::__1::function&lt;void ()&gt;::operator()() const + 26 (functional:1793)
12  com.apple.WebCore             	0x0000000115ce09fc WebCore::Timer::fired() + 28 (Timer.h:134)
13  com.apple.WebCore             	0x0000000117d237ea WebCore::ThreadTimers::sharedTimerFiredInternal() + 394 (ThreadTimers.cpp:135)
14  com.apple.WebCore             	0x0000000117d234a9 WebCore::ThreadTimers::sharedTimerFired() + 25 (ThreadTimers.cpp:108)
15  com.apple.WebCore             	0x00000001179d2172 WebCore::timerFired(__CFRunLoopTimer*, void*) + 34 (SharedTimerCF.cpp:82)
16  com.apple.CoreFoundation      	0x00007fff8737e7c4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20
17  com.apple.CoreFoundation      	0x00007fff8737e453 __CFRunLoopDoTimer + 1075
18  com.apple.CoreFoundation      	0x00007fff873f9d9a __CFRunLoopDoTimers + 298
19  com.apple.CoreFoundation      	0x00007fff87339a71 __CFRunLoopRun + 1841
20  com.apple.CoreFoundation      	0x00007fff873390d8 CFRunLoopRunSpecific + 296
21  com.apple.HIToolbox           	0x00007fff8bb60ce9 RunCurrentEventLoopInMode + 235
22  com.apple.HIToolbox           	0x00007fff8bb60a7f ReceiveNextEventCommon + 432
23  com.apple.HIToolbox           	0x00007fff8bb608bf _BlockUntilNextEventMatchingListInModeWithFilter + 71
24  com.apple.AppKit              	0x00007fff90c66732 _DPSNextEvent + 927
25  com.apple.AppKit              	0x00007fff91033f74 -[NSApplication _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 324
26  com.apple.AppKit              	0x00007fff90c5c6c2 -[NSApplication run] + 682
27  com.apple.AppKit              	0x00007fff90bdec4f NSApplicationMain + 1176
28  libxpc.dylib                  	0x00007fff872b619c _xpc_objc_main + 793
29  libxpc.dylib                  	0x00007fff872b78eb xpc_main + 494
30  com.apple.WebKit.WebContent.Development	0x000000010a224197 main + 39
31  libdyld.dylib                 	0x00007fff907835ad start + 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107525</commentid>
    <comment_count>1</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-07-07 12:52:56 -0700</bug_when>
    <thetext>&lt;rdar://problem/20790376&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107531</commentid>
    <comment_count>2</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-07-07 13:02:30 -0700</bug_when>
    <thetext>I was wring about the above call stack. It is just an assertion call stack. But if we comment all the assertion in SVGAnimatedListPropertyTearOff::animValDidChange() and VGAnimatedPathSegListPropertyTearOff::animValDidChange() we get the following crashing call stack which we should hit in a release build:

#0	0x00000001072a2360 in WebCore::SVGListProperty&lt;WebCore::SVGPathSegList&gt;::values() at /Volumes/Data/WebKit/OpenSource/Source/WebCore/svg/properties/SVGListProperty.h:434
#1	0x00000001072a43bd in WebCore::SVGAnimatedListPropertyTearOff&lt;WebCore::SVGPathSegList&gt;::synchronizeWrappersIfNeeded() at /Volumes/Data/WebKit/OpenSource/Source/WebCore/svg/properties/SVGAnimatedListPropertyTearOff.h:134
#2	0x00000001072a4715 in WebCore::SVGAnimatedListPropertyTearOff&lt;WebCore::SVGPathSegList&gt;::animValDidChange() at /Volumes/Data/WebKit/OpenSource/Source/WebCore/svg/properties/SVGAnimatedListPropertyTearOff.h:153
#3	0x00000001072a40c6 in WebCore::SVGAnimatedPathSegListPropertyTearOff::animValDidChange() at /Volumes/Data/WebKit/OpenSource/Source/WebCore/svg/properties/SVGAnimatedPathSegListPropertyTearOff.h:101
#4	0x00000001072a3e87 in void WebCore::SVGAnimatedTypeAnimator::executeAction&lt;WebCore::SVGAnimatedPathSegListPropertyTearOff&gt;(WebCore::SVGAnimatedTypeAnimator::AnimationAction, WTF::Vector&lt;WebCore::SVGElementAnimatedProperties, 0ul, WTF::CrashOnOverflow, 16ul&gt; const&amp;, unsigned int, WebCore::SVGAnimatedPathSegListPropertyTearOff::ContentType*) at /Volumes/Data/WebKit/OpenSource/Source/WebCore/svg/SVGAnimatedTypeAnimator.h:214
#5	0x00000001072a16c7 in void WebCore::SVGAnimatedTypeAnimator::animValDidChangeForType&lt;WebCore::SVGAnimatedPathSegListPropertyTearOff&gt;(WTF::Vector&lt;WebCore::SVGElementAnimatedProperties, 0ul, WTF::CrashOnOverflow, 16ul&gt; const&amp;) at /Volumes/Data/WebKit/OpenSource/Source/WebCore/svg/SVGAnimatedTypeAnimator.h:100
#6	0x00000001072a0288 in WebCore::SVGAnimatedPathAnimator::animValDidChange(WTF::Vector&lt;WebCore::SVGElementAnimatedProperties, 0ul, WTF::CrashOnOverflow, 16ul&gt; const&amp;) at /Volumes/Data/WebKit/OpenSource/Source/WebCore/svg/SVGAnimatedPath.cpp:85
#7	0x00000001072b828c in WebCore::SVGAnimateElementBase::resetAnimatedType() at /Volumes/Data/WebKit/OpenSource/Source/WebCore/svg/SVGAnimateElementBase.cpp:215
#8	0x000000010739fb9f in WebCore::SVGSMILElement::progress(WebCore::SMILTime, WebCore::SVGSMILElement*, bool) at /Volumes/Data/WebKit/OpenSource/Source/WebCore/svg/animation/SVGSMILElement.cpp:1098
#9	0x00000001071352cb in WebCore::SMILTimeContainer::updateAnimations(WebCore::SMILTime, bool) at /Volumes/Data/WebKit/OpenSource/Source/WebCore/svg/animation/SMILTimeContainer.cpp:288
#10	0x000000010713430b in WebCore::SMILTimeContainer::timerFired() at /Volumes/Data/WebKit/OpenSource/Source/WebCore/svg/animation/SMILTimeContainer.cpp:217
#11	0x0000000107138378 in decltype(*(std::__1::forward&lt;WebCore::SMILTimeContainer*&amp;&gt;(fp0)).*fp(std::__1::forward&lt;&gt;(fp1))) std::__1::__invoke&lt;void (WebCore::SMILTimeContainer::*&amp;)(), WebCore::SMILTimeContainer*&amp;, void&gt;(void (WebCore::SMILTimeContainer::*&amp;&amp;&amp;)(), WebCore::SMILTimeContainer*&amp;&amp;&amp;) [inlined] at /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.11.xctoolchain/usr/bin/../include/c++/v1/__functional_base:382
#12	0x00000001071382f2 in std::__1::__bind_return&lt;void (WebCore::SMILTimeContainer::*)(), std::__1::tuple&lt;WebCore::SMILTimeContainer*&gt;, std::__1::tuple&lt;&gt;, _is_valid_bind_return&lt;void (WebCore::SMILTimeContainer::*)(), std::__1::tuple&lt;WebCore::SMILTimeContainer*&gt;, std::__1::tuple&lt;&gt; &gt;::value&gt;::type std::__1::__apply_functor&lt;void (WebCore::SMILTimeContainer::*)(), std::__1::tuple&lt;WebCore::SMILTimeContainer*&gt;, 0ul, std::__1::tuple&lt;&gt; &gt;(void (WebCore::SMILTimeContainer::*&amp;)(), std::__1::tuple&lt;WebCore::SMILTimeContainer*&gt;&amp;, std::__1::__tuple_indices&lt;0ul&gt;, std::__1::tuple&lt;&gt;&amp;&amp;) [inlined] at /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.11.xctoolchain/usr/bin/../include/c++/v1/functional:2060
#13	0x00000001071382ca in std::__1::__bind_return&lt;void (WebCore::SMILTimeContainer::*)(), std::__1::tuple&lt;WebCore::SMILTimeContainer*&gt;, std::__1::tuple&lt;&gt;, _is_valid_bind_return&lt;void (WebCore::SMILTimeContainer::*)(), std::__1::tuple&lt;WebCore::SMILTimeContainer*&gt;, std::__1::tuple&lt;&gt; &gt;::value&gt;::type std::__1::__bind&lt;void (WebCore::SMILTimeContainer::*&amp;)(), WebCore::SMILTimeContainer*&gt;::operator()&lt;&gt;() [inlined] at /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.11.xctoolchain/usr/bin/../include/c++/v1/functional:2123
#14	0x00000001071382ab in decltype(std::__1::forward&lt;std::__1::__bind&lt;void (WebCore::SMILTimeContainer::*&amp;)(), WebCore::SMILTimeContainer*&gt;&amp;&gt;(fp)(std::__1::forward&lt;&gt;(fp0))) std::__1::__invoke&lt;std::__1::__bind&lt;void (WebCore::SMILTimeContainer::*&amp;)(), WebCore::SMILTimeContainer*&gt;&amp;&gt;(std::__1::__bind&lt;void (WebCore::SMILTimeContainer::*&amp;)(), WebCore::SMILTimeContainer*&gt;&amp;&amp;&amp;) [inlined] at /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.11.xctoolchain/usr/bin/../include/c++/v1/__functional_base:415
#15	0x00000001071382a0 in void std::__1::__invoke_void_return_wrapper&lt;void&gt;::__call&lt;std::__1::__bind&lt;void (WebCore::SMILTimeContainer::*&amp;)(), WebCore::SMILTimeContainer*&gt;&amp;&gt;(std::__1::__bind&lt;void (WebCore::SMILTimeContainer::*&amp;)(), WebCore::SMILTimeContainer*&gt;&amp;&amp;&amp;) at /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.11.xctoolchain/usr/bin/../include/c++/v1/__functional_base:440
#16	0x000000010713824c in std::__1::__function::__func&lt;std::__1::__bind&lt;void (WebCore::SMILTimeContainer::*&amp;)(), WebCore::SMILTimeContainer*&gt;, std::__1::allocator&lt;std::__1::__bind&lt;void (WebCore::SMILTimeContainer::*&amp;)(), WebCore::SMILTimeContainer*&gt; &gt;, void ()&gt;::operator()() at /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.11.xctoolchain/usr/bin/../include/c++/v1/functional:1407
#17	0x000000010542e24a in std::__1::function&lt;void ()&gt;::operator()() const at /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.11.xctoolchain/usr/bin/../include/c++/v1/functional:1793
#18	0x000000010542e16c in WebCore::Timer::fired() at /Volumes/Data/WebKit/OpenSource/Source/WebCore/platform/Timer.h:133
#19	0x0000000107470aba in WebCore::ThreadTimers::sharedTimerFiredInternal() at /Volumes/Data/WebKit/OpenSource/Source/WebCore/platform/ThreadTimers.cpp:132
#20	0x0000000107470779 in WebCore::ThreadTimers::sharedTimerFired() at /Volumes/Data/WebKit/OpenSource/Source/WebCore/platform/ThreadTimers.cpp:107
#21	0x000000010711f8e2 in WebCore::timerFired(__CFRunLoopTimer*, void*) at /Volumes/Data/WebKit/OpenSource/Source/WebCore/platform/cf/SharedTimerCF.cpp:82</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107638</commentid>
    <comment_count>3</comment_count>
      <attachid>256343</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-07-07 18:35:09 -0700</bug_when>
    <thetext>Created attachment 256343
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107771</commentid>
    <comment_count>4</comment_count>
      <attachid>256380</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-07-08 09:01:29 -0700</bug_when>
    <thetext>Created attachment 256380
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107772</commentid>
    <comment_count>5</comment_count>
      <attachid>256381</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-07-08 09:06:50 -0700</bug_when>
    <thetext>Created attachment 256381
Another test case

Other repro steps:

1. Open &quot;Another test case&quot;.

Result: WebKit crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107810</commentid>
    <comment_count>6</comment_count>
      <attachid>256385</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-07-08 11:16:28 -0700</bug_when>
    <thetext>Created attachment 256385
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107915</commentid>
    <comment_count>7</comment_count>
      <attachid>256385</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-07-08 15:55:45 -0700</bug_when>
    <thetext>Comment on attachment 256385
Patch

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

&gt; Source/WebCore/ChangeLog:30
&gt; +        The fix is to make SVGAnimatedPathAnimator::resetAnimValToBaseVal() ensures

Typo: ensure</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107917</commentid>
    <comment_count>8</comment_count>
      <attachid>256385</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-07-08 15:56:33 -0700</bug_when>
    <thetext>Comment on attachment 256385
Patch

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

&gt; LayoutTests/svg/animations/insert-animate-use-path-while-animation.svg:17
&gt; +    // wait until the only instance of &apos;animatedRect&apos; starts animation

Minor nit: Start with an uppercase letter.

&gt; LayoutTests/svg/animations/insert-animate-use-path-while-animation.svg:30
&gt; +        // wait until the next animation cycle starts to make sure

Minor nit: Start with an uppercase letter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107926</commentid>
    <comment_count>9</comment_count>
      <attachid>256416</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-07-08 16:10:13 -0700</bug_when>
    <thetext>Created attachment 256416
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107973</commentid>
    <comment_count>10</comment_count>
      <attachid>256416</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-08 16:58:03 -0700</bug_when>
    <thetext>Comment on attachment 256416
Patch

Clearing flags on attachment: 256416

Committed r186541: &lt;http://trac.webkit.org/changeset/186541&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107974</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-08 16:58:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>256314</attachid>
            <date>2015-07-07 12:52:05 -0700</date>
            <delta_ts>2015-07-07 12:52:05 -0700</delta_ts>
            <desc>crash test case</desc>
            <filename>test142.svg</filename>
            <type>image/svg+xml</type>
            <size>1266</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">PHN2ZyB3aWR0aD0iNTAwIgogICAgaGVpZ2h0PSIzNTAiCiAgICB2ZXJzaW9uPSIxLjEiCiAgICB4
bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgICB4bWxuczp4bGluaz0iaHR0cDov
L3d3dy53My5vcmcvMTk5OS94bGluayIKICAgIG9ubG9hZD0iSW5pdChldnQpIj4KICA8c2NyaXB0
PgogICAgdmFyIFNWR0RvY3VtZW50ID0gbnVsbDsKICAgIHZhciBTVkdSb290ID0gbnVsbDsKICAg
IHZhciBzdmducyA9ICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc7CiAgICB2YXIgeGxpbmtu
cyA9ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJzsKIAogICAgZnVuY3Rpb24gSW5pdChl
dnQpCiAgICB7CiAgICAgIFNWR0RvY3VtZW50ID0gZXZ0LnRhcmdldC5vd25lckRvY3VtZW50Owog
ICAgICBTVkdSb290ID0gU1ZHRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OwogICAgfQogCiAgICBm
dW5jdGlvbiBhZGRUcmlhbmdsZSgpCiAgICB7CiAgICAgIHZhciBzaGFwZSA9IFNWR0RvY3VtZW50
LmNyZWF0ZUVsZW1lbnROUyhzdmducywgInVzZSIpOwogICAgICBzaGFwZS5zZXRBdHRyaWJ1dGVO
Uyh4bGlua25zLCAnaHJlZicsICcjdHJpYW5nbGUnKTsKICAgICAgc2hhcGUuc2V0QXR0cmlidXRl
TlMobnVsbCwgJ3RyYW5zZm9ybScsICd0cmFuc2xhdGUoMjUsIDIwMCknKTsKICAgICAgU1ZHUm9v
dC5hcHBlbmRDaGlsZChzaGFwZSk7CiAgICB9CiAgPC9zY3JpcHQ+CiAgPGRlZnM+CiAgICA8cGF0
aCBpZD0idHJpYW5nbGUiIGZpbGw9InNhbG1vbiIgZD0iTTYwIDEwIEwxMCAxMTAgTDExMCAxMTAg
WiI+CiAgICAgIDxhbmltYXRlCiAgICAgICAgICBhdHRyaWJ1dGVUeXBlPSJYTUwiCiAgICAgICAg
ICBhdHRyaWJ1dGVOYW1lPSJkIgogICAgICAgICAgZnJvbT0iTTYwIDEwIEwxMCAxMTAgTDExMCAx
MTAgWiIKICAgICAgICAgIHRvPSJNMTAgMTAgTDExMCAxMCBMNjAgMTEwIFoiCiAgICAgICAgICBk
dXI9IjFzIgogICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiLz4KICAgIDwvcGF0aD4K
ICA8L2RlZnM+CiAgPGEgaWQ9J3BsYXlHcm91cCcgb25jbGljaz0nYWRkVHJpYW5nbGUoKSc+CiAg
ICA8cmVjdCB4PSIyMCIgeT0iMTAiIHJ4PSI1IiByeT0iNSIgd2lkdGg9IjUyIiBoZWlnaHQ9IjI1
IiBmaWxsPSJsaW1lIi8+CiAgICA8dGV4dCB4PSIyNSIgeT0iMjUiPkFkZDwvdGV4dD4KICA8L2E+
CiAgPHVzZSB4bGluazpocmVmPSIjdHJpYW5nbGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI1LCA1
MCkiLz4KPC9zdmc+
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256343</attachid>
            <date>2015-07-07 18:35:09 -0700</date>
            <delta_ts>2015-07-08 09:01:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146690-20150707183410.patch</filename>
            <type>text/plain</type>
            <size>9550</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NjQ4NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ2IEBACisyMDE1LTA3LTA3ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3Jhc2ggd2hl
biBhcHBlbmRpbmcgYW4gU1ZHIDx1c2U+IGVsZW1lbnQgZHluYW1pY2FsbHkgd2hpY2ggaGFzIGFu
aW1hdGVkIFNWRyA8cGF0aD4gZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NjkwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMDc5MDM3
Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
OiBzdmcvYW5pbWF0aW9ucy9pbnNlcnQtYW5pbWF0ZS11c2UtcGF0aC13aGlsZS1hbmltYXRpb24u
c3ZnCisKKyAgICAgICAgVGhlIGNyYXNoaW5nIGNhbGwgc3RhY2sgc2hvd3MgdGhhdCBtX2FuaW1W
YWwgb2YgU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1BhdGhTZWdMaXN0PgorICAg
ICAgICBpcyBudWxsIHdoZW4gdHJ5aW5nIHRvIGFjY2VzcyBpdCBpbiBzeW5jaHJvbml6ZVdyYXBw
ZXJzSWZOZWVkZWQoKS4gVGhpcworICAgICAgICBoYXBwZW5zIGJlY2F1c2UgYW5pbWF0aW9uU3Rh
cnRlZCgpIHdhcyBub3QgY2FsbGVkIGZvciB0aGlzIGFuaW1hdGVkVHlwZS4KKyAgICAgICAgCisg
ICAgICAgIFRoZSBjcmFzaCBoYXBwZW5zIGJlY2F1c2UgU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlOjpy
ZXNldEFuaW1hdGVkVHlwZSgpCisgICAgICAgIGNhbGxzIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9y
OjpzdGFydEFuaW1WYWxBbmltYXRpb24oKSBhdCB0aGUgYmVnaW5uaW5nCisgICAgICAgIG9mIHRo
ZSBhbmltYXRpb24uIEZvciB0aGUgdGFyZ2V0IGVsZW1lbnQgYW5kIGFsbCBpdHMgaW5zdGFuY2Vz
LCB0aGlzCisgICAgICAgIGZ1bmN0aW9uIGNhbGxzIFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9w
ZXJ0eVRlYXJPZmY6OmFuaW1hdGlvblN0YXJ0ZWQoKQorICAgICAgICB3aGljaCBjYWxscyBTVkdB
bmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHUGF0aFNlZ0xpc3Q+OjphbmltYXRpb25TdGFy
dGVkKCkuCisgICAgICAgIFRoaXMgbGFzdCBmdW5jdGlvbiBhbGxvY2F0ZXMgdGhlIG1lbWJlciBt
X2FuaW1WYWwgd2hlbiBjYWxsaW5nIAorICAgICAgICBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRl
YXJPZmY8U1ZHUGF0aFNlZ0xpc3Q+OjphbmltVmFsKCkuIAorICAgICAgICAKKyAgICAgICAgV2hl
biBhZGRpbmcgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIHNhbWUgYW5pbWF0aW5nIHRhcmdldCBlbGVt
ZW50LCAKKyAgICAgICAgU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlOjpyZXNldEFuaW1hdGVkVHlwZSgp
IGp1c3Qga2VlcCBjYWxsaW5nCisgICAgICAgIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjphbmlt
VmFsRGlkQ2hhbmdlKCkgZm9yIGFsbCB0aGUgaW5zdGFuY2VzIG9mCisgICAgICAgIHRhcmdldEVs
ZW1lbnQgd2l0aG91dCBlbnN1cmluZyB0aGF0IGFsbCBvZiB0aGVtIGhhdmUgc3RhcnRlZCB0aGVp
cgorICAgICAgICBhbmltYXRpb25zLgorICAgICAgICAKKyAgICAgICAgVGhlIGZpeCBpcyB0byBl
bnN1cmUgdGhhdCBhbmltYXRpb25TdGFydGVkKCkgaXMgY2FsbGVkIGZvciB0aGUgdGFyZ2V0Cisg
ICAgICAgIGVsZW1lbnQgYW5kIGFsbCBpdHMgaW5zdGFuY2VzIGluIFNWR0FuaW1hdGVkUGF0aEFu
aW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoKS4KKworICAgICAgICAqIHN2Zy9TVkdBbmlt
YXRlZFBhdGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6
OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbik6IE1vdmUgcmVzZXR0aW5nCisgICAgICAgIHRoZSBhbmlt
YXRpb24gdmFsdWUgYW5kIHN0YXJ0aW5nIHRoZSBhbmltYXRlZFR5cGVzIGNvZGUgdG8gYSBuZXcg
b3ZlcnJpZGluZworICAgICAgICBmdW5jdGlvbiBjYWxsZWQgcmVzZXRBbmltVmFsVG9CYXNlVmFs
KCkuCisgICAgICAgIAorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6
OnJlc2V0QW5pbVZhbFRvQmFzZVZhbCk6IE1ha2UgdGhpcyBmdW5jdGlvbgorICAgICAgICBjYWxs
cyB0aGUgbmV3IG92ZXJyaWRpbmcgZnVuY3Rpb24gc2luY2Ugd2hhdCB3ZSBuZWVkIHRvIGRvIGlz
CisgICAgICAgIDEuIGNhbGxpbmcgYnVpbGRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TVkdQYXRoU2Vn
TGlzdCgpIGFzIGJlZm9yZSAKKyAgICAgICAgMi4gRW5zdXJpbmcgYWxsIHRoZSBhbmltYXRlZFR5
cGVzIGFyZSByZWFsbHkgYW5pbWF0aW5nLgorICAgICAgICAKKyAgICAgICAgKiBzdmcvU1ZHQW5p
bWF0ZWRQYXRoLmg6CisKIDIwMTUtMDctMDYgIE1hdHQgUmFqY2EgIDxtcmFqY2FAYXBwbGUuY29t
PgogCiAgICAgICAgIE1lZGlhIFNlc3Npb246IHJlbW92ZSBzZWVrIGZvcndhcmQvYmFja3dhcmQg
YXR0cmlidXRlcwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHAJKHJl
dmlzaW9uIDE4NjM3NikKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBhdGguY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00MSwyMyArNDEsMTAgQEAgc3RkOjp1bmlxdWVfcHRyPFNWR0Fu
aW1hdGVkVHlwZT4gU1ZHQW5pbQogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZH
QW5pbWF0ZWRQYXRoQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVt
ZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7CiAgICAgQVNTRVJUKGFu
aW1hdGVkVHlwZXMuc2l6ZSgpID49IDEpOwotICAgIFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9w
ZXJ0eVRlYXJPZmYqIHByb3BlcnR5ID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8
U1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZj4oYW5pbWF0ZWRUeXBlc1swXS5w
cm9wZXJ0aWVzWzBdLmdldCgpKTsKLSAgICBjb25zdCBTVkdQYXRoU2VnTGlzdCYgYmFzZVZhbHVl
ID0gcHJvcGVydHktPmN1cnJlbnRCYXNlVmFsdWUoKTsKIAogICAgIC8vIEJ1aWxkIGluaXRpYWwg
cGF0aCBieXRlIHN0cmVhbS4KICAgICBhdXRvIGJ5dGVTdHJlYW0gPSBzdGQ6Om1ha2VfdW5pcXVl
PFNWR1BhdGhCeXRlU3RyZWFtPigpOwotICAgIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU1ZH
UGF0aFNlZ0xpc3QoYmFzZVZhbHVlLCBieXRlU3RyZWFtLmdldCgpLCBVbmFsdGVyZWRQYXJzaW5n
KTsKLQotICAgIFZlY3RvcjxSZWZQdHI8U1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVh
ck9mZj4+IHJlc3VsdDsKLQotICAgIGZvciAoYXV0byYgdHlwZSA6IGFuaW1hdGVkVHlwZXMpCi0g
ICAgICAgIHJlc3VsdC5hcHBlbmQoY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8U1ZH
QW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZj4odHlwZS5wcm9wZXJ0aWVzWzBdLmdl
dCgpKSk7Ci0KLSAgICBTVkdFbGVtZW50OjpJbnN0YW5jZVVwZGF0ZUJsb2NrZXIgYmxvY2tlcigq
cHJvcGVydHktPmNvbnRleHRFbGVtZW50KCkpOwotCi0gICAgZm9yIChhdXRvJiBzZWdtZW50IDog
cmVzdWx0KQotICAgICAgICBzZWdtZW50LT5hbmltYXRpb25TdGFydGVkKGJ5dGVTdHJlYW0uZ2V0
KCksICZiYXNlVmFsdWUpOwotCisgICAgcmVzZXRBbmltVmFsVG9CYXNlVmFsKGFuaW1hdGVkVHlw
ZXMsIGJ5dGVTdHJlYW0uZ2V0KCkpOwogICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0
ZVBhdGgoV1RGOjptb3ZlKGJ5dGVTdHJlYW0pKTsKIH0KIApAQCAtNjYsMTMgKzUzLDM1IEBAIHZv
aWQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OnN0b3BBbmltVmEKICAgICBzdG9wQW5pbVZhbEFu
aW1hdGlvbkZvclR5cGU8U1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZj4oYW5p
bWF0ZWRUeXBlcyk7CiB9CiAKK3ZvaWQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OnJlc2V0QW5p
bVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1h
dGVkVHlwZXMsIFNWR1BhdGhCeXRlU3RyZWFtKiBieXRlU3RyZWFtKQoreworICAgIFNWR0FuaW1h
dGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYqIHByb3BlcnR5ID0gY2FzdEFuaW1hdGVkUHJv
cGVydHlUb0FjdHVhbFR5cGU8U1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZj4o
YW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzWzBdLmdldCgpKTsKKyAgICBjb25zdCBTVkdQYXRo
U2VnTGlzdCYgYmFzZVZhbHVlID0gcHJvcGVydHktPmN1cnJlbnRCYXNlVmFsdWUoKTsKKworICAg
IGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZ0xpc3QoYmFzZVZhbHVlLCBieXRl
U3RyZWFtLCBVbmFsdGVyZWRQYXJzaW5nKTsKKworICAgIFZlY3RvcjxSZWZQdHI8U1ZHQW5pbWF0
ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZj4+IHJlc3VsdDsKKworICAgIGZvciAoYXV0byYg
dHlwZSA6IGFuaW1hdGVkVHlwZXMpIHsKKyAgICAgICAgYXV0byogc2VnbWVudCA9IGNhc3RBbmlt
YXRlZFByb3BlcnR5VG9BY3R1YWxUeXBlPFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRl
YXJPZmY+KHR5cGUucHJvcGVydGllc1swXS5nZXQoKSk7CisgICAgICAgIGlmICghc2VnbWVudC0+
aXNBbmltYXRpbmcoKSkKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc2VnbWVudCk7CisgICAg
fQorCisgICAgaWYgKCFyZXN1bHQuaXNFbXB0eSgpKSB7CisgICAgICAgIFNWR0VsZW1lbnQ6Oklu
c3RhbmNlVXBkYXRlQmxvY2tlciBibG9ja2VyKCpwcm9wZXJ0eS0+Y29udGV4dEVsZW1lbnQoKSk7
CisKKyAgICAgICAgZm9yIChhdXRvJiBzZWdtZW50IDogcmVzdWx0KQorICAgICAgICAgICAgc2Vn
bWVudC0+YW5pbWF0aW9uU3RhcnRlZChieXRlU3RyZWFtLCAmYmFzZVZhbHVlKTsKKyAgICB9Cit9
CisKIHZvaWQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZhbChj
b25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNWR0Fu
aW1hdGVkVHlwZSogdHlwZSkKIHsKICAgICBBU1NFUlQoYW5pbWF0ZWRUeXBlcy5zaXplKCkgPj0g
MSk7CiAgICAgQVNTRVJUKHR5cGUpOwogICAgIEFTU0VSVCh0eXBlLT50eXBlKCkgPT0gbV90eXBl
KTsKLSAgICBjb25zdCBTVkdQYXRoU2VnTGlzdCYgYmFzZVZhbHVlID0gY2FzdEFuaW1hdGVkUHJv
cGVydHlUb0FjdHVhbFR5cGU8U1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZj4o
YW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzWzBdLmdldCgpKS0+Y3VycmVudEJhc2VWYWx1ZSgp
OwotICAgIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZ0xpc3QoYmFzZVZhbHVl
LCB0eXBlLT5wYXRoKCksIFVuYWx0ZXJlZFBhcnNpbmcpOworICAgIHJlc2V0QW5pbVZhbFRvQmFz
ZVZhbChhbmltYXRlZFR5cGVzLCB0eXBlLT5wYXRoKCkpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVk
UGF0aEFuaW1hdG9yOjphbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQ
cm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWRQYXRoLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVkUGF0aC5oCShyZXZpc2lvbiAxODYzNzYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZWRQYXRoLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDkgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBhZGRBbmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1h
dGVkVHlwZSopIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBjYWxjdWxhdGVBbmltYXRlZFZh
bHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5
cGUqLCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUq
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGZsb2F0IGNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0
cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5nJiB0b1N0cmluZykgb3ZlcnJpZGU7CisKK3By
aXZhdGU6CisgICAgdm9pZCByZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFu
aW1hdGVkUHJvcGVydHlMaXN0JiwgU1ZHUGF0aEJ5dGVTdHJlYW0qKTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NjQ4NSkKKysrIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA3LTA3ICBT
YWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3Jh
c2ggd2hlbiBhcHBlbmRpbmcgYW4gU1ZHIDx1c2U+IGVsZW1lbnQgZHluYW1pY2FsbHkgd2hpY2gg
aGFzIGFuaW1hdGVkIFNWRyA8cGF0aD4gZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NjkwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8y
MDc5MDM3Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBXaGVuIGFkZGluZyBkeW5hbWljYWxseSBhIG5ldyA8dXNlPiBlbGVtZW50IHdoaWNoIHJlZmVy
ZW5jZXMgYW4gYW5pbWF0ZWQKKyAgICAgICAgU1ZHIHBhdGggYWZ0ZXIgdGhlIGFuaW1hdGlvbiBz
dGFydHMsIGVuc3VyZSB0aGF0IFdlYktpdCBpcyBub3QgY3Jhc2hpbmcuCisKKyAgICAgICAgKiBz
dmcvYW5pbWF0aW9ucy9pbnNlcnQtYW5pbWF0ZS11c2UtcGF0aC13aGlsZS1hbmltYXRpb24tZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9pbnNlcnQtYW5pbWF0
ZS11c2UtcGF0aC13aGlsZS1hbmltYXRpb24uc3ZnOiBBZGRlZC4KKwogMjAxNS0wNy0wNyAgQnJl
bnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXSBVbnJldmll
d2VkIHRlc3Qgc2tpcCBhZnRlciByMTg2NDc2LgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1h
dGlvbnMvaW5zZXJ0LWFuaW1hdGUtdXNlLXBhdGgtd2hpbGUtYW5pbWF0aW9uLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9pbnNlcnQtYW5pbWF0
ZS11c2UtcGF0aC13aGlsZS1hbmltYXRpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvaW5zZXJ0LWFuaW1hdGUtdXNlLXBhdGgtd2hpbGUt
YW5pbWF0aW9uLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIgQEAKK1Bh
c3NlZAorCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9pbnNlcnQtYW5pbWF0ZS11
c2UtcGF0aC13aGlsZS1hbmltYXRpb24uc3ZnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2
Zy9hbmltYXRpb25zL2luc2VydC1hbmltYXRlLXVzZS1wYXRoLXdoaWxlLWFuaW1hdGlvbi5zdmcJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9pbnNlcnQtYW5pbWF0
ZS11c2UtcGF0aC13aGlsZS1hbmltYXRpb24uc3ZnCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MzggQEAKKzxzdmcgd2lkdGg9IjYwMCIgaGVpZ2h0PSI0MDAiIHZlcnNpb249IjEuMSIgeG1sbnM9
Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5v
cmcvMTk5OS94bGluayI+CisgIDxkZWZzPgorICAgIDxwYXRoIGlkPSJhbmltYXRlZFJlY3QiIGZp
bGw9ImdyZWVuIiBkPSJNMCAwIEwwIDUwIEwxMDAgNTAgTDEwMCAwIFoiPgorICAgICAgPGFuaW1h
dGUKKyAgICAgICAgICBhdHRyaWJ1dGVUeXBlPSJYTUwiCisgICAgICAgICAgYXR0cmlidXRlTmFt
ZT0iZCIKKyAgICAgICAgICBmcm9tPSJNMCAwIEwwIDUwIEwxMDAgNTAgTDEwMCAwIFoiCisgICAg
ICAgICAgdG89Ik0yNSAtMjUgTDI1IDc1IEw3NSA3NSBMNzUgLTI1IFoiCisgICAgICAgICAgZHVy
PSIxcyIKKyAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgorICAgIDwvcGF0aD4K
KyAgPC9kZWZzPgorICA8dXNlIHhsaW5rOmhyZWY9IiNhbmltYXRlZFJlY3QiIHRyYW5zZm9ybT0i
dHJhbnNsYXRlKDIwLCA2MCkiLz4KKyAgPHRleHQgeD0iMjAiIHk9IjE2MCI+UGFzc2VkPC90ZXh0
PgorICA8c2NyaXB0PjwhW0NEQVRBWworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKyAgICB9CisKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKKyAgICAgIHZhciBz
dmducyA9ICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc7CisgICAgICB2YXIgeGxpbmtucyA9
ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJzsKKworICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCA0OyBpKyspIHsKKyAgICAgICAgdmFyIHNoYXBlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dE5TKHN2Z25zLCAidXNlIik7CisgICAgICAgIHNoYXBlLnNldEF0dHJpYnV0ZU5TKHhsaW5rbnMs
ICdocmVmJywgJyNhbmltYXRlZFJlY3QnKTsKKyAgICAgICAgc2hhcGUuc2V0QXR0cmlidXRlTlMo
bnVsbCwgJ3RyYW5zZm9ybScsICd0cmFuc2xhdGUoJyArICgyMCArIDEwMCAqICggaSArIDEpKSAr
ICcsIDYwKScpOworICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQo
c2hhcGUpOworICAgICAgfQorICAgICAgCisgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICB9LCA1MCk7CisKKyAgICB9
LCA1MCk7CisgIF1dPjwvc2NyaXB0PgorPC9zdmc+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256380</attachid>
            <date>2015-07-08 09:01:29 -0700</date>
            <delta_ts>2015-07-08 11:16:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146690-20150708090029.patch</filename>
            <type>text/plain</type>
            <size>9602</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NjQ4NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ2IEBACisyMDE1LTA3LTA3ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3Jhc2ggd2hl
biBhcHBlbmRpbmcgYW4gU1ZHIDx1c2U+IGVsZW1lbnQgZHluYW1pY2FsbHkgd2hpY2ggaGFzIGFu
aW1hdGVkIFNWRyA8cGF0aD4gZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NjkwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMDc5MDM3
Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
OiBzdmcvYW5pbWF0aW9ucy9pbnNlcnQtYW5pbWF0ZS11c2UtcGF0aC13aGlsZS1hbmltYXRpb24u
c3ZnCisKKyAgICAgICAgVGhlIGNyYXNoaW5nIGNhbGwgc3RhY2sgc2hvd3MgdGhhdAorICAgICAg
ICBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHUGF0aFNlZ0xpc3Q+OjptX2FuaW1W
YWwgaXMgbnVsbCB3aGVuCisgICAgICAgIHRyeWluZyB0byBhY2Nlc3MgaXQgaW4gc3luY2hyb25p
emVXcmFwcGVyc0lmTmVlZGVkKCkuIFRoaXMgaGFwcGVucyBiZWNhdXNlCisgICAgICAgIGFuaW1h
dGlvblN0YXJ0ZWQoKSB3YXMgbm90IGNhbGxlZCBmb3IgdGhpcyBhbmltYXRlZFR5cGUuCisgICAg
ICAgIAorICAgICAgICBTVkdBbmltYXRlRWxlbWVudEJhc2U6OnJlc2V0QW5pbWF0ZWRUeXBlKCkg
Y2FsbHMKKyAgICAgICAgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1h
dGlvbigpIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlCisgICAgICAgIGFuaW1hdGlvbi4gRm9yIHRo
ZSB0YXJnZXQgZWxlbWVudCBhbmQgYWxsIGl0cyBpbnN0YW5jZXMsIHRoaXMgZnVuY3Rpb24gY2Fs
bHMKKyAgICAgICAgU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZjo6YW5pbWF0
aW9uU3RhcnRlZCgpIHdoaWNoIGNhbGxzCisgICAgICAgIFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5
VGVhck9mZjxTVkdQYXRoU2VnTGlzdD46OmFuaW1hdGlvblN0YXJ0ZWQoKS4gVGhpcworICAgICAg
ICBsYXN0IGZ1bmN0aW9uIGFsbG9jYXRlcyB0aGUgbWVtYmVyIG1fYW5pbVZhbCB3aGVuIGNhbGxp
bmcKKyAgICAgICAgU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1BhdGhTZWdMaXN0
Pjo6YW5pbVZhbCgpLiAKKyAgICAgICAgCisgICAgICAgIFdoZW4gYWRkaW5nIGEgbmV3IGluc3Rh
bmNlIG9mIHRoZSBzYW1lIGFuaW1hdGluZyB0YXJnZXQgZWxlbWVudCwgCisgICAgICAgIFNWR0Fu
aW1hdGVFbGVtZW50QmFzZTo6cmVzZXRBbmltYXRlZFR5cGUoKSBqdXN0IGtlZXBzIGNhbGxpbmcK
KyAgICAgICAgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmFuaW1WYWxEaWRDaGFuZ2UoKSBmb3Ig
YWxsIHRoZSBpbnN0YW5jZXMgb2YgdGhlCisgICAgICAgIHRhcmdldEVsZW1lbnQgd2l0aG91dCBl
bnN1cmluZyB0aGF0IGFsbCBvZiB0aGVtIGhhdmUgc3RhcnRlZCB0aGVpcgorICAgICAgICBhbmlt
YXRpb25zLgorICAgICAgICAKKyAgICAgICAgVGhlIGZpeCBpcyB0byBtYWtlIFNWR0FuaW1hdGVk
UGF0aEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoKSBlbnN1cmVzCisgICAgICAgIHRo
YXQgYW5pbWF0aW9uU3RhcnRlZCgpIGlzIGNhbGxlZCBmb3IgdGhlIHRhcmdldEVsZW1lbnQgYW5k
IGFsbCBpdHMgaW5zdGFuY2VzLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6c3RhcnRBbmltVmFs
QW5pbWF0aW9uKTogTW92ZSByZXNldHRpbmcKKyAgICAgICAgdGhlIGFuaW1hdGlvbiB2YWx1ZSBh
bmQgc3RhcnRpbmcgdGhlIGFuaW1hdGVkVHlwZXMgY29kZSB0byBhIG5ldyBvdmVycmlkaW5nCisg
ICAgICAgIGZ1bmN0aW9uIHdoaWNoIGlzIG5hbWVkIHJlc2V0QW5pbVZhbFRvQmFzZVZhbCgpLgor
ICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpyZXNl
dEFuaW1WYWxUb0Jhc2VWYWwpOiBDYWxsIHRoZSBvdmVycmlkaW5nCisgICAgICAgIGZ1bmN0aW9u
IHdoaWNoIGNhbGxzIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZ0xpc3QoKSBh
cyBiZWZvcmUKKyAgICAgICAgYW5kIGVuc3VyZSB0aGF0IGFsbCB0aGUgYW5pbWF0ZWRUeXBlcyBo
YXZlIHN0YXJ0ZWQgdGhlaXIgYW5pbWF0aW9ucy4KKyAgICAgICAgCisgICAgICAgICogc3ZnL1NW
R0FuaW1hdGVkUGF0aC5oOgorCiAyMDE1LTA3LTA2ICBNYXR0IFJhamNhICA8bXJhamNhQGFwcGxl
LmNvbT4KIAogICAgICAgICBNZWRpYSBTZXNzaW9uOiByZW1vdmUgc2VlayBmb3J3YXJkL2JhY2t3
YXJkIGF0dHJpYnV0ZXMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBhdGgu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBhdGguY3Bw
CShyZXZpc2lvbiAxODYzNzYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQYXRo
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEsMjMgKzQxLDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxT
VkdBbmltYXRlZFR5cGU+IFNWR0FuaW0KIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+
IFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZH
RWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewogICAgIEFTU0VS
VChhbmltYXRlZFR5cGVzLnNpemUoKSA+PSAxKTsKLSAgICBTVkdBbmltYXRlZFBhdGhTZWdMaXN0
UHJvcGVydHlUZWFyT2ZmKiBwcm9wZXJ0eSA9IGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxU
eXBlPFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY+KGFuaW1hdGVkVHlwZXNb
MF0ucHJvcGVydGllc1swXS5nZXQoKSk7Ci0gICAgY29uc3QgU1ZHUGF0aFNlZ0xpc3QmIGJhc2VW
YWx1ZSA9IHByb3BlcnR5LT5jdXJyZW50QmFzZVZhbHVlKCk7CiAKICAgICAvLyBCdWlsZCBpbml0
aWFsIHBhdGggYnl0ZSBzdHJlYW0uCiAgICAgYXV0byBieXRlU3RyZWFtID0gc3RkOjptYWtlX3Vu
aXF1ZTxTVkdQYXRoQnl0ZVN0cmVhbT4oKTsKLSAgICBidWlsZFNWR1BhdGhCeXRlU3RyZWFtRnJv
bVNWR1BhdGhTZWdMaXN0KGJhc2VWYWx1ZSwgYnl0ZVN0cmVhbS5nZXQoKSwgVW5hbHRlcmVkUGFy
c2luZyk7Ci0KLSAgICBWZWN0b3I8UmVmUHRyPFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0
eVRlYXJPZmY+PiByZXN1bHQ7Ci0KLSAgICBmb3IgKGF1dG8mIHR5cGUgOiBhbmltYXRlZFR5cGVz
KQotICAgICAgICByZXN1bHQuYXBwZW5kKGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBl
PFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY+KHR5cGUucHJvcGVydGllc1sw
XS5nZXQoKSkpOwotCi0gICAgU1ZHRWxlbWVudDo6SW5zdGFuY2VVcGRhdGVCbG9ja2VyIGJsb2Nr
ZXIoKnByb3BlcnR5LT5jb250ZXh0RWxlbWVudCgpKTsKLQotICAgIGZvciAoYXV0byYgc2VnbWVu
dCA6IHJlc3VsdCkKLSAgICAgICAgc2VnbWVudC0+YW5pbWF0aW9uU3RhcnRlZChieXRlU3RyZWFt
LmdldCgpLCAmYmFzZVZhbHVlKTsKLQorICAgIHJlc2V0QW5pbVZhbFRvQmFzZVZhbChhbmltYXRl
ZFR5cGVzLCBieXRlU3RyZWFtLmdldCgpKTsKICAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpj
cmVhdGVQYXRoKFdURjo6bW92ZShieXRlU3RyZWFtKSk7CiB9CiAKQEAgLTY2LDEzICs1MywzNSBA
QCB2b2lkIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpzdG9wQW5pbVZhCiAgICAgc3RvcEFuaW1W
YWxBbmltYXRpb25Gb3JUeXBlPFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY+
KGFuaW1hdGVkVHlwZXMpOwogfQogCit2b2lkIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpyZXNl
dEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBh
bmltYXRlZFR5cGVzLCBTVkdQYXRoQnl0ZVN0cmVhbSogYnl0ZVN0cmVhbSkKK3sKKyAgICBTVkdB
bmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmKiBwcm9wZXJ0eSA9IGNhc3RBbmltYXRl
ZFByb3BlcnR5VG9BY3R1YWxUeXBlPFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJP
ZmY+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1swXS5nZXQoKSk7CisgICAgY29uc3QgU1ZH
UGF0aFNlZ0xpc3QmIGJhc2VWYWx1ZSA9IHByb3BlcnR5LT5jdXJyZW50QmFzZVZhbHVlKCk7CisK
KyAgICBidWlsZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVNWR1BhdGhTZWdMaXN0KGJhc2VWYWx1ZSwg
Ynl0ZVN0cmVhbSwgVW5hbHRlcmVkUGFyc2luZyk7CisKKyAgICBWZWN0b3I8UmVmUHRyPFNWR0Fu
aW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY+PiByZXN1bHQ7CisKKyAgICBmb3IgKGF1
dG8mIHR5cGUgOiBhbmltYXRlZFR5cGVzKSB7CisgICAgICAgIGF1dG8qIHNlZ21lbnQgPSBjYXN0
QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVy
dHlUZWFyT2ZmPih0eXBlLnByb3BlcnRpZXNbMF0uZ2V0KCkpOworICAgICAgICBpZiAoc2VnbWVu
dC0+aXNBbmltYXRpbmcoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICByZXN1bHQu
YXBwZW5kKHNlZ21lbnQpOworICAgIH0KKworICAgIGlmICghcmVzdWx0LmlzRW1wdHkoKSkgewor
ICAgICAgICBTVkdFbGVtZW50OjpJbnN0YW5jZVVwZGF0ZUJsb2NrZXIgYmxvY2tlcigqcHJvcGVy
dHktPmNvbnRleHRFbGVtZW50KCkpOworICAgICAgICBmb3IgKGF1dG8mIHNlZ21lbnQgOiByZXN1
bHQpCisgICAgICAgICAgICBzZWdtZW50LT5hbmltYXRpb25TdGFydGVkKGJ5dGVTdHJlYW0sICZi
YXNlVmFsdWUpOworICAgIH0KK30KKwogdm9pZCBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6cmVz
ZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYg
YW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlKiB0eXBlKQogewogICAgIEFTU0VSVChhbmlt
YXRlZFR5cGVzLnNpemUoKSA+PSAxKTsKICAgICBBU1NFUlQodHlwZSk7CiAgICAgQVNTRVJUKHR5
cGUtPnR5cGUoKSA9PSBtX3R5cGUpOwotICAgIGNvbnN0IFNWR1BhdGhTZWdMaXN0JiBiYXNlVmFs
dWUgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxTVkdBbmltYXRlZFBhdGhTZWdM
aXN0UHJvcGVydHlUZWFyT2ZmPihhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXNbMF0uZ2V0KCkp
LT5jdXJyZW50QmFzZVZhbHVlKCk7Ci0gICAgYnVpbGRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TVkdQ
YXRoU2VnTGlzdChiYXNlVmFsdWUsIHR5cGUtPnBhdGgoKSwgVW5hbHRlcmVkUGFyc2luZyk7Cisg
ICAgcmVzZXRBbmltVmFsVG9CYXNlVmFsKGFuaW1hdGVkVHlwZXMsIHR5cGUtPnBhdGgoKSk7CiB9
CiAKIHZvaWQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0
IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBhdGguaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQYXRoLmgJKHJldmlzaW9uIDE4NjM3NikKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBhdGguaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiAr
NDAsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFkZEFuaW1hdGVkVHlwZXMoU1ZHQW5p
bWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lk
IGNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0
Q291bnQsIFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlw
ZSosIFNWR0FuaW1hdGVkVHlwZSopIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgZmxvYXQgY2FsY3Vs
YXRlRGlzdGFuY2UoY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3Ry
aW5nKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICB2b2lkIHJlc2V0QW5pbVZhbFRvQmFzZVZh
bChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmLCBTVkdQYXRoQnl0ZVN0cmVh
bSopOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTg2
NDg1KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTcgQEAKKzIwMTUtMDctMDcgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxl
LmNvbT4KKworICAgICAgICBDcmFzaCB3aGVuIGFwcGVuZGluZyBhbiBTVkcgPHVzZT4gZWxlbWVu
dCBkeW5hbWljYWxseSB3aGljaCBoYXMgYW5pbWF0ZWQgU1ZHIDxwYXRoPiBlbGVtZW50CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY2OTAKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzIwNzkwMzc2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gYWRkaW5nIGR5bmFtaWNhbGx5IGEgbmV3IDx1c2U+
IGVsZW1lbnQgd2hpY2ggcmVmZXJlbmNlcyBhbiBhbmltYXRlZAorICAgICAgICBTVkcgcGF0aCBh
ZnRlciB0aGUgYW5pbWF0aW9uIHN0YXJ0cywgZW5zdXJlIHRoYXQgV2ViS2l0IGlzIG5vdCBjcmFz
aGluZy4KKworICAgICAgICAqIHN2Zy9hbmltYXRpb25zL2luc2VydC1hbmltYXRlLXVzZS1wYXRo
LXdoaWxlLWFuaW1hdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmlt
YXRpb25zL2luc2VydC1hbmltYXRlLXVzZS1wYXRoLXdoaWxlLWFuaW1hdGlvbi5zdmc6IEFkZGVk
LgorCiAyMDE1LTA3LTA3ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAg
ICAgICAgIFtXaW5dIFVucmV2aWV3ZWQgdGVzdCBza2lwIGFmdGVyIHIxODY0NzYuCkluZGV4OiBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9pbnNlcnQtYW5pbWF0ZS11c2UtcGF0aC13aGlsZS1h
bmltYXRpb24tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL2luc2VydC1hbmltYXRlLXVzZS1wYXRoLXdoaWxlLWFuaW1hdGlvbi1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9pbnNlcnQtYW5p
bWF0ZS11c2UtcGF0aC13aGlsZS1hbmltYXRpb24tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMiBAQAorUGFzc2VkCisKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9hbmltYXRp
b25zL2luc2VydC1hbmltYXRlLXVzZS1wYXRoLXdoaWxlLWFuaW1hdGlvbi5zdmcKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvaW5zZXJ0LWFuaW1hdGUtdXNlLXBhdGgt
d2hpbGUtYW5pbWF0aW9uLnN2ZwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL2luc2VydC1hbmltYXRlLXVzZS1wYXRoLXdoaWxlLWFuaW1hdGlvbi5zdmcJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw0MCBAQAorPHN2ZyB3aWR0aD0iNjAwIiBoZWlnaHQ9IjQwMCIg
dmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhs
aW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KKyAgPHBhdGggaWQ9ImFuaW1hdGVk
UmVjdCIgZmlsbD0iZ3JlZW4iPgorICAgIDxhbmltYXRlCisgICAgICBhdHRyaWJ1dGVUeXBlPSJY
TUwiCisgICAgICBhdHRyaWJ1dGVOYW1lPSJkIgorICAgICAgZnJvbT0iTTIwIDYwIEwyMCAxMTAg
TDEyMCAxMTAgTDEyMCA2MCBaIgorICAgICAgdG89Ik00NSAzNSBMNDUgMTM1IEw5NSAxMzUgTDk1
IDM1IFoiCisgICAgICBkdXI9IjFzIgorICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiLz4K
KyAgPC9wYXRoPgorICA8dGV4dCB4PSIyMCIgeT0iMTYwIj5QYXNzZWQ8L3RleHQ+CisgIDxzY3Jp
cHQ+PCFbQ0RBVEFbCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAg
IH0KKworICAgIC8vIHdhaXQgdW50aWwgdGhlIG9ubHkgaW5zdGFuY2Ugb2YgJ2FuaW1hdGVkUmVj
dCcgc3RhcnRzIGFuaW1hdGlvbgorICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeworICAgICAg
dmFyIHN2Z25zID0gJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJzsKKyAgICAgIHZhciB4bGlu
a25zID0gJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnOworCisgICAgICBmb3IgKHZhciBp
ID0gMTsgaSA8PSA0OyBpKyspIHsKKyAgICAgICAgdmFyIHNoYXBlID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudE5TKHN2Z25zLCAidXNlIik7CisgICAgICAgIHNoYXBlLnNldEF0dHJpYnV0ZU5TKHhs
aW5rbnMsICdocmVmJywgJyNhbmltYXRlZFJlY3QnKTsKKyAgICAgICAgc2hhcGUuc2V0QXR0cmli
dXRlTlMobnVsbCwgJ3RyYW5zZm9ybScsICd0cmFuc2xhdGUoJyArIDEwMCAqIGkgKyAnLCAwKScp
OworICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoc2hhcGUpOwor
ICAgICAgfQorCisgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgLy8gd2Fp
dCB1bnRpbCB0aGUgbmV4dCBhbmltYXRpb24gY3ljbGUgc3RhcnRzIHRvIG1ha2Ugc3VyZQorICAg
ICAgICAvLyBhbGwgb2YgdGhlIGluc3RhbmNlcyBvZiAnYW5pbWF0ZWRSZWN0JyBhcmUgYW5pbWF0
aW5nLgorICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwgNTApOworICAgICAgfQorCisgICAgfSwgNTAp
OworICBdXT48L3NjcmlwdD4KKzwvc3ZnPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>256381</attachid>
            <date>2015-07-08 09:06:50 -0700</date>
            <delta_ts>2015-07-08 09:06:50 -0700</delta_ts>
            <desc>Another test case</desc>
            <filename>insert-animate-use-path-while-animation.svg</filename>
            <type>image/svg+xml</type>
            <size>970</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">PHN2ZyB3aWR0aD0iNjAwIiBoZWlnaHQ9IjQwMCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDov
L3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hsaW5rIj4KICA8cGF0aCBpZD0iYW5pbWF0ZWRSZWN0IiBmaWxsPSJncmVlbiI+CiAgICA8YW5p
bWF0ZQogICAgICBhdHRyaWJ1dGVUeXBlPSJYTUwiCiAgICAgIGF0dHJpYnV0ZU5hbWU9ImQiCiAg
ICAgIGZyb209Ik0yMCA2MCBMMjAgMTEwIEwxMjAgMTEwIEwxMjAgNjAgWiIKICAgICAgdG89Ik00
NSAzNSBMNDUgMTM1IEw5NSAxMzUgTDk1IDM1IFoiCiAgICAgIGR1cj0iMXMiCiAgICAgIHJlcGVh
dENvdW50PSJpbmRlZmluaXRlIi8+CiAgPC9wYXRoPgogIDx0ZXh0IHg9IjIwIiB5PSIxNjAiPlBh
c3NlZDwvdGV4dD4KICA8c2NyaXB0PjwhW0NEQVRBWwogICAgLy8gd2FpdCB1bnRpbCB0aGUgb25s
eSBpbnN0YW5jZSBvZiAnYW5pbWF0ZWRSZWN0JyBzdGFydHMgYW5pbWF0aW9uCiAgICBzZXRUaW1l
b3V0KGZ1bmN0aW9uICgpIHsKICAgICAgdmFyIHN2Z25zID0gJ2h0dHA6Ly93d3cudzMub3JnLzIw
MDAvc3ZnJzsKICAgICAgdmFyIHhsaW5rbnMgPSAnaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlu
ayc7CgogICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSA0OyBpKyspIHsKICAgICAgICB2YXIgc2hh
cGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoc3ZnbnMsICJ1c2UiKTsKICAgICAgICBzaGFw
ZS5zZXRBdHRyaWJ1dGVOUyh4bGlua25zLCAnaHJlZicsICcjYW5pbWF0ZWRSZWN0Jyk7CiAgICAg
ICAgc2hhcGUuc2V0QXR0cmlidXRlTlMobnVsbCwgJ3RyYW5zZm9ybScsICd0cmFuc2xhdGUoJyAr
IDEwMCAqIGkgKyAnLCAwKScpOwogICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hcHBl
bmRDaGlsZChzaGFwZSk7CiAgICAgIH0KICAgIH0sIDUwKTsKICBdXT48L3NjcmlwdD4KPC9zdmc+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256385</attachid>
            <date>2015-07-08 11:16:28 -0700</date>
            <delta_ts>2015-07-08 16:10:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146690-20150708111528.patch</filename>
            <type>text/plain</type>
            <size>9746</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NjQ4NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ2IEBACisyMDE1LTA3LTA3ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3Jhc2ggd2hl
biBhcHBlbmRpbmcgYW4gU1ZHIDx1c2U+IGVsZW1lbnQgZHluYW1pY2FsbHkgd2hpY2ggaGFzIGFu
aW1hdGVkIFNWRyA8cGF0aD4gZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NjkwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMDc5MDM3
Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
OiBzdmcvYW5pbWF0aW9ucy9pbnNlcnQtYW5pbWF0ZS11c2UtcGF0aC13aGlsZS1hbmltYXRpb24u
c3ZnCisKKyAgICAgICAgVGhlIGNyYXNoaW5nIGNhbGwgc3RhY2sgc2hvd3MgdGhhdAorICAgICAg
ICBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHUGF0aFNlZ0xpc3Q+OjptX2FuaW1W
YWwgaXMgbnVsbCB3aGVuCisgICAgICAgIHRyeWluZyB0byBhY2Nlc3MgaXQgaW4gc3luY2hyb25p
emVXcmFwcGVyc0lmTmVlZGVkKCkuIFRoaXMgaGFwcGVucyBiZWNhdXNlCisgICAgICAgIGFuaW1h
dGlvblN0YXJ0ZWQoKSB3YXMgbm90IGNhbGxlZCBmb3IgdGhpcyBhbmltYXRlZFR5cGUuCisgICAg
ICAgIAorICAgICAgICBTVkdBbmltYXRlRWxlbWVudEJhc2U6OnJlc2V0QW5pbWF0ZWRUeXBlKCkg
Y2FsbHMKKyAgICAgICAgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1h
dGlvbigpIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlCisgICAgICAgIGFuaW1hdGlvbi4gRm9yIHRo
ZSB0YXJnZXQgZWxlbWVudCBhbmQgYWxsIGl0cyBpbnN0YW5jZXMsIHRoaXMgZnVuY3Rpb24gY2Fs
bHMKKyAgICAgICAgU1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZjo6YW5pbWF0
aW9uU3RhcnRlZCgpIHdoaWNoIGNhbGxzCisgICAgICAgIFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5
VGVhck9mZjxTVkdQYXRoU2VnTGlzdD46OmFuaW1hdGlvblN0YXJ0ZWQoKS4gVGhpcworICAgICAg
ICBsYXN0IGZ1bmN0aW9uIGFsbG9jYXRlcyB0aGUgbWVtYmVyIG1fYW5pbVZhbCB3aGVuIGNhbGxp
bmcKKyAgICAgICAgU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1BhdGhTZWdMaXN0
Pjo6YW5pbVZhbCgpLiAKKyAgICAgICAgCisgICAgICAgIFdoZW4gYWRkaW5nIGEgbmV3IGluc3Rh
bmNlIG9mIHRoZSBzYW1lIGFuaW1hdGluZyB0YXJnZXQgZWxlbWVudCwgCisgICAgICAgIFNWR0Fu
aW1hdGVFbGVtZW50QmFzZTo6cmVzZXRBbmltYXRlZFR5cGUoKSBqdXN0IGtlZXBzIGNhbGxpbmcK
KyAgICAgICAgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmFuaW1WYWxEaWRDaGFuZ2UoKSBmb3Ig
YWxsIHRoZSBpbnN0YW5jZXMgb2YgdGhlCisgICAgICAgIHRhcmdldEVsZW1lbnQgd2l0aG91dCBl
bnN1cmluZyB0aGF0IGFsbCBvZiB0aGVtIGhhdmUgc3RhcnRlZCB0aGVpcgorICAgICAgICBhbmlt
YXRpb25zLgorICAgICAgICAKKyAgICAgICAgVGhlIGZpeCBpcyB0byBtYWtlIFNWR0FuaW1hdGVk
UGF0aEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VWYWwoKSBlbnN1cmVzCisgICAgICAgIHRo
YXQgYW5pbWF0aW9uU3RhcnRlZCgpIGlzIGNhbGxlZCBmb3IgdGhlIHRhcmdldEVsZW1lbnQgYW5k
IGFsbCBpdHMgaW5zdGFuY2VzLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6c3RhcnRBbmltVmFs
QW5pbWF0aW9uKTogTW92ZSByZXNldHRpbmcKKyAgICAgICAgdGhlIGFuaW1hdGlvbiB2YWx1ZSBh
bmQgc3RhcnRpbmcgdGhlIGFuaW1hdGVkVHlwZXMgY29kZSB0byBhIG5ldyBvdmVycmlkaW5nCisg
ICAgICAgIGZ1bmN0aW9uIHdoaWNoIGlzIG5hbWVkIHJlc2V0QW5pbVZhbFRvQmFzZVZhbCgpLgor
ICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpyZXNl
dEFuaW1WYWxUb0Jhc2VWYWwpOiBDYWxsIHRoZSBvdmVycmlkaW5nCisgICAgICAgIGZ1bmN0aW9u
IHdoaWNoIGNhbGxzIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZ0xpc3QoKSBh
cyBiZWZvcmUKKyAgICAgICAgYW5kIGVuc3VyZSB0aGF0IGFsbCB0aGUgYW5pbWF0ZWRUeXBlcyBo
YXZlIHN0YXJ0ZWQgdGhlaXIgYW5pbWF0aW9ucy4KKyAgICAgICAgCisgICAgICAgICogc3ZnL1NW
R0FuaW1hdGVkUGF0aC5oOgorCiAyMDE1LTA3LTA2ICBNYXR0IFJhamNhICA8bXJhamNhQGFwcGxl
LmNvbT4KIAogICAgICAgICBNZWRpYSBTZXNzaW9uOiByZW1vdmUgc2VlayBmb3J3YXJkL2JhY2t3
YXJkIGF0dHJpYnV0ZXMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBhdGgu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBhdGguY3Bw
CShyZXZpc2lvbiAxODYzNzYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQYXRo
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEsMjMgKzQxLDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxT
VkdBbmltYXRlZFR5cGU+IFNWR0FuaW0KIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+
IFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZH
RWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQogewogICAgIEFTU0VS
VChhbmltYXRlZFR5cGVzLnNpemUoKSA+PSAxKTsKLSAgICBTVkdBbmltYXRlZFBhdGhTZWdMaXN0
UHJvcGVydHlUZWFyT2ZmKiBwcm9wZXJ0eSA9IGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxU
eXBlPFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY+KGFuaW1hdGVkVHlwZXNb
MF0ucHJvcGVydGllc1swXS5nZXQoKSk7Ci0gICAgY29uc3QgU1ZHUGF0aFNlZ0xpc3QmIGJhc2VW
YWx1ZSA9IHByb3BlcnR5LT5jdXJyZW50QmFzZVZhbHVlKCk7CiAKICAgICAvLyBCdWlsZCBpbml0
aWFsIHBhdGggYnl0ZSBzdHJlYW0uCiAgICAgYXV0byBieXRlU3RyZWFtID0gc3RkOjptYWtlX3Vu
aXF1ZTxTVkdQYXRoQnl0ZVN0cmVhbT4oKTsKLSAgICBidWlsZFNWR1BhdGhCeXRlU3RyZWFtRnJv
bVNWR1BhdGhTZWdMaXN0KGJhc2VWYWx1ZSwgYnl0ZVN0cmVhbS5nZXQoKSwgVW5hbHRlcmVkUGFy
c2luZyk7Ci0KLSAgICBWZWN0b3I8UmVmUHRyPFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0
eVRlYXJPZmY+PiByZXN1bHQ7Ci0KLSAgICBmb3IgKGF1dG8mIHR5cGUgOiBhbmltYXRlZFR5cGVz
KQotICAgICAgICByZXN1bHQuYXBwZW5kKGNhc3RBbmltYXRlZFByb3BlcnR5VG9BY3R1YWxUeXBl
PFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY+KHR5cGUucHJvcGVydGllc1sw
XS5nZXQoKSkpOwotCi0gICAgU1ZHRWxlbWVudDo6SW5zdGFuY2VVcGRhdGVCbG9ja2VyIGJsb2Nr
ZXIoKnByb3BlcnR5LT5jb250ZXh0RWxlbWVudCgpKTsKLQotICAgIGZvciAoYXV0byYgc2VnbWVu
dCA6IHJlc3VsdCkKLSAgICAgICAgc2VnbWVudC0+YW5pbWF0aW9uU3RhcnRlZChieXRlU3RyZWFt
LmdldCgpLCAmYmFzZVZhbHVlKTsKLQorICAgIHJlc2V0QW5pbVZhbFRvQmFzZVZhbChhbmltYXRl
ZFR5cGVzLCBieXRlU3RyZWFtLmdldCgpKTsKICAgICByZXR1cm4gU1ZHQW5pbWF0ZWRUeXBlOjpj
cmVhdGVQYXRoKFdURjo6bW92ZShieXRlU3RyZWFtKSk7CiB9CiAKQEAgLTY2LDEzICs1MywzNSBA
QCB2b2lkIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpzdG9wQW5pbVZhCiAgICAgc3RvcEFuaW1W
YWxBbmltYXRpb25Gb3JUeXBlPFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY+
KGFuaW1hdGVkVHlwZXMpOwogfQogCit2b2lkIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpyZXNl
dEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBh
bmltYXRlZFR5cGVzLCBTVkdQYXRoQnl0ZVN0cmVhbSogYnl0ZVN0cmVhbSkKK3sKKyAgICBTVkdB
bmltYXRlZFBhdGhTZWdMaXN0UHJvcGVydHlUZWFyT2ZmKiBwcm9wZXJ0eSA9IGNhc3RBbmltYXRl
ZFByb3BlcnR5VG9BY3R1YWxUeXBlPFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJP
ZmY+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1swXS5nZXQoKSk7CisgICAgY29uc3QgU1ZH
UGF0aFNlZ0xpc3QmIGJhc2VWYWx1ZSA9IHByb3BlcnR5LT5jdXJyZW50QmFzZVZhbHVlKCk7CisK
KyAgICBidWlsZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVNWR1BhdGhTZWdMaXN0KGJhc2VWYWx1ZSwg
Ynl0ZVN0cmVhbSwgVW5hbHRlcmVkUGFyc2luZyk7CisKKyAgICBWZWN0b3I8UmVmUHRyPFNWR0Fu
aW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY+PiByZXN1bHQ7CisKKyAgICBmb3IgKGF1
dG8mIHR5cGUgOiBhbmltYXRlZFR5cGVzKSB7CisgICAgICAgIGF1dG8qIHNlZ21lbnQgPSBjYXN0
QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxTVkdBbmltYXRlZFBhdGhTZWdMaXN0UHJvcGVy
dHlUZWFyT2ZmPih0eXBlLnByb3BlcnRpZXNbMF0uZ2V0KCkpOworICAgICAgICBpZiAoc2VnbWVu
dC0+aXNBbmltYXRpbmcoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICByZXN1bHQu
YXBwZW5kKHNlZ21lbnQpOworICAgIH0KKworICAgIGlmICghcmVzdWx0LmlzRW1wdHkoKSkgewor
ICAgICAgICBTVkdFbGVtZW50OjpJbnN0YW5jZVVwZGF0ZUJsb2NrZXIgYmxvY2tlcigqcHJvcGVy
dHktPmNvbnRleHRFbGVtZW50KCkpOworICAgICAgICBmb3IgKGF1dG8mIHNlZ21lbnQgOiByZXN1
bHQpCisgICAgICAgICAgICBzZWdtZW50LT5hbmltYXRpb25TdGFydGVkKGJ5dGVTdHJlYW0sICZi
YXNlVmFsdWUpOworICAgIH0KK30KKwogdm9pZCBTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6cmVz
ZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYg
YW5pbWF0ZWRUeXBlcywgU1ZHQW5pbWF0ZWRUeXBlKiB0eXBlKQogewogICAgIEFTU0VSVChhbmlt
YXRlZFR5cGVzLnNpemUoKSA+PSAxKTsKICAgICBBU1NFUlQodHlwZSk7CiAgICAgQVNTRVJUKHR5
cGUtPnR5cGUoKSA9PSBtX3R5cGUpOwotICAgIGNvbnN0IFNWR1BhdGhTZWdMaXN0JiBiYXNlVmFs
dWUgPSBjYXN0QW5pbWF0ZWRQcm9wZXJ0eVRvQWN0dWFsVHlwZTxTVkdBbmltYXRlZFBhdGhTZWdM
aXN0UHJvcGVydHlUZWFyT2ZmPihhbmltYXRlZFR5cGVzWzBdLnByb3BlcnRpZXNbMF0uZ2V0KCkp
LT5jdXJyZW50QmFzZVZhbHVlKCk7Ci0gICAgYnVpbGRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TVkdQ
YXRoU2VnTGlzdChiYXNlVmFsdWUsIHR5cGUtPnBhdGgoKSwgVW5hbHRlcmVkUGFyc2luZyk7Cisg
ICAgcmVzZXRBbmltVmFsVG9CYXNlVmFsKGFuaW1hdGVkVHlwZXMsIHR5cGUtPnBhdGgoKSk7CiB9
CiAKIHZvaWQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OmFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0
IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYgYW5pbWF0ZWRUeXBlcykKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBhdGguaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQYXRoLmgJKHJldmlzaW9uIDE4NjM3NikKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBhdGguaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiAr
NDAsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFkZEFuaW1hdGVkVHlwZXMoU1ZHQW5p
bWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lk
IGNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0
Q291bnQsIFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlw
ZSosIFNWR0FuaW1hdGVkVHlwZSopIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgZmxvYXQgY2FsY3Vs
YXRlRGlzdGFuY2UoY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3Ry
aW5nKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICB2b2lkIHJlc2V0QW5pbVZhbFRvQmFzZVZh
bChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmLCBTVkdQYXRoQnl0ZVN0cmVh
bSopOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTg2
NDg1KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTcgQEAKKzIwMTUtMDctMDcgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxl
LmNvbT4KKworICAgICAgICBDcmFzaCB3aGVuIGFwcGVuZGluZyBhbiBTVkcgPHVzZT4gZWxlbWVu
dCBkeW5hbWljYWxseSB3aGljaCBoYXMgYW5pbWF0ZWQgU1ZHIDxwYXRoPiBlbGVtZW50CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY2OTAKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzIwNzkwMzc2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gYWRkaW5nIGR5bmFtaWNhbGx5IGEgbmV3IDx1c2U+
IGVsZW1lbnQgd2hpY2ggcmVmZXJlbmNlcyBhbiBhbmltYXRlZAorICAgICAgICBTVkcgcGF0aCBh
ZnRlciB0aGUgYW5pbWF0aW9uIHN0YXJ0cywgZW5zdXJlIHRoYXQgV2ViS2l0IGlzIG5vdCBjcmFz
aGluZy4KKworICAgICAgICAqIHN2Zy9hbmltYXRpb25zL2luc2VydC1hbmltYXRlLXVzZS1wYXRo
LXdoaWxlLWFuaW1hdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmlt
YXRpb25zL2luc2VydC1hbmltYXRlLXVzZS1wYXRoLXdoaWxlLWFuaW1hdGlvbi5zdmc6IEFkZGVk
LgorCiAyMDE1LTA3LTA3ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAg
ICAgICAgIFtXaW5dIFVucmV2aWV3ZWQgdGVzdCBza2lwIGFmdGVyIHIxODY0NzYuCkluZGV4OiBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9pbnNlcnQtYW5pbWF0ZS11c2UtcGF0aC13aGlsZS1h
bmltYXRpb24tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL2luc2VydC1hbmltYXRlLXVzZS1wYXRoLXdoaWxlLWFuaW1hdGlvbi1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9pbnNlcnQtYW5p
bWF0ZS11c2UtcGF0aC13aGlsZS1hbmltYXRpb24tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEgQEAKK1Bhc3NlZApJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMv
aW5zZXJ0LWFuaW1hdGUtdXNlLXBhdGgtd2hpbGUtYW5pbWF0aW9uLnN2Zwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9pbnNlcnQtYW5pbWF0ZS11c2UtcGF0aC13aGls
ZS1hbmltYXRpb24uc3ZnCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlv
bnMvaW5zZXJ0LWFuaW1hdGUtdXNlLXBhdGgtd2hpbGUtYW5pbWF0aW9uLnN2Zwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDQxIEBACis8c3ZnIHdpZHRoPSI2MDAiIGhlaWdodD0iNDAwIiB2ZXJz
aW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgorICA8cGF0aCBpZD0iYW5pbWF0ZWRSZWN0
IiBmaWxsPSJncmVlbiI+CisgICAgPGFuaW1hdGUKKyAgICAgIGF0dHJpYnV0ZVR5cGU9IlhNTCIK
KyAgICAgIGF0dHJpYnV0ZU5hbWU9ImQiCisgICAgICBmcm9tPSJNMjAgNjAgTDIwIDExMCBMMTIw
IDExMCBMMTIwIDYwIFoiCisgICAgICB0bz0iTTQ1IDM1IEw0NSAxMzUgTDk1IDEzNSBMOTUgMzUg
WiIKKyAgICAgIGR1cj0iMXMiCisgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgorICA8
L3BhdGg+CisgIDxzY3JpcHQ+PCFbQ0RBVEFbCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOworICAgIH0KKworICAgIC8vIHdhaXQgdW50aWwgdGhlIG9ubHkgaW5zdGFuY2Ug
b2YgJ2FuaW1hdGVkUmVjdCcgc3RhcnRzIGFuaW1hdGlvbgorICAgIHNldFRpbWVvdXQoZnVuY3Rp
b24gKCkgeworICAgICAgdmFyIHN2Z25zID0gJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJzsK
KyAgICAgIHZhciB4bGlua25zID0gJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnOworCisg
ICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSA0OyBpKyspIHsKKyAgICAgICAgdmFyIHNoYXBlID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHN2Z25zLCAidXNlIik7CisgICAgICAgIHNoYXBlLnNl
dEF0dHJpYnV0ZU5TKHhsaW5rbnMsICdocmVmJywgJyNhbmltYXRlZFJlY3QnKTsKKyAgICAgICAg
c2hhcGUuc2V0QXR0cmlidXRlTlMobnVsbCwgJ3RyYW5zZm9ybScsICd0cmFuc2xhdGUoJyArIDEw
MCAqIGkgKyAnLCAwKScpOworICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYXBwZW5k
Q2hpbGQoc2hhcGUpOworICAgICAgfQorICAgICAgCisgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKKyAgICAgICAgLy8gd2FpdCB1bnRpbCB0aGUgbmV4dCBhbmltYXRpb24gY3ljbGUgc3Rh
cnRzIHRvIG1ha2Ugc3VyZQorICAgICAgICAvLyBhbGwgb2YgdGhlIGluc3RhbmNlcyBvZiAnYW5p
bWF0ZWRSZWN0JyBhcmUgYW5pbWF0aW5nLgorICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICB2YXIgdGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhzdmducywg
InRleHQiKTsKKyAgICAgICAgICB0ZXh0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKCJQYXNzZWQiKSk7CisgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVu
ZENoaWxkKHRleHQpOworICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAg
ICB9LCA1MCk7CisgICAgICB9CisgICAgfSwgNTApOworICBdXT48L3NjcmlwdD4KKzwvc3ZnPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256416</attachid>
            <date>2015-07-08 16:10:13 -0700</date>
            <delta_ts>2015-07-08 16:58:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146690-20150708160913.patch</filename>
            <type>text/plain</type>
            <size>9783</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NjUyNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ2IEBACisyMDE1LTA3LTA3ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQ3Jhc2ggd2hl
biBhcHBlbmRpbmcgYW4gU1ZHIDx1c2U+IGVsZW1lbnQgZHluYW1pY2FsbHkgd2hpY2ggaGFzIGFu
aW1hdGVkIFNWRyA8cGF0aD4gZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NjkwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMDc5MDM3
Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgVGVzdDog
c3ZnL2FuaW1hdGlvbnMvaW5zZXJ0LWFuaW1hdGUtdXNlLXBhdGgtd2hpbGUtYW5pbWF0aW9uLnN2
ZworCisgICAgICAgIFRoZSBjcmFzaGluZyBjYWxsIHN0YWNrIHNob3dzIHRoYXQKKyAgICAgICAg
U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1BhdGhTZWdMaXN0Pjo6bV9hbmltVmFs
IGlzIG51bGwgd2hlbgorICAgICAgICB0cnlpbmcgdG8gYWNjZXNzIGl0IGluIHN5bmNocm9uaXpl
V3JhcHBlcnNJZk5lZWRlZCgpLiBUaGlzIGhhcHBlbnMgYmVjYXVzZQorICAgICAgICBhbmltYXRp
b25TdGFydGVkKCkgd2FzIG5vdCBjYWxsZWQgZm9yIHRoaXMgYW5pbWF0ZWRUeXBlLgorICAgICAg
ICAKKyAgICAgICAgU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlOjpyZXNldEFuaW1hdGVkVHlwZSgpIGNh
bGxzCisgICAgICAgIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpzdGFydEFuaW1WYWxBbmltYXRp
b24oKSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZQorICAgICAgICBhbmltYXRpb24uIEZvciB0aGUg
dGFyZ2V0IGVsZW1lbnQgYW5kIGFsbCBpdHMgaW5zdGFuY2VzLCB0aGlzIGZ1bmN0aW9uIGNhbGxz
CisgICAgICAgIFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY6OmFuaW1hdGlv
blN0YXJ0ZWQoKSB3aGljaCBjYWxscworICAgICAgICBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRl
YXJPZmY8U1ZHUGF0aFNlZ0xpc3Q+OjphbmltYXRpb25TdGFydGVkKCkuIFRoaXMKKyAgICAgICAg
bGFzdCBmdW5jdGlvbiBhbGxvY2F0ZXMgdGhlIG1lbWJlciBtX2FuaW1WYWwgd2hlbiBjYWxsaW5n
CisgICAgICAgIFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjxTVkdQYXRoU2VnTGlzdD46
OmFuaW1WYWwoKS4gCisgICAgICAgIAorICAgICAgICBXaGVuIGFkZGluZyBhIG5ldyBpbnN0YW5j
ZSBvZiB0aGUgc2FtZSBhbmltYXRpbmcgdGFyZ2V0IGVsZW1lbnQsIAorICAgICAgICBTVkdBbmlt
YXRlRWxlbWVudEJhc2U6OnJlc2V0QW5pbWF0ZWRUeXBlKCkganVzdCBrZWVwcyBjYWxsaW5nCisg
ICAgICAgIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjphbmltVmFsRGlkQ2hhbmdlKCkgZm9yIGFs
bCB0aGUgaW5zdGFuY2VzIG9mIHRoZQorICAgICAgICB0YXJnZXRFbGVtZW50IHdpdGhvdXQgZW5z
dXJpbmcgdGhhdCBhbGwgb2YgdGhlbSBoYXZlIHN0YXJ0ZWQgdGhlaXIKKyAgICAgICAgYW5pbWF0
aW9ucy4KKyAgICAgICAgCisgICAgICAgIFRoZSBmaXggaXMgdG8gbWFrZSBTVkdBbmltYXRlZFBh
dGhBbmltYXRvcjo6cmVzZXRBbmltVmFsVG9CYXNlVmFsKCkgZW5zdXJlCisgICAgICAgIHRoYXQg
YW5pbWF0aW9uU3RhcnRlZCgpIGlzIGNhbGxlZCBmb3IgdGhlIHRhcmdldEVsZW1lbnQgYW5kIGFs
bCBpdHMgaW5zdGFuY2VzLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBhdGhBbmltYXRvcjo6c3RhcnRBbmltVmFsQW5p
bWF0aW9uKTogTW92ZSByZXNldHRpbmcKKyAgICAgICAgdGhlIGFuaW1hdGlvbiB2YWx1ZSBhbmQg
c3RhcnRpbmcgdGhlIGFuaW1hdGVkVHlwZXMgY29kZSB0byBhIG5ldyBvdmVycmlkaW5nCisgICAg
ICAgIGZ1bmN0aW9uIHdoaWNoIGlzIG5hbWVkIHJlc2V0QW5pbVZhbFRvQmFzZVZhbCgpLgorICAg
ICAgICAKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpyZXNldEFu
aW1WYWxUb0Jhc2VWYWwpOiBDYWxsIHRoZSBvdmVycmlkaW5nCisgICAgICAgIGZ1bmN0aW9uIHdo
aWNoIGNhbGxzIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZ0xpc3QoKSBhcyBi
ZWZvcmUKKyAgICAgICAgYW5kIGVuc3VyZSB0aGF0IGFsbCB0aGUgYW5pbWF0ZWRUeXBlcyBoYXZl
IHN0YXJ0ZWQgdGhlaXIgYW5pbWF0aW9ucy4KKyAgICAgICAgCisgICAgICAgICogc3ZnL1NWR0Fu
aW1hdGVkUGF0aC5oOgorCiAyMDE1LTA3LTA4ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdl
YmtpdC5vcmc+CiAKICAgICAgICAgQWRkIG5ldyBzb3VyY2VzIHRvIERPTUFsbEluT25lLmNwcApJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUGF0aC5jcHAJKHJldmlzaW9uIDE4NjUy
NykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBhdGguY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00MSwyMyArNDEsMTAgQEAgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4g
U1ZHQW5pbQogc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gU1ZHQW5pbWF0ZWRQYXRo
QW5pbWF0b3I6OnN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQ
cm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMpCiB7CiAgICAgQVNTRVJUKGFuaW1hdGVkVHlwZXMu
c2l6ZSgpID49IDEpOwotICAgIFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYq
IHByb3BlcnR5ID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8U1ZHQW5pbWF0ZWRQ
YXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZj4oYW5pbWF0ZWRUeXBlc1swXS5wcm9wZXJ0aWVzWzBd
LmdldCgpKTsKLSAgICBjb25zdCBTVkdQYXRoU2VnTGlzdCYgYmFzZVZhbHVlID0gcHJvcGVydHkt
PmN1cnJlbnRCYXNlVmFsdWUoKTsKIAogICAgIC8vIEJ1aWxkIGluaXRpYWwgcGF0aCBieXRlIHN0
cmVhbS4KICAgICBhdXRvIGJ5dGVTdHJlYW0gPSBzdGQ6Om1ha2VfdW5pcXVlPFNWR1BhdGhCeXRl
U3RyZWFtPigpOwotICAgIGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZ0xpc3Qo
YmFzZVZhbHVlLCBieXRlU3RyZWFtLmdldCgpLCBVbmFsdGVyZWRQYXJzaW5nKTsKLQotICAgIFZl
Y3RvcjxSZWZQdHI8U1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZj4+IHJlc3Vs
dDsKLQotICAgIGZvciAoYXV0byYgdHlwZSA6IGFuaW1hdGVkVHlwZXMpCi0gICAgICAgIHJlc3Vs
dC5hcHBlbmQoY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVhbFR5cGU8U1ZHQW5pbWF0ZWRQYXRo
U2VnTGlzdFByb3BlcnR5VGVhck9mZj4odHlwZS5wcm9wZXJ0aWVzWzBdLmdldCgpKSk7Ci0KLSAg
ICBTVkdFbGVtZW50OjpJbnN0YW5jZVVwZGF0ZUJsb2NrZXIgYmxvY2tlcigqcHJvcGVydHktPmNv
bnRleHRFbGVtZW50KCkpOwotCi0gICAgZm9yIChhdXRvJiBzZWdtZW50IDogcmVzdWx0KQotICAg
ICAgICBzZWdtZW50LT5hbmltYXRpb25TdGFydGVkKGJ5dGVTdHJlYW0uZ2V0KCksICZiYXNlVmFs
dWUpOwotCisgICAgcmVzZXRBbmltVmFsVG9CYXNlVmFsKGFuaW1hdGVkVHlwZXMsIGJ5dGVTdHJl
YW0uZ2V0KCkpOwogICAgIHJldHVybiBTVkdBbmltYXRlZFR5cGU6OmNyZWF0ZVBhdGgoV1RGOjpt
b3ZlKGJ5dGVTdHJlYW0pKTsKIH0KIApAQCAtNjYsMTMgKzUzLDM1IEBAIHZvaWQgU1ZHQW5pbWF0
ZWRQYXRoQW5pbWF0b3I6OnN0b3BBbmltVmEKICAgICBzdG9wQW5pbVZhbEFuaW1hdGlvbkZvclR5
cGU8U1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZj4oYW5pbWF0ZWRUeXBlcyk7
CiB9CiAKK3ZvaWQgU1ZHQW5pbWF0ZWRQYXRoQW5pbWF0b3I6OnJlc2V0QW5pbVZhbFRvQmFzZVZh
bChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmIGFuaW1hdGVkVHlwZXMsIFNW
R1BhdGhCeXRlU3RyZWFtKiBieXRlU3RyZWFtKQoreworICAgIFNWR0FuaW1hdGVkUGF0aFNlZ0xp
c3RQcm9wZXJ0eVRlYXJPZmYqIHByb3BlcnR5ID0gY2FzdEFuaW1hdGVkUHJvcGVydHlUb0FjdHVh
bFR5cGU8U1ZHQW5pbWF0ZWRQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZj4oYW5pbWF0ZWRUeXBl
c1swXS5wcm9wZXJ0aWVzWzBdLmdldCgpKTsKKyAgICBjb25zdCBTVkdQYXRoU2VnTGlzdCYgYmFz
ZVZhbHVlID0gcHJvcGVydHktPmN1cnJlbnRCYXNlVmFsdWUoKTsKKworICAgIGJ1aWxkU1ZHUGF0
aEJ5dGVTdHJlYW1Gcm9tU1ZHUGF0aFNlZ0xpc3QoYmFzZVZhbHVlLCBieXRlU3RyZWFtLCBVbmFs
dGVyZWRQYXJzaW5nKTsKKworICAgIFZlY3RvcjxSZWZQdHI8U1ZHQW5pbWF0ZWRQYXRoU2VnTGlz
dFByb3BlcnR5VGVhck9mZj4+IHJlc3VsdDsKKworICAgIGZvciAoYXV0byYgdHlwZSA6IGFuaW1h
dGVkVHlwZXMpIHsKKyAgICAgICAgYXV0byogc2VnbWVudCA9IGNhc3RBbmltYXRlZFByb3BlcnR5
VG9BY3R1YWxUeXBlPFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmY+KHR5cGUu
cHJvcGVydGllc1swXS5nZXQoKSk7CisgICAgICAgIGlmIChzZWdtZW50LT5pc0FuaW1hdGluZygp
KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoc2VnbWVudCk7
CisgICAgfQorCisgICAgaWYgKCFyZXN1bHQuaXNFbXB0eSgpKSB7CisgICAgICAgIFNWR0VsZW1l
bnQ6Okluc3RhbmNlVXBkYXRlQmxvY2tlciBibG9ja2VyKCpwcm9wZXJ0eS0+Y29udGV4dEVsZW1l
bnQoKSk7CisgICAgICAgIGZvciAoYXV0byYgc2VnbWVudCA6IHJlc3VsdCkKKyAgICAgICAgICAg
IHNlZ21lbnQtPmFuaW1hdGlvblN0YXJ0ZWQoYnl0ZVN0cmVhbSwgJmJhc2VWYWx1ZSk7CisgICAg
fQorfQorCiB2b2lkIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yOjpyZXNldEFuaW1WYWxUb0Jhc2VW
YWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzLCBT
VkdBbmltYXRlZFR5cGUqIHR5cGUpCiB7CiAgICAgQVNTRVJUKGFuaW1hdGVkVHlwZXMuc2l6ZSgp
ID49IDEpOwogICAgIEFTU0VSVCh0eXBlKTsKICAgICBBU1NFUlQodHlwZS0+dHlwZSgpID09IG1f
dHlwZSk7Ci0gICAgY29uc3QgU1ZHUGF0aFNlZ0xpc3QmIGJhc2VWYWx1ZSA9IGNhc3RBbmltYXRl
ZFByb3BlcnR5VG9BY3R1YWxUeXBlPFNWR0FuaW1hdGVkUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJP
ZmY+KGFuaW1hdGVkVHlwZXNbMF0ucHJvcGVydGllc1swXS5nZXQoKSktPmN1cnJlbnRCYXNlVmFs
dWUoKTsKLSAgICBidWlsZFNWR1BhdGhCeXRlU3RyZWFtRnJvbVNWR1BhdGhTZWdMaXN0KGJhc2VW
YWx1ZSwgdHlwZS0+cGF0aCgpLCBVbmFsdGVyZWRQYXJzaW5nKTsKKyAgICByZXNldEFuaW1WYWxU
b0Jhc2VWYWwoYW5pbWF0ZWRUeXBlcywgdHlwZS0+cGF0aCgpKTsKIH0KIAogdm9pZCBTVkdBbmlt
YXRlZFBhdGhBbmltYXRvcjo6YW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1h
dGVkUHJvcGVydHlMaXN0JiBhbmltYXRlZFR5cGVzKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkUGF0aC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZFBhdGguaAkocmV2aXNpb24gMTg2NTI3KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkUGF0aC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCw5IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgYWRkQW5pbWF0ZWRUeXBlcyhTVkdBbmltYXRlZFR5cGUqLCBTVkdB
bmltYXRlZFR5cGUqKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgY2FsY3VsYXRlQW5pbWF0
ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0
ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRU
eXBlKikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBmbG9hdCBjYWxjdWxhdGVEaXN0YW5jZShjb25z
dCBTdHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgdG9TdHJpbmcpIG92ZXJyaWRlOwor
Citwcml2YXRlOgorICAgIHZvaWQgcmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1l
bnRBbmltYXRlZFByb3BlcnR5TGlzdCYsIFNWR1BhdGhCeXRlU3RyZWFtKik7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODY1MjcpCisrKyBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxNS0wNy0w
NyAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAg
IENyYXNoIHdoZW4gYXBwZW5kaW5nIGFuIFNWRyA8dXNlPiBlbGVtZW50IGR5bmFtaWNhbGx5IHdo
aWNoIGhhcyBhbmltYXRlZCBTVkcgPHBhdGg+IGVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjY5MAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMjA3OTAzNzY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAg
ICAgIFdoZW4gYWRkaW5nIGR5bmFtaWNhbGx5IGEgbmV3IDx1c2U+IGVsZW1lbnQgd2hpY2ggcmVm
ZXJlbmNlcyBhbiBhbmltYXRlZAorICAgICAgICBTVkcgcGF0aCBhZnRlciB0aGUgYW5pbWF0aW9u
IHN0YXJ0cywgZW5zdXJlIHRoYXQgV2ViS2l0IGlzIG5vdCBjcmFzaGluZy4KKworICAgICAgICAq
IHN2Zy9hbmltYXRpb25zL2luc2VydC1hbmltYXRlLXVzZS1wYXRoLXdoaWxlLWFuaW1hdGlvbi1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9hbmltYXRpb25zL2luc2VydC1hbmlt
YXRlLXVzZS1wYXRoLXdoaWxlLWFuaW1hdGlvbi5zdmc6IEFkZGVkLgorCiAyMDE1LTA3LTA4ICBE
YXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgaHR0cC90ZXN0cy94
bWx2aWV3ZXIvZHVtcEFzVGV4dC9zdmcueG1sIGNvbnRhaW5zIGEgdHlwbyB0aGF0IGJyZWFrcyB0
aGUgdGVzdCB3aXRoIGxpYnhtbDIgdjIuOS4yCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvYW5pbWF0
aW9ucy9pbnNlcnQtYW5pbWF0ZS11c2UtcGF0aC13aGlsZS1hbmltYXRpb24tZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2luc2VydC1hbmltYXRl
LXVzZS1wYXRoLXdoaWxlLWFuaW1hdGlvbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9pbnNlcnQtYW5pbWF0ZS11c2UtcGF0aC13aGlsZS1h
bmltYXRpb24tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEgQEAKK1Bhc3Nl
ZApJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvaW5zZXJ0LWFuaW1hdGUtdXNlLXBh
dGgtd2hpbGUtYW5pbWF0aW9uLnN2Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvYW5p
bWF0aW9ucy9pbnNlcnQtYW5pbWF0ZS11c2UtcGF0aC13aGlsZS1hbmltYXRpb24uc3ZnCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvaW5zZXJ0LWFuaW1hdGUtdXNl
LXBhdGgtd2hpbGUtYW5pbWF0aW9uLnN2Zwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQxIEBA
Cis8c3ZnIHdpZHRoPSI2MDAiIGhlaWdodD0iNDAwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRw
Oi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5
OTkveGxpbmsiPgorICA8cGF0aCBpZD0iYW5pbWF0ZWRSZWN0IiBmaWxsPSJncmVlbiI+CisgICAg
PGFuaW1hdGUKKyAgICAgIGF0dHJpYnV0ZVR5cGU9IlhNTCIKKyAgICAgIGF0dHJpYnV0ZU5hbWU9
ImQiCisgICAgICBmcm9tPSJNMjAgNjAgTDIwIDExMCBMMTIwIDExMCBMMTIwIDYwIFoiCisgICAg
ICB0bz0iTTQ1IDM1IEw0NSAxMzUgTDk1IDEzNSBMOTUgMzUgWiIKKyAgICAgIGR1cj0iMXMiCisg
ICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgorICA8L3BhdGg+CisgIDxzY3JpcHQ+PCFb
Q0RBVEFbCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKKyAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKwor
ICAgIC8vIFdhaXQgdW50aWwgdGhlIG9ubHkgaW5zdGFuY2Ugb2YgJ2FuaW1hdGVkUmVjdCcgc3Rh
cnRzIGFuaW1hdGlvbi4KKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKKyAgICAgIHZhciBz
dmducyA9ICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc7CisgICAgICB2YXIgeGxpbmtucyA9
ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJzsKKworICAgICAgZm9yICh2YXIgaSA9IDE7
IGkgPD0gNDsgaSsrKSB7CisgICAgICAgIHZhciBzaGFwZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnROUyhzdmducywgInVzZSIpOworICAgICAgICBzaGFwZS5zZXRBdHRyaWJ1dGVOUyh4bGlua25z
LCAnaHJlZicsICcjYW5pbWF0ZWRSZWN0Jyk7CisgICAgICAgIHNoYXBlLnNldEF0dHJpYnV0ZU5T
KG51bGwsICd0cmFuc2Zvcm0nLCAndHJhbnNsYXRlKCcgKyAxMDAgKiBpICsgJywgMCknKTsKKyAg
ICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKHNoYXBlKTsKKyAgICAg
IH0KKyAgICAgIAorICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIC8vIFdh
aXQgdW50aWwgdGhlIG5leHQgYW5pbWF0aW9uIGN5Y2xlIHN0YXJ0cyB0byBtYWtlIHN1cmUKKyAg
ICAgICAgLy8gYWxsIG9mIHRoZSBpbnN0YW5jZXMgb2YgJ2FuaW1hdGVkUmVjdCcgYXJlIGFuaW1h
dGluZy4KKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CisgICAgICAgICAgdmFyIHRl
eHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoc3ZnbnMsICJ0ZXh0Iik7CisgICAgICAgICAg
dGV4dC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiUGFzc2VkIikpOworICAg
ICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0ZXh0KTsKKyAgICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwgNTApOworICAgICAgfQor
ICAgIH0sIDUwKTsKKyAgXV0+PC9zY3JpcHQ+Cis8L3N2Zz4K
</data>

          </attachment>
      

    </bug>

</bugzilla>