<?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>242159</bug_id>
          
          <creation_ts>2022-06-29 19:26:51 -0700</creation_ts>
          <short_desc>REGRESSION(251950@main) Crash under WebCore::Style::ElementRuleCollector::collectMatchingRules</short_desc>
          <delta_ts>2022-06-30 05:48:08 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>242058</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Fujii Hironori">fujii</reporter>
          <assigned_to name="Antti Koivisto">koivisto</assigned_to>
          <cc>koivisto</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1879222</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-06-29 19:26:51 -0700</bug_when>
    <thetext>I&apos;m testing with WinCairo 251961@main Debug build.
A crash happens in this page &lt;https://mainichi.jp/articles/20220630/k00/00m/030/035000c&gt;.

&gt; WebKit2.dll!WTF::RawPtrTraits&lt;WTF::StringImpl&gt;::unwrap(WTF::StringImpl * const &amp; ptr) Line 44	C++
&gt; WebKit2.dll!WTF::RefPtr&lt;WTF::StringImpl,WTF::RawPtrTraits&lt;WTF::StringImpl&gt;,WTF::DefaultRefDerefTraits&lt;WTF::StringImpl&gt;&gt;::get() Line 76	C++
&gt; WebKit2.dll!WTF::String::impl() Line 115	C++
&gt; WebKit2.dll!WTF::AtomString::impl() Line 82	C++
&gt; WebKit2.dll!WTF::AtomStringHash::hash(const WTF::AtomString &amp; key) Line 39	C++
&gt; WebKit2.dll!WTF::IdentityHashTranslator&lt;WTF::HashMap&lt;WTF::AtomString,std::unique_ptr&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;,std::default_delete&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;&gt;&gt;,WTF::DefaultHash&lt;WTF::AtomString&gt;,WTF::HashTraits&lt;WTF::AtomString&gt;,WTF::HashTraits&lt;std::unique_ptr&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;,std::default_delete&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;&gt;&gt;&gt;,WTF::HashTableTraits&gt;::KeyValuePairTraits,WTF::DefaultHash&lt;WTF::AtomString&gt;&gt;::hash&lt;WTF::AtomString&gt;(const WTF::AtomString &amp; key) Line 311	C++
&gt; WebKit2.dll!WTF::HashMapTranslatorAdapter&lt;WTF::HashMap&lt;WTF::AtomString,std::unique_ptr&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;,std::default_delete&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;&gt;&gt;,WTF::DefaultHash&lt;WTF::AtomString&gt;,WTF::HashTraits&lt;WTF::AtomString&gt;,WTF::HashTraits&lt;std::unique_ptr&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;,std::default_delete&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;&gt;&gt;&gt;,WTF::HashTableTraits&gt;::KeyValuePairTraits,WTF::IdentityHashTranslator&lt;WTF::HashMap&lt;WTF::AtomString,std::unique_ptr&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;,std::default_delete&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;&gt;&gt;,WTF::DefaultHash&lt;WTF::AtomString&gt;,WTF::HashTraits&lt;WTF::AtomString&gt;,WTF::HashTraits&lt;std::unique_ptr&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;,std::default_delete&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;&gt;&gt;&gt;,WTF::HashTableTraits&gt;::KeyValuePairTraits,WTF::DefaultHash&lt;WTF::AtomString&gt;&gt;&gt;::hash&lt;WTF::AtomString&gt;(const WTF::AtomString &amp; key) Line 250	C++
&gt; WebKit2.dll!WTF::HashTable&lt;WTF::AtomString,WTF::KeyValuePair&lt;WTF::AtomString,std::unique_ptr&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;,std::default_delete&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;&gt;&gt;&gt;,WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WTF::AtomString,std::unique_ptr&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;,std::default_delete&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;&gt;&gt;&gt;&gt;,WTF::DefaultHash&lt;WTF::AtomString&gt;,WTF::HashMap&lt;WTF::AtomString,std::unique_ptr&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;,std::default_delete&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;&gt;&gt;,WTF::DefaultHash&lt;WTF::AtomString&gt;,WTF::HashTraits&lt;WTF::AtomString&gt;,WTF::HashTraits&lt;std::unique_ptr&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;,std::default_delete&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;&gt;&gt;&gt;,WTF::HashTableTraits&gt;::KeyValuePairTraits,WTF::HashTraits&lt;WTF::AtomString&gt;&gt;::inlineLookup&lt;WTF::HashMapTranslatorAdapter&lt;WTF::HashMap&lt;WTF::AtomString,std::unique_ptr&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;,std::default_delete&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;&gt;&gt;,WTF::DefaultHash&lt;WTF::AtomString&gt;,WTF::HashTraits&lt;WTF::AtomString&gt;,WTF::HashTraits&lt;std::unique_ptr&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;,std::default_delete&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;&gt;&gt;&gt;,WTF::HashTableTraits&gt;::KeyValuePairTraits,WTF::IdentityHashTranslator&lt;WTF::HashMap&lt;WTF::AtomString,std::unique_ptr&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;,std::default_delete&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;&gt;&gt;,WTF::DefaultHash&lt;WTF::AtomString&gt;,WTF::HashTraits&lt;WTF::AtomString&gt;,WTF::HashTraits&lt;std::unique_ptr&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;,std::default_delete&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;&gt;&gt;&gt;,WTF::HashTableTraits&gt;::KeyValuePairTraits,WTF::DefaultHash&lt;WTF::AtomString&gt;&gt;&gt;,WTF::AtomString&gt;(const WTF::AtomString &amp; key) Line 688	C++
&gt; WebKit2.dll!WTF::HashTable&lt;WTF::AtomString,WTF::KeyValuePair&lt;WTF::AtomString,std::unique_ptr&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;,std::default_delete&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;&gt;&gt;&gt;,WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WTF::AtomString,std::unique_ptr&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;,std::default_delete&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;&gt;&gt;&gt;&gt;,WTF::DefaultHash&lt;WTF::AtomString&gt;,WTF::HashMap&lt;WTF::AtomString,std::unique_ptr&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;,std::default_delete&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;&gt;&gt;,WTF::DefaultHash&lt;WTF::AtomString&gt;,WTF::HashTraits&lt;WTF::AtomString&gt;,WTF::HashTraits&lt;std::unique_ptr&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;,std::default_delete&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;&gt;&gt;&gt;,WTF::HashTableTraits&gt;::KeyValuePairTraits,WTF::HashTraits&lt;WTF::AtomString&gt;&gt;::lookup&lt;WTF::HashMapTranslatorAdapter&lt;WTF::HashMap&lt;WTF::AtomString,std::unique_ptr&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;,std::default_delete&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;&gt;&gt;,WTF::DefaultHash&lt;WTF::AtomString&gt;,WTF::HashTraits&lt;WTF::AtomString&gt;,WTF::HashTraits&lt;std::unique_ptr&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;,std::default_delete&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;&gt;&gt;&gt;,WTF::HashTableTraits&gt;::KeyValuePairTraits,WTF::IdentityHashTranslator&lt;WTF::HashMap&lt;WTF::AtomString,std::unique_ptr&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;,std::default_delete&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;&gt;&gt;,WTF::DefaultHash&lt;WTF::AtomString&gt;,WTF::HashTraits&lt;WTF::AtomString&gt;,WTF::HashTraits&lt;std::unique_ptr&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;,std::default_delete&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;&gt;&gt;&gt;,WTF::HashTableTraits&gt;::KeyValuePairTraits,WTF::DefaultHash&lt;WTF::AtomString&gt;&gt;&gt;,WTF::AtomString&gt;(const WTF::AtomString &amp; key) Line 674	C++
&gt; WebKit2.dll!WTF::HashMap&lt;WTF::AtomString,std::unique_ptr&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;,std::default_delete&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;&gt;&gt;,WTF::DefaultHash&lt;WTF::AtomString&gt;,WTF::HashTraits&lt;WTF::AtomString&gt;,WTF::HashTraits&lt;std::unique_ptr&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;,std::default_delete&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;&gt;&gt;&gt;,WTF::HashTableTraits&gt;::get&lt;WTF::IdentityHashTranslator&lt;WTF::HashMap&lt;WTF::AtomString,std::unique_ptr&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;,std::default_delete&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;&gt;&gt;,WTF::DefaultHash&lt;WTF::AtomString&gt;,WTF::HashTraits&lt;WTF::AtomString&gt;,WTF::HashTraits&lt;std::unique_ptr&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;,std::default_delete&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;&gt;&gt;&gt;,WTF::HashTableTraits&gt;::KeyValuePairTraits,WTF::DefaultHash&lt;WTF::AtomString&gt;&gt;,WTF::AtomString&gt;(const WTF::AtomString &amp; value) Line 343	C++
&gt; WebKit2.dll!WTF::HashMap&lt;WTF::AtomString,std::unique_ptr&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;,std::default_delete&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;&gt;&gt;,WTF::DefaultHash&lt;WTF::AtomString&gt;,WTF::HashTraits&lt;WTF::AtomString&gt;,WTF::HashTraits&lt;std::unique_ptr&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;,std::default_delete&lt;WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt;&gt;&gt;&gt;,WTF::HashTableTraits&gt;::get(const WTF::AtomString &amp; key) Line 459	C++
&gt; WebKit2.dll!WebCore::Style::RuleSet::attributeRules(const WTF::AtomString &amp; key, bool isHTMLName) Line 210	C++
&gt; WebKit2.dll!WebCore::Style::ElementRuleCollector::collectMatchingRules(const WebCore::Style::MatchRequest &amp; matchRequest) Line 166	C++
&gt; WebKit2.dll!WebCore::Style::ElementRuleCollector::collectMatchingAuthorRules() Line 250	C++
&gt; WebKit2.dll!WebCore::Style::ElementRuleCollector::matchAllRules(bool matchAuthorAndUserStyles, bool includeSMILProperties) Line 583	C++
&gt; WebKit2.dll!WebCore::Style::Resolver::styleForElement(const WebCore::Element &amp; element, const WebCore::Style::ResolutionContext &amp; context, WebCore::RuleMatchingBehavior matchingBehavior) Line 257	C++
&gt; WebKit2.dll!WebCore::Style::TreeResolver::styleForStyleable(const WebCore::Styleable &amp; styleable, WebCore::Style::TreeResolver::ResolutionType resolutionType, const WebCore::Style::ResolutionContext &amp; resolutionContext) Line 155	C++
&gt; WebKit2.dll!WebCore::Style::TreeResolver::resolveElement(WebCore::Element &amp; element, WebCore::Style::TreeResolver::ResolutionType resolutionType) Line 224	C++
&gt; WebKit2.dll!WebCore::Style::TreeResolver::resolveComposedTree() Line 830	C++
&gt; WebKit2.dll!WebCore::Style::TreeResolver::resolve() Line 925	C++
&gt; WebKit2.dll!WebCore::Document::resolveStyle(WebCore::Document::ResolveStyleType type) Line 2097	C++
&gt; WebKit2.dll!WebCore::Document::updateStyleIfNeeded() Line 2235	C++
&gt; WebKit2.dll!WebCore::Document::updateLayoutIfDimensionsOutOfDate(WebCore::Element &amp; element, WebCore::DimensionsCheck dimensionsCheck) Line 2338	C++
&gt; WebKit2.dll!WebCore::DOMWindow::innerWidth() Line 1321	C++
&gt; WebKit2.dll!WebCore::jsDOMWindow_innerWidthGetter(JSC::JSGlobalObject &amp; lexicalGlobalObject, WebCore::JSDOMWindow &amp; thisObject) Line 11281	C++
&gt; WebKit2.dll!WebCore::IDLAttribute&lt;WebCore::JSDOMWindow&gt;::get&lt;&amp;WebCore::jsDOMWindow_innerWidthGetter,0&gt;(JSC::JSGlobalObject &amp; lexicalGlobalObject, __int64 thisValue, JSC::PropertyName attributeName) Line 100	C++
&gt; WebKit2.dll!WebCore::jsDOMWindow_innerWidth(JSC::JSGlobalObject * lexicalGlobalObject, __int64 thisValue, JSC::PropertyName attributeName) Line 11287	C++
&gt; JavaScriptCore.dll!JSC::PropertySlot::customGetter(JSC::VM &amp; vm, JSC::PropertyName propertyName) Line 47	C++
&gt; JavaScriptCore.dll!JSC::PropertySlot::getValue(JSC::JSGlobalObject * globalObject, JSC::PropertyName propertyName) Line 408	C++
&gt; JavaScriptCore.dll!JSC::JSValue::get(JSC::JSGlobalObject * globalObject, JSC::PropertyName propertyName, JSC::PropertySlot &amp; slot) Line 1032	C++
&gt; JavaScriptCore.dll!JSC::LLInt::performLLIntGetByID(JSC::BytecodeIndex bytecodeIndex, JSC::CodeBlock * codeBlock, JSC::JSGlobalObject * globalObject, JSC::JSValue baseValue, const JSC::Identifier &amp; ident, JSC::GetByIdModeMetadata &amp; metadata) Line 813	C++
&gt; JavaScriptCore.dll!llint_slow_path_get_by_id(JSC::CallFrame * callFrame, const JSC::BaseInstruction&lt;JSC::JSOpcodeTraits&gt; * pc) Line 887	C++
&gt; JavaScriptCore.dll!llint_entry()	Unknown
&gt; 000000bdd0efc930()	Unknown
&gt; 000000bdd0efc9f0()	Unknown
&gt; 0000025f7996f4a0()	Unknown
&gt; JavaScriptCore.dll!00007ffd123ef2b8()	C++
&gt; 0000025f7996f4a0()	Unknown
&gt; (...not available under JSC...)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1879223</commentid>
    <comment_count>1</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-06-29 19:28:50 -0700</bug_when>
    <thetext>ElementRuleCollector::collectMatchingRules has the following code:

&gt;    if (element.hasAttributesWithoutUpdate() &amp;&amp; matchRequest.ruleSet.hasAttributeRules()) {
&gt;        for (auto&amp; attribute : element.attributesIterator())
&gt;            collectMatchingRulesForList(matchRequest.ruleSet.attributeRules(attribute.localName(), isHTML), matchRequest);
&gt;    }

`attribute` wasn&apos;t valid value.
This code was added by 251950@main (bug#242058).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1879230</commentid>
    <comment_count>2</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-06-29 20:17:18 -0700</bug_when>
    <thetext>I confirmed this seems to be fixed by reverting 251950@main.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1879236</commentid>
    <comment_count>3</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-06-29 20:33:40 -0700</bug_when>
    <thetext>&gt; A crash happens in this page
&gt; &lt;https://mainichi.jp/articles/20220630/k00/00m/030/035000c&gt;.

This crash is no longer reproducible to me with this page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1879245</commentid>
    <comment_count>4</comment_count>
      <attachid>460568</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-06-29 21:21:38 -0700</bug_when>
    <thetext>Created attachment 460568
debugging patch

collectMatchingRulesForList adds a new attribute to UniqueElementData::m_attributeVector while iterating it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1879247</commentid>
    <comment_count>5</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-06-29 21:23:40 -0700</bug_when>
    <thetext>Here is the callstack of attachment#460568 patch.

&gt; WebKit2.dll!WTFCrashWithInfo(int __formal, const char * __formal, const char * __formal, int __formal) Line 755	C++
&gt; WebKit2.dll!WebCore::UniqueElementData::addAttribute(const WebCore::QualifiedName &amp; attributeName, const WTF::AtomString &amp; value) Line 334	C++
&gt; WebKit2.dll!WebCore::Element::addAttributeInternal(const WebCore::QualifiedName &amp; name, const WTF::AtomString &amp; value, WebCore::Element::SynchronizationOfLazyAttribute inSynchronizationOfLazyAttribute) Line 3074	C++
&gt; WebKit2.dll!WebCore::Element::setAttributeInternal(unsigned int index, const WebCore::QualifiedName &amp; name, const WTF::AtomString &amp; newValue, WebCore::Element::SynchronizationOfLazyAttribute inSynchronizationOfLazyAttribute) Line 1874	C++
&gt; WebKit2.dll!WebCore::Element::setSynchronizedLazyAttribute(const WebCore::QualifiedName &amp; name, const WTF::AtomString &amp; value) Line 1860	C++
&gt; WebKit2.dll!WebCore::StyledElement::synchronizeStyleAttributeInternalImpl() Line 68	C++
&gt; WebKit2.dll!WebCore::StyledElement::synchronizeStyleAttributeInternal() Line 57	C++
&gt; WebKit2.dll!WebCore::Element::synchronizeAllAttributes() Line 667	C++
&gt; WebKit2.dll!WebCore::Element::hasAttributes() Line 2384	C++
&gt; WebKit2.dll!WebCore::SelectorChecker::checkOne(WebCore::SelectorChecker::CheckingContext &amp; checkingContext, const WebCore::SelectorChecker::LocalContext &amp; context, WebCore::SelectorChecker::MatchType &amp; matchType) Line 684	C++
&gt; WebKit2.dll!WebCore::SelectorChecker::matchRecursively(WebCore::SelectorChecker::CheckingContext &amp; checkingContext, const WebCore::SelectorChecker::LocalContext &amp; context, WebCore::PseudoIdSet &amp; dynamicPseudoIdSet) Line 272	C++
&gt; WebKit2.dll!WebCore::SelectorChecker::match(const WebCore::CSSSelector &amp; selector, const WebCore::Element &amp; element, WebCore::SelectorChecker::CheckingContext &amp; checkingContext) Line 191	C++
&gt; WebKit2.dll!WebCore::Style::ElementRuleCollector::ruleMatches(const WebCore::Style::RuleData &amp; ruleData, unsigned int &amp; specificity, WebCore::Style::ScopeOrdinal styleScopeOrdinal) Line 469	C++
&gt; WebKit2.dll!WebCore::Style::ElementRuleCollector::collectMatchingRulesForList(const WTF::Vector&lt;WebCore::Style::RuleData,1,WTF::CrashOnOverflow,16,WTF::FastMalloc&gt; * rules, const WebCore::Style::MatchRequest &amp; matchRequest) Line 513	C++
&gt; WebKit2.dll!WebCore::Style::ElementRuleCollector::collectMatchingRules(const WebCore::Style::MatchRequest &amp; matchRequest) Line 169	C++
&gt; WebKit2.dll!WebCore::Style::ElementRuleCollector::collectMatchingAuthorRules() Line 254	C++
&gt; WebKit2.dll!WebCore::Style::ElementRuleCollector::matchAllRules(bool matchAuthorAndUserStyles, bool includeSMILProperties) Line 587	C++
&gt; (...)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1879248</commentid>
    <comment_count>6</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-06-29 21:25:10 -0700</bug_when>
    <thetext>Oh good find</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1879261</commentid>
    <comment_count>7</comment_count>
      <attachid>460570</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-06-29 22:12:22 -0700</bug_when>
    <thetext>Created attachment 460570
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1879273</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-06-29 23:22:53 -0700</bug_when>
    <thetext>Committed 251982@main (41eeecebb149): &lt;https://commits.webkit.org/251982@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 460570.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1879335</commentid>
    <comment_count>9</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-06-30 05:48:08 -0700</bug_when>
    <thetext>rdar://96207962</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>460568</attachid>
            <date>2022-06-29 21:21:38 -0700</date>
            <delta_ts>2022-06-29 22:12:15 -0700</delta_ts>
            <desc>debugging patch</desc>
            <filename>debug.patch</filename>
            <type>text/plain</type>
            <size>2420</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50RGF0YS5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnREYXRhLmgKaW5kZXggZTI0ZTJlMTliMTVjLi5mZjU3NjEyNzk2ODUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50RGF0YS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50RGF0YS5oCkBAIC0zMjcsMTMgKzMyNywxNyBAQCBpbmxpbmUg
Y29uc3QgQXR0cmlidXRlJiBFbGVtZW50RGF0YTo6YXR0cmlidXRlQXQodW5zaWduZWQgaW5kZXgp
IGNvbnN0CiAgICAgcmV0dXJuIGF0dHJpYnV0ZUJhc2UoKVtpbmRleF07CiB9CiAKK2V4dGVybiBi
b29sIGRlYnVnSXNJbkl0ZXJhdG9yOworCiBpbmxpbmUgdm9pZCBVbmlxdWVFbGVtZW50RGF0YTo6
YWRkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlKQogeworICAgIEFTU0VSVCghZGVidWdJc0luSXRlcmF0b3IpOwogICAg
IG1fYXR0cmlidXRlVmVjdG9yLmFwcGVuZChBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSwgdmFsdWUp
KTsKIH0KIAogaW5saW5lIHZvaWQgVW5pcXVlRWxlbWVudERhdGE6OnJlbW92ZUF0dHJpYnV0ZSh1
bnNpZ25lZCBpbmRleCkKIHsKKyAgICBBU1NFUlQoIWRlYnVnSXNJbkl0ZXJhdG9yKTsKICAgICBt
X2F0dHJpYnV0ZVZlY3Rvci5yZW1vdmUoaW5kZXgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKaW5kZXggMzA2YmI0MmRlODVlLi4xZTRlYjZi
MzRmOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVj
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5j
cHAKQEAgLTE0MSw2ICsxNDEsOCBAQCBpbmxpbmUgdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6
YWRkRWxlbWVudFN0eWxlUHJvcGVydGllcyhjb25zdCBTdHlsZVByb3BlcnRpZQogICAgIGFkZE1h
dGNoZWRQcm9wZXJ0aWVzKFdURk1vdmUobWF0Y2hlZFByb3BlcnR5KSwgRGVjbGFyYXRpb25Pcmln
aW46OkF1dGhvcik7CiB9CiAKK2Jvb2wgZGVidWdJc0luSXRlcmF0b3I7CisKIHZvaWQgRWxlbWVu
dFJ1bGVDb2xsZWN0b3I6OmNvbGxlY3RNYXRjaGluZ1J1bGVzKGNvbnN0IE1hdGNoUmVxdWVzdCYg
bWF0Y2hSZXF1ZXN0KQogewogICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIShtX21vZGUgPT0gU2Vs
ZWN0b3JDaGVja2VyOjpNb2RlOjpDb2xsZWN0aW5nUnVsZXNJZ25vcmluZ1ZpcnR1YWxQc2V1ZG9F
bGVtZW50cyAmJiBtX3BzZXVkb0VsZW1lbnRSZXF1ZXN0LnBzZXVkb0lkICE9IFBzZXVkb0lkOjpO
b25lKSwgIldoZW4gaW4gU3R5bGVJbnZhbGlkYXRpb24gb3IgU2hhcmluZ1J1bGVzLCBTZWxlY3Rv
ckNoZWNrZXIgZG9lcyBub3QgdHJ5IHRvIG1hdGNoIHRoZSBwc2V1ZG8gSUQuIFdoaWxlIEVsZW1l
bnRSdWxlQ29sbGVjdG9yIHN1cHBvcnRzIG1hdGNoaW5nIGEgcGFydGljdWxhciBwc2V1ZG9JZCBp
biB0aGlzIGNhc2UsIHRoaXMgd291bGQgaW5kaWNhdGUgYSBlcnJvciBhdCB0aGUgY2FsbCBzaXRl
IHNpbmNlIG1hdGNoaW5nIGEgcGFydGljdWxhciBlbGVtZW50IHNob3VsZCBiZSB1bm5lY2Vzc2Fy
eS4iKTsKQEAgLTE2Miw4ICsxNjQsMTAgQEAgdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6Y29s
bGVjdE1hdGNoaW5nUnVsZXMoY29uc3QgTWF0Y2hSZXF1ZXN0JiBtYXRjaFJlcXVlc3QKICAgICAg
ICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdChtYXRjaFJlcXVlc3QucnVsZVNldC5j
bGFzc1J1bGVzKGVsZW1lbnQuY2xhc3NOYW1lcygpW2ldKSwgbWF0Y2hSZXF1ZXN0KTsKICAgICB9
CiAgICAgaWYgKGVsZW1lbnQuaGFzQXR0cmlidXRlc1dpdGhvdXRVcGRhdGUoKSAmJiBtYXRjaFJl
cXVlc3QucnVsZVNldC5oYXNBdHRyaWJ1dGVSdWxlcygpKSB7CisgICAgICAgIGRlYnVnSXNJbkl0
ZXJhdG9yID0gdHJ1ZTsKICAgICAgICAgZm9yIChhdXRvJiBhdHRyaWJ1dGUgOiBlbGVtZW50LmF0
dHJpYnV0ZXNJdGVyYXRvcigpKQogICAgICAgICAgICAgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JM
aXN0KG1hdGNoUmVxdWVzdC5ydWxlU2V0LmF0dHJpYnV0ZVJ1bGVzKGF0dHJpYnV0ZS5sb2NhbE5h
bWUoKSwgaXNIVE1MKSwgbWF0Y2hSZXF1ZXN0KTsKKyAgICAgICAgZGVidWdJc0luSXRlcmF0b3Ig
PSBmYWxzZTsKICAgICB9CiAgICAgaWYgKGVsZW1lbnQuaXNMaW5rKCkpCiAgICAgICAgIGNvbGxl
Y3RNYXRjaGluZ1J1bGVzRm9yTGlzdChtYXRjaFJlcXVlc3QucnVsZVNldC5saW5rUHNldWRvQ2xh
c3NSdWxlcygpLCBtYXRjaFJlcXVlc3QpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>460570</attachid>
            <date>2022-06-29 22:12:22 -0700</date>
            <delta_ts>2022-06-29 23:22:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-242159-20220630081221.patch</filename>
            <type>text/plain</type>
            <size>11390</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">RnJvbSAzYzBkODJmZjM5MDQ5MDhjOWI5NTk0YTkxNWMzMjAxMzkwY2UyZDI5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnR0aSBLb2l2aXN0byA8YW50dGlAYXBwbGUuY29tPgpEYXRl
OiBUaHUsIDMwIEp1biAyMDIyIDA4OjA2OjUyICswMzAwClN1YmplY3Q6IFtQQVRDSF0gUmV2ZXJ0
IFsyNTE5NTBAbWFpbl0gQWRkIFJ1bGVTZXQgYnVja2V0IGZvciBhdHRyaWJ1dGUKIHNlbGVjdG9y
cyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQyMTU5CgpVbnJldmll
d2VkLgoKQ2F1c2VkIGEgY3Jhc2guCgoqIFNvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxl
Q29sbGVjdG9yLmNwcDoKKFdlYkNvcmU6OlN0eWxlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6Y29s
bGVjdE1hdGNoaW5nUnVsZXMpOgoqIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVEYXRhLmNwcDoK
KFdlYkNvcmU6OlN0eWxlOjpjb21wdXRlTWF0Y2hCYXNlZE9uUnVsZUhhc2gpOgoqIFNvdXJjZS9X
ZWJDb3JlL3N0eWxlL1J1bGVTZXQuY3BwOgooV2ViQ29yZTo6U3R5bGU6OlJ1bGVTZXQ6OmFkZFJ1
bGUpOgooV2ViQ29yZTo6U3R5bGU6OlJ1bGVTZXQ6OnRyYXZlcnNlUnVsZURhdGFzKToKKFdlYkNv
cmU6OlN0eWxlOjpSdWxlU2V0OjpzaHJpbmtUb0ZpdCk6CihXZWJDb3JlOjpTdHlsZTo6c2hvdWxk
SGF2ZUJ1Y2tldEZvckF0dHJpYnV0ZU5hbWUpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3N0
eWxlL1J1bGVTZXQuaDoKKFdlYkNvcmU6OlN0eWxlOjpSdWxlU2V0OjpjbGFzc1J1bGVzIGNvbnN0
KToKKFdlYkNvcmU6OlN0eWxlOjpSdWxlU2V0Ojp0YWdSdWxlcyBjb25zdCk6CihXZWJDb3JlOjpT
dHlsZTo6UnVsZVNldDo6aGFzQXR0cmlidXRlUnVsZXMgY29uc3QpOiBEZWxldGVkLgooV2ViQ29y
ZTo6U3R5bGU6OlJ1bGVTZXQ6OmF0dHJpYnV0ZVJ1bGVzIGNvbnN0KTogRGVsZXRlZC4KLS0tCiBT
b3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAgfCAyNCArKysrKy0t
LS0tLS0KIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVEYXRhLmNwcCAgICAgICAgICAgICB8ICAy
IC0KIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVTZXQuY3BwICAgICAgICAgICAgICB8IDM5ICsr
KystLS0tLS0tLS0tLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVTZXQuaCAgICAgICAg
ICAgICAgICB8IDE5ICsrKystLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCAyMyBpbnNlcnRpb25zKCsp
LCA2MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVt
ZW50UnVsZUNvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNv
bGxlY3Rvci5jcHAKaW5kZXggMzA2YmI0MmRlODVlLi4zN2I5NGNlYmFhNTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKQEAgLTE0NSwzMSArMTQ1
LDI1IEBAIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OmNvbGxlY3RNYXRjaGluZ1J1bGVzKGNv
bnN0IE1hdGNoUmVxdWVzdCYgbWF0Y2hSZXF1ZXN0CiB7CiAgICAgQVNTRVJUX1dJVEhfTUVTU0FH
RSghKG1fbW9kZSA9PSBTZWxlY3RvckNoZWNrZXI6Ok1vZGU6OkNvbGxlY3RpbmdSdWxlc0lnbm9y
aW5nVmlydHVhbFBzZXVkb0VsZW1lbnRzICYmIG1fcHNldWRvRWxlbWVudFJlcXVlc3QucHNldWRv
SWQgIT0gUHNldWRvSWQ6Ok5vbmUpLCAiV2hlbiBpbiBTdHlsZUludmFsaWRhdGlvbiBvciBTaGFy
aW5nUnVsZXMsIFNlbGVjdG9yQ2hlY2tlciBkb2VzIG5vdCB0cnkgdG8gbWF0Y2ggdGhlIHBzZXVk
byBJRC4gV2hpbGUgRWxlbWVudFJ1bGVDb2xsZWN0b3Igc3VwcG9ydHMgbWF0Y2hpbmcgYSBwYXJ0
aWN1bGFyIHBzZXVkb0lkIGluIHRoaXMgY2FzZSwgdGhpcyB3b3VsZCBpbmRpY2F0ZSBhIGVycm9y
IGF0IHRoZSBjYWxsIHNpdGUgc2luY2UgbWF0Y2hpbmcgYSBwYXJ0aWN1bGFyIGVsZW1lbnQgc2hv
dWxkIGJlIHVubmVjZXNzYXJ5LiIpOwogCi0gICAgYXV0byYgZWxlbWVudCA9IHRoaXMtPmVsZW1l
bnQoKTsKLSAgICBhdXRvKiBzaGFkb3dSb290ID0gZWxlbWVudC5jb250YWluaW5nU2hhZG93Um9v
dCgpOworICAgIGF1dG8qIHNoYWRvd1Jvb3QgPSBlbGVtZW50KCkuY29udGFpbmluZ1NoYWRvd1Jv
b3QoKTsKICAgICBpZiAoc2hhZG93Um9vdCAmJiBzaGFkb3dSb290LT5tb2RlKCkgPT0gU2hhZG93
Um9vdE1vZGU6OlVzZXJBZ2VudCkKICAgICAgICAgY29sbGVjdE1hdGNoaW5nU2hhZG93UHNldWRv
RWxlbWVudFJ1bGVzKG1hdGNoUmVxdWVzdCk7CiAKLSAgICBib29sIGlzSFRNTCA9IGVsZW1lbnQu
aXNIVE1MRWxlbWVudCgpICYmIGVsZW1lbnQuZG9jdW1lbnQoKS5pc0hUTUxEb2N1bWVudCgpOwot
CiAgICAgLy8gV2UgbmVlZCB0byBjb2xsZWN0IHRoZSBydWxlcyBmb3IgaWQsIGNsYXNzLCB0YWcs
IGFuZCBldmVyeXRoaW5nIGVsc2UgaW50byBhIGJ1ZmZlciBhbmQKICAgICAvLyB0aGVuIHNvcnQg
dGhlIGJ1ZmZlci4KLSAgICBhdXRvJiBpZCA9IGVsZW1lbnQuaWRGb3JTdHlsZVJlc29sdXRpb24o
KTsKKyAgICBhdXRvJiBpZCA9IGVsZW1lbnQoKS5pZEZvclN0eWxlUmVzb2x1dGlvbigpOwogICAg
IGlmICghaWQuaXNOdWxsKCkpCiAgICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdCht
YXRjaFJlcXVlc3QucnVsZVNldC5pZFJ1bGVzKGlkKSwgbWF0Y2hSZXF1ZXN0KTsKLSAgICBpZiAo
ZWxlbWVudC5oYXNDbGFzcygpKSB7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZWxl
bWVudC5jbGFzc05hbWVzKCkuc2l6ZSgpOyArK2kpCi0gICAgICAgICAgICBjb2xsZWN0TWF0Y2hp
bmdSdWxlc0Zvckxpc3QobWF0Y2hSZXF1ZXN0LnJ1bGVTZXQuY2xhc3NSdWxlcyhlbGVtZW50LmNs
YXNzTmFtZXMoKVtpXSksIG1hdGNoUmVxdWVzdCk7Ci0gICAgfQotICAgIGlmIChlbGVtZW50Lmhh
c0F0dHJpYnV0ZXNXaXRob3V0VXBkYXRlKCkgJiYgbWF0Y2hSZXF1ZXN0LnJ1bGVTZXQuaGFzQXR0
cmlidXRlUnVsZXMoKSkgewotICAgICAgICBmb3IgKGF1dG8mIGF0dHJpYnV0ZSA6IGVsZW1lbnQu
YXR0cmlidXRlc0l0ZXJhdG9yKCkpCi0gICAgICAgICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zv
ckxpc3QobWF0Y2hSZXF1ZXN0LnJ1bGVTZXQuYXR0cmlidXRlUnVsZXMoYXR0cmlidXRlLmxvY2Fs
TmFtZSgpLCBpc0hUTUwpLCBtYXRjaFJlcXVlc3QpOworICAgIGlmIChlbGVtZW50KCkuaGFzQ2xh
c3MoKSkgeworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGVsZW1lbnQoKS5jbGFzc05h
bWVzKCkuc2l6ZSgpOyArK2kpCisgICAgICAgICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxp
c3QobWF0Y2hSZXF1ZXN0LnJ1bGVTZXQuY2xhc3NSdWxlcyhlbGVtZW50KCkuY2xhc3NOYW1lcygp
W2ldKSwgbWF0Y2hSZXF1ZXN0KTsKICAgICB9Ci0gICAgaWYgKGVsZW1lbnQuaXNMaW5rKCkpCisK
KyAgICBpZiAoZWxlbWVudCgpLmlzTGluaygpKQogICAgICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxl
c0Zvckxpc3QobWF0Y2hSZXF1ZXN0LnJ1bGVTZXQubGlua1BzZXVkb0NsYXNzUnVsZXMoKSwgbWF0
Y2hSZXF1ZXN0KTsKLSAgICBpZiAobWF0Y2hlc0ZvY3VzUHNldWRvQ2xhc3MoZWxlbWVudCkpCisg
ICAgaWYgKG1hdGNoZXNGb2N1c1BzZXVkb0NsYXNzKGVsZW1lbnQoKSkpCiAgICAgICAgIGNvbGxl
Y3RNYXRjaGluZ1J1bGVzRm9yTGlzdChtYXRjaFJlcXVlc3QucnVsZVNldC5mb2N1c1BzZXVkb0Ns
YXNzUnVsZXMoKSwgbWF0Y2hSZXF1ZXN0KTsKLSAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxp
c3QobWF0Y2hSZXF1ZXN0LnJ1bGVTZXQudGFnUnVsZXMoZWxlbWVudC5sb2NhbE5hbWUoKSwgaXNI
VE1MKSwgbWF0Y2hSZXF1ZXN0KTsKKyAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QobWF0
Y2hSZXF1ZXN0LnJ1bGVTZXQudGFnUnVsZXMoZWxlbWVudCgpLmxvY2FsTmFtZSgpLCBlbGVtZW50
KCkuaXNIVE1MRWxlbWVudCgpICYmIGVsZW1lbnQoKS5kb2N1bWVudCgpLmlzSFRNTERvY3VtZW50
KCkpLCBtYXRjaFJlcXVlc3QpOwogICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdChtYXRj
aFJlcXVlc3QucnVsZVNldC51bml2ZXJzYWxSdWxlcygpLCBtYXRjaFJlcXVlc3QpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlRGF0YS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9SdWxlRGF0YS5jcHAKaW5kZXggM2EwZWZjN2FhZTM0Li4zMDk5ZDVlZGVkMmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVEYXRhLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9SdWxlRGF0YS5jcHAKQEAgLTgwLDggKzgwLDYgQEAgc3RhdGljIGlu
bGluZSBNYXRjaEJhc2VkT25SdWxlSGFzaCBjb21wdXRlTWF0Y2hCYXNlZE9uUnVsZUhhc2goY29u
c3QgQ1NTU2VsZWN0b3IKICAgICAgICAgcmV0dXJuIE1hdGNoQmFzZWRPblJ1bGVIYXNoOjpDbGFz
c0E7CiAgICAgaWYgKHNlbGVjdG9yLm1hdGNoKCkgPT0gQ1NTU2VsZWN0b3I6OkNsYXNzKQogICAg
ICAgICByZXR1cm4gTWF0Y2hCYXNlZE9uUnVsZUhhc2g6OkNsYXNzQjsKLSAgICAvLyBGSVhNRTog
VmFsdWVsZXNzIFthdHRyaWJ1dGVdIGNhc2UgY2FuIGJlIGhhbmRsZWQgaGVyZSB0b28uCi0KICAg
ICByZXR1cm4gTWF0Y2hCYXNlZE9uUnVsZUhhc2g6Ok5vbmU7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVTZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVs
ZVNldC5jcHAKaW5kZXggYjM4ZTc0MjNjNzNlLi5jZjE3ZGVkYzg1OWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVTZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1J1bGVTZXQuY3BwCkBAIC0zNyw3ICszNyw2IEBACiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAj
aW5jbHVkZSAiTWVkaWFRdWVyeUV2YWx1YXRvci5oIgogI2luY2x1ZGUgIlJ1bGVTZXRCdWlsZGVy
LmgiCi0jaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgi
CiAjaW5jbHVkZSAiU2VsZWN0b3JDaGVja2VyLmgiCiAjaW5jbHVkZSAiU2VsZWN0b3JGaWx0ZXIu
aCIKQEAgLTg3LDE2ICs4Niw2IEBAIHN0YXRpYyBib29sIGlzSG9zdFNlbGVjdG9yTWF0Y2hpbmdJ
blNoYWRvd1RyZWUoY29uc3QgQ1NTU2VsZWN0b3ImIHN0YXJ0U2VsZWN0b3IpCiAgICAgcmV0dXJu
ICFoYXNPbmx5T25lQ29tcG91bmQgJiYgaGFzSG9zdEluTGFzdENvbXBvdW5kOwogfQogCi1zdGF0
aWMgYm9vbCBzaG91bGRIYXZlQnVja2V0Rm9yQXR0cmlidXRlTmFtZShjb25zdCBDU1NTZWxlY3Rv
ciYgYXR0cmlidXRlU2VsZWN0b3IpCi17Ci0gICAgLy8gRG9uJ3QgbWFrZSBidWNrZXRzIGZvciBs
YXp5IGF0dHJpYnV0ZXMgc2luY2Ugd2UgZG9uJ3Qgd2FudCB0byBzeW5jaHJvbml6ZS4KLSAgICBp
ZiAoYXR0cmlidXRlU2VsZWN0b3IuYXR0cmlidXRlQ2Fub25pY2FsTG9jYWxOYW1lKCkgPT0gSFRN
TE5hbWVzOjpzdHlsZUF0dHItPmxvY2FsTmFtZSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgaWYgKFNWR0VsZW1lbnQ6OmFuaW1hdGFibGVBdHRyaWJ1dGVGb3JOYW1lKGF0dHJpYnV0ZVNl
bGVjdG9yLmF0dHJpYnV0ZSgpLmxvY2FsTmFtZSgpKSAhPSBudWxsUU5hbWUoKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIHJldHVybiB0cnVlOwotfQotCiB2b2lkIFJ1bGVTZXQ6OmFkZFJ1
bGUoY29uc3QgU3R5bGVSdWxlJiBydWxlLCB1bnNpZ25lZCBzZWxlY3RvckluZGV4LCB1bnNpZ25l
ZCBzZWxlY3Rvckxpc3RJbmRleCkKIHsKICAgICBSdWxlRGF0YSBydWxlRGF0YShydWxlLCBzZWxl
Y3RvckluZGV4LCBzZWxlY3Rvckxpc3RJbmRleCwgbV9ydWxlQ291bnQpOwpAQCAtMTI5LDcgKzEx
OCw2IEBAIHZvaWQgUnVsZVNldDo6YWRkUnVsZShSdWxlRGF0YSYmIHJ1bGVEYXRhLCBDYXNjYWRl
TGF5ZXJJZGVudGlmaWVyIGNhc2NhZGVMYXllcklkCiAgICAgY29uc3QgQ1NTU2VsZWN0b3IqIGlk
U2VsZWN0b3IgPSBudWxscHRyOwogICAgIGNvbnN0IENTU1NlbGVjdG9yKiB0YWdTZWxlY3RvciA9
IG51bGxwdHI7CiAgICAgY29uc3QgQ1NTU2VsZWN0b3IqIGNsYXNzU2VsZWN0b3IgPSBudWxscHRy
OwotICAgIGNvbnN0IENTU1NlbGVjdG9yKiBhdHRyaWJ1dGVTZWxlY3RvciA9IG51bGxwdHI7CiAg
ICAgY29uc3QgQ1NTU2VsZWN0b3IqIGxpbmtTZWxlY3RvciA9IG51bGxwdHI7CiAgICAgY29uc3Qg
Q1NTU2VsZWN0b3IqIGZvY3VzU2VsZWN0b3IgPSBudWxscHRyOwogICAgIGNvbnN0IENTU1NlbGVj
dG9yKiBob3N0UHNldWRvQ2xhc3NTZWxlY3RvciA9IG51bGxwdHI7CkBAIC0xNTksMTYgKzE0Nyw2
IEBAIHZvaWQgUnVsZVNldDo6YWRkUnVsZShSdWxlRGF0YSYmIHJ1bGVEYXRhLCBDYXNjYWRlTGF5
ZXJJZGVudGlmaWVyIGNhc2NhZGVMYXllcklkCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQotICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpFeGFjdDoKLSAgICAg
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6U2V0OgotICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpMaXN0
OgotICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpIeXBoZW46Ci0gICAgICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OkNvbnRhaW46Ci0gICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkJlZ2luOgotICAgICAg
ICBjYXNlIENTU1NlbGVjdG9yOjpFbmQ6Ci0gICAgICAgICAgICBpZiAoc2hvdWxkSGF2ZUJ1Y2tl
dEZvckF0dHJpYnV0ZU5hbWUoKnNlbGVjdG9yKSkKLSAgICAgICAgICAgICAgICBhdHRyaWJ1dGVT
ZWxlY3RvciA9IHNlbGVjdG9yOwotICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NT
U2VsZWN0b3I6OlRhZzoKICAgICAgICAgICAgIGlmIChzZWxlY3Rvci0+dGFnUU5hbWUoKS5sb2Nh
bE5hbWUoKSAhPSBzdGFyQXRvbSgpKQogICAgICAgICAgICAgICAgIHRhZ1NlbGVjdG9yID0gc2Vs
ZWN0b3I7CkBAIC0yMTQsNiArMTkyLDEzIEBAIHZvaWQgUnVsZVNldDo6YWRkUnVsZShSdWxlRGF0
YSYmIHJ1bGVEYXRhLCBDYXNjYWRlTGF5ZXJJZGVudGlmaWVyIGNhc2NhZGVMYXllcklkCiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6
VW5rbm93bjoKKyAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6RXhhY3Q6CisgICAgICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlNldDoKKyAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6TGlzdDoKKyAgICAg
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6SHlwaGVuOgorICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpD
b250YWluOgorICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpCZWdpbjoKKyAgICAgICAgY2FzZSBD
U1NTZWxlY3Rvcjo6RW5kOgogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQYWdlUHNldWRvQ2xh
c3M6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMjc2LDEyICsyNjEsNiBAQCB2
b2lkIFJ1bGVTZXQ6OmFkZFJ1bGUoUnVsZURhdGEmJiBydWxlRGF0YSwgQ2FzY2FkZUxheWVySWRl
bnRpZmllciBjYXNjYWRlTGF5ZXJJZAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYg
KGF0dHJpYnV0ZVNlbGVjdG9yKSB7Ci0gICAgICAgIGFkZFRvUnVsZVNldChhdHRyaWJ1dGVTZWxl
Y3Rvci0+YXR0cmlidXRlKCkubG9jYWxOYW1lKCksIG1fYXR0cmlidXRlTG9jYWxOYW1lUnVsZXMs
IHJ1bGVEYXRhKTsKLSAgICAgICAgYWRkVG9SdWxlU2V0KGF0dHJpYnV0ZVNlbGVjdG9yLT5hdHRy
aWJ1dGVDYW5vbmljYWxMb2NhbE5hbWUoKSwgbV9hdHRyaWJ1dGVDYW5vbmljYWxMb2NhbE5hbWVS
dWxlcywgcnVsZURhdGEpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgaWYgKGxpbmtT
ZWxlY3RvcikgewogICAgICAgICBtX2xpbmtQc2V1ZG9DbGFzc1J1bGVzLmFwcGVuZChydWxlRGF0
YSk7CiAgICAgICAgIHJldHVybjsKQEAgLTMyMiw4ICszMDEsNiBAQCB2b2lkIFJ1bGVTZXQ6OnRy
YXZlcnNlUnVsZURhdGFzKEZ1bmN0aW9uJiYgZnVuY3Rpb24pCiAKICAgICB0cmF2ZXJzZU1hcCht
X2lkUnVsZXMpOwogICAgIHRyYXZlcnNlTWFwKG1fY2xhc3NSdWxlcyk7Ci0gICAgdHJhdmVyc2VN
YXAobV9hdHRyaWJ1dGVMb2NhbE5hbWVSdWxlcyk7Ci0gICAgdHJhdmVyc2VNYXAobV9hdHRyaWJ1
dGVDYW5vbmljYWxMb2NhbE5hbWVSdWxlcyk7CiAgICAgdHJhdmVyc2VNYXAobV90YWdMb2NhbE5h
bWVSdWxlcyk7CiAgICAgdHJhdmVyc2VNYXAobV90YWdMb3dlcmNhc2VMb2NhbE5hbWVSdWxlcyk7
CiAgICAgdHJhdmVyc2VNYXAobV9zaGFkb3dQc2V1ZG9FbGVtZW50UnVsZXMpOwpAQCAtNDE2LDgg
KzM5Myw2IEBAIHZvaWQgUnVsZVNldDo6c2hyaW5rVG9GaXQoKQogewogICAgIHNocmlua01hcFZl
Y3RvcnNUb0ZpdChtX2lkUnVsZXMpOwogICAgIHNocmlua01hcFZlY3RvcnNUb0ZpdChtX2NsYXNz
UnVsZXMpOwotICAgIHNocmlua01hcFZlY3RvcnNUb0ZpdChtX2F0dHJpYnV0ZUxvY2FsTmFtZVJ1
bGVzKTsKLSAgICBzaHJpbmtNYXBWZWN0b3JzVG9GaXQobV9hdHRyaWJ1dGVDYW5vbmljYWxMb2Nh
bE5hbWVSdWxlcyk7CiAgICAgc2hyaW5rTWFwVmVjdG9yc1RvRml0KG1fdGFnTG9jYWxOYW1lUnVs
ZXMpOwogICAgIHNocmlua01hcFZlY3RvcnNUb0ZpdChtX3RhZ0xvd2VyY2FzZUxvY2FsTmFtZVJ1
bGVzKTsKICAgICBzaHJpbmtNYXBWZWN0b3JzVG9GaXQobV9zaGFkb3dQc2V1ZG9FbGVtZW50UnVs
ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5oIGIvU291cmNl
L1dlYkNvcmUvc3R5bGUvUnVsZVNldC5oCmluZGV4IDE2ZmZhMjkwNjM4Ni4uNjY0MjM2ZGM4NjZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3R5bGUvUnVsZVNldC5oCkBAIC04Niw3ICs4Niw2IEBAIHB1YmxpYzoKIAogICAg
IGNvbnN0IFJ1bGVEYXRhVmVjdG9yKiBpZFJ1bGVzKGNvbnN0IEF0b21TdHJpbmcmIGtleSkgY29u
c3QgeyByZXR1cm4gbV9pZFJ1bGVzLmdldChrZXkpOyB9CiAgICAgY29uc3QgUnVsZURhdGFWZWN0
b3IqIGNsYXNzUnVsZXMoY29uc3QgQXRvbVN0cmluZyYga2V5KSBjb25zdCB7IHJldHVybiBtX2Ns
YXNzUnVsZXMuZ2V0KGtleSk7IH0KLSAgICBjb25zdCBSdWxlRGF0YVZlY3RvciogYXR0cmlidXRl
UnVsZXMoY29uc3QgQXRvbVN0cmluZyYga2V5LCBib29sIGlzSFRNTE5hbWUpIGNvbnN0OwogICAg
IGNvbnN0IFJ1bGVEYXRhVmVjdG9yKiB0YWdSdWxlcyhjb25zdCBBdG9tU3RyaW5nJiBrZXksIGJv
b2wgaXNIVE1MTmFtZSkgY29uc3Q7CiAgICAgY29uc3QgUnVsZURhdGFWZWN0b3IqIHNoYWRvd1Bz
ZXVkb0VsZW1lbnRSdWxlcyhjb25zdCBBdG9tU3RyaW5nJiBrZXkpIGNvbnN0IHsgcmV0dXJuIG1f
c2hhZG93UHNldWRvRWxlbWVudFJ1bGVzLmdldChrZXkpOyB9CiAgICAgY29uc3QgUnVsZURhdGFW
ZWN0b3IqIGxpbmtQc2V1ZG9DbGFzc1J1bGVzKCkgY29uc3QgeyByZXR1cm4gJm1fbGlua1BzZXVk
b0NsYXNzUnVsZXM7IH0KQEAgLTEwMyw3ICsxMDIsNiBAQCBwdWJsaWM6CiAKICAgICB1bnNpZ25l
ZCBydWxlQ291bnQoKSBjb25zdCB7IHJldHVybiBtX3J1bGVDb3VudDsgfQogCi0gICAgYm9vbCBo
YXNBdHRyaWJ1dGVSdWxlcygpIGNvbnN0IHsgcmV0dXJuICFtX2F0dHJpYnV0ZUxvY2FsTmFtZVJ1
bGVzLmlzRW1wdHkoKTsgfQogICAgIGJvb2wgaGFzU2hhZG93UHNldWRvRWxlbWVudFJ1bGVzKCkg
Y29uc3QgeyByZXR1cm4gIW1fc2hhZG93UHNldWRvRWxlbWVudFJ1bGVzLmlzRW1wdHkoKTsgfQog
ICAgIGJvb2wgaGFzSG9zdFBzZXVkb0NsYXNzUnVsZXNNYXRjaGluZ0luU2hhZG93VHJlZSgpIGNv
bnN0IHsgcmV0dXJuIG1faGFzSG9zdFBzZXVkb0NsYXNzUnVsZXNNYXRjaGluZ0luU2hhZG93VHJl
ZTsgfQogCkBAIC0xNzAsOCArMTY4LDYgQEAgcHJpdmF0ZToKIAogICAgIEF0b21SdWxlTWFwIG1f
aWRSdWxlczsKICAgICBBdG9tUnVsZU1hcCBtX2NsYXNzUnVsZXM7Ci0gICAgQXRvbVJ1bGVNYXAg
bV9hdHRyaWJ1dGVMb2NhbE5hbWVSdWxlczsKLSAgICBBdG9tUnVsZU1hcCBtX2F0dHJpYnV0ZUNh
bm9uaWNhbExvY2FsTmFtZVJ1bGVzOwogICAgIEF0b21SdWxlTWFwIG1fdGFnTG9jYWxOYW1lUnVs
ZXM7CiAgICAgQXRvbVJ1bGVNYXAgbV90YWdMb3dlcmNhc2VMb2NhbE5hbWVSdWxlczsKICAgICBB
dG9tUnVsZU1hcCBtX3NoYWRvd1BzZXVkb0VsZW1lbnRSdWxlczsKQEAgLTIwMywxNiArMTk5LDE0
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2hhc1ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVz
IHsgZmFsc2UgfTsKIH07CiAKLWlubGluZSBjb25zdCBSdWxlU2V0OjpSdWxlRGF0YVZlY3Rvciog
UnVsZVNldDo6YXR0cmlidXRlUnVsZXMoY29uc3QgQXRvbVN0cmluZyYga2V5LCBib29sIGlzSFRN
TE5hbWUpIGNvbnN0Ci17Ci0gICAgYXV0byYgcnVsZXMgPSBpc0hUTUxOYW1lID8gbV9hdHRyaWJ1
dGVDYW5vbmljYWxMb2NhbE5hbWVSdWxlcyA6IG1fYXR0cmlidXRlTG9jYWxOYW1lUnVsZXM7Ci0g
ICAgcmV0dXJuIHJ1bGVzLmdldChrZXkpOwotfQotCiBpbmxpbmUgY29uc3QgUnVsZVNldDo6UnVs
ZURhdGFWZWN0b3IqIFJ1bGVTZXQ6OnRhZ1J1bGVzKGNvbnN0IEF0b21TdHJpbmcmIGtleSwgYm9v
bCBpc0hUTUxOYW1lKSBjb25zdAogewotICAgIGF1dG8mIHJ1bGVzID0gaXNIVE1MTmFtZSA/IG1f
dGFnTG93ZXJjYXNlTG9jYWxOYW1lUnVsZXMgOiBtX3RhZ0xvY2FsTmFtZVJ1bGVzOwotICAgIHJl
dHVybiBydWxlcy5nZXQoa2V5KTsKKyAgICBjb25zdCBBdG9tUnVsZU1hcCogdGFnUnVsZXM7Cisg
ICAgaWYgKGlzSFRNTE5hbWUpCisgICAgICAgIHRhZ1J1bGVzID0gJm1fdGFnTG93ZXJjYXNlTG9j
YWxOYW1lUnVsZXM7CisgICAgZWxzZQorICAgICAgICB0YWdSdWxlcyA9ICZtX3RhZ0xvY2FsTmFt
ZVJ1bGVzOworICAgIHJldHVybiB0YWdSdWxlcy0+Z2V0KGtleSk7CiB9CiAKIGlubGluZSBDYXNj
YWRlTGF5ZXJQcmlvcml0eSBSdWxlU2V0OjpjYXNjYWRlTGF5ZXJQcmlvcml0eUZvcklkZW50aWZp
ZXIoQ2FzY2FkZUxheWVySWRlbnRpZmllciBpZGVudGlmaWVyKSBjb25zdApAQCAtMjQ3LDUgKzI0
MSw2IEBAIGlubGluZSBWZWN0b3I8Y29uc3QgRmlsdGVyZWRDb250YWluZXJRdWVyeSo+IFJ1bGVT
ZXQ6OmNvbnRhaW5lclF1ZXJpZXNGb3IoY29uc3QKICAgICByZXR1cm4gcXVlcmllczsKIH0KIAor
CiB9IC8vIG5hbWVzcGFjZSBTdHlsZQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>