This prevents tables from getting sanitized even on
VE to VE copy. Also by calling ClassAttributeNode sanitize
extra CSS classes are removed.
Bug: T97462
Bug: T125220
Depends-On: Ia3ce386b2a03bc227818b10423bca72c736c0656
Change-Id: Ifd91e00b40665b446bbdcdf8859d2bb641bc0e67
They make it a little bit more cluttered to hunt down problems when
testing. So, use the minimum image instead of just "Foo" or similar.
Bug: T121636
Change-Id: I3209c377ad870f669cac7d40d991968cff52c39e
References to JS objects for VE elements can determined by referencing
the VE and OOUI API documentation[1][2] and interrogating the objects in
a browser console. Errors should be closer to what developers understand
but testers should pair with developers to better understand how to
define new page elements and where to go for documentation/help.
The VE entrypoint for the singleton reference is `ve.init.target` (if
there's only one instance of VE target; there may be multiple in some
cases like Flow).
[1] https://doc.wikimedia.org/VisualEditor/master/
[2] https://doc.wikimedia.org/oojs-ui/master/js/
Change-Id: I1f642807cdd3059d8e7e885a8b239ac01b9b3024
This makes way for a base mw.Target class which is
not specific to articles (e.g. Flow boards).
Bug: T97166
Change-Id: If72650bdf87aa9f195b004da0a4d815f1a8063a3
If you create an autolink in the middle of bolded text, the magic link
should also be bolded. Similarly, if you convert a bolded simple link
to a magic link, the magic link should stay bolded.
Change-Id: I38c7f3c0c275851049088a37f3b37d815ed38e4e
New changes:
95589a6 test: Add a Rakefile for new CI requirement
1a4497e ve.ui.DialogTool: Do not require that a command is set
cbf1bff ve.ui.Tool: Fix documentation for getCommandName
530022d Localisation updates from https://translatewiki.net.
9529093 Update OOjs UI to v0.13.2
b8d6c15 Add icon: Rename 'insert' to 'add'
2f3015b Update OOjs to v1.1.10
78ceb18 Fix deletion inside a structural node at start/end of document
ce3e9a4 ve.utils: Use binarySearch from OOjs
Local change:
* MW test cases for new structural deletion logic
Bug: T52250
Change-Id: I643449c1fa08ea12c8c3aa13f4a4b97d8876990d
New changes:
6cae77b ElementLinearData: Add another case to hasContent
d2e15f2 SurfaceFragment: Improve handling of delete all
16db2a3 Return 'null' instead of null in ve.Filibuster observers
24de6b2 Introduce key down handlers to separate logic from ce surface
f77fe99 Localisation updates from https://translatewiki.net.
062cb26 Localisation updates from https://translatewiki.net.
Change-Id: I61c94983c7898af219266af3022761638c7578b7
In some tests the save button won't be available for a few ms
until the latest transaction has been pushed to the undo stack.
Change-Id: If03f03b033a21a039a322ca32983d0302e44efbb
* translate method can be called to translate a particular string to a
specific language.
Bug: T90577
Change-Id: I7852ee0b0009e70bd9decef0dd317055d91a06a6
New changes:
63c5f67 [BREAKING CHANGE] GeneratedContentNode: Introduce new hash for rendering
6dd1cb2 Add ve.dm.Surface#selectLastContentOffset
Local changes:
* Use new getHashForRendering in GeneratedContentNode users
As we no longer have a model hash, remove the originalIndex check
and just rely on the deep comparison of mwData (trading a deep copy
for a hash computation should result in similar performance).
Bug: T114689
Change-Id: Ida0ee0234418408b735232c633d41908a424a9ff
Implement a special node type, context item, and inspector for
ISBN/PMID/RFC magic links. Add buttons to the link inspectors
to convert back and forth between "simple" links, and magic links.
Depends on I5d000d8b63dafdfe0a2753069d3f0ac5b03b8829 in Parsoid
for clean round-tripping of localized ISBN magic links.
Bug: T63558
Change-Id: Id5b7a2ae3c80b0e5eed598f0bd024d3e94f7e9aa
Add a parentDoc parameter to the MWImageModel constructor and use
it to inherit language, direction and HTML document. Remove
getLang(), setLang(), getDir() and setDir() whose only purpose
was to propagate the language and direction from the parent document
in a hacky way.
Also add a parentDoc parameter to newFromImageAttributes(), replacing
the lang and dir parameters. Remove the unused and ill-conceived
caption parameter.
This causes caption documents to always have an HTML document
for URL resolution. Previously, this worked when editing existing
images because a document generated by cloneFromRange() (which
propagates the HTML document) was passed into setCaptionDocument(),
but it didn't work when creating new images.
Bug: T109599
Change-Id: Ida36862092cd779ffc2f04c0ecbc1164f8d71453
This allows the URL paste handler to use the normalized title
as the text content. Add a test to cover this behaviour.
Depends on Ica48fea69cc in core.
Bug: T109980
Change-Id: I2784adaf2949a73256049921227dde0917ef9aef
Fix the back-reference to \1 (1st set of brakcets).
Add an test to make sure the example sequences actually trigger the
wikitextString handler, and tweak test to ensure that the start-of-line
restriction in the heading regexp doesn't affect link matches.
Change-Id: I76187a12292a4923d1ee2505cfb955431ac252bb
Also store the abortable API request so it can be cancelled
by the dialog.
To test this, put sleep(4); in ApiVisualEditor.php.
Depends on Ied21e574baa in core.
Change-Id: I83ffa9e0b7164ca4a34eae86cde452d8f38dc853
Depends on Ibdad2fa98fca08eeaa96bf33a08dd7723c1edb8c in Parsoid.
Depends on I3dcd289ed7b565b9162ee671038eeb45449e1215 in ve-core.
Bug: T109498
Change-Id: I5650410d7fca30c90baddd4f0c3f6d80e6b39042
Upgraded mw-selenium to 1.x, following the docs at
https://doc.wikimedia.org/rubygems/mediawiki-selenium/file.UPGRADE.html
Created an `environments.yml` file, converted page object definitions to
use relative paths, and refactored references to the global `ENV` using
methods of `MediawikiSelenium::Environment`.
Upgraded commons_upload as well to resolve a dependency conflict on
mediawiki_api.
Paired with: Rummana Yasmeen <ryasmeen@wikimedia.org>
Bug: T99661
Change-Id: I2a05cd816ea43afb48157e5dbe1ae42c6c124f6b
This invokes Parsoid to convert likely wikitext pastes.
This addresses about 20% of the <nowiki> insertion quantified at
https://fr.wikipedia.org/wiki/Wikip%C3%A9dia:%C3%89diteurVisuel/Avis/Nowiki
for 2015-04-08 which were due to inadvertent pastes of wikitext.
For a better user experience, suppress Parsoid's P-wrapping if the
output consists of a single top-level P element. This ensures that
pasting '[[Foo]]' won't add an unexpected newline before the paste.
Bug: T54204
Bug: T109449
Change-Id: I26a4cd8dc5b7e7caf16ca081dbe7baf6a7db8e5c
New changes:
263b4fc Localisation updates from https://translatewiki.net.
0487dcc ve.dm.CommentNode: Add space to comments' clipboard html
3a5422b DebugBar: Add a close button
Change-Id: I9ff3a77a3eb8d2d9a9dc61aa6cb52db577d1592e
New changes:
985edd2 Localisation updates from https://translatewiki.net.
9883b44 Follow-up 985edd24: Fix build for added language 'shn'
b0d5ee2 Localisation updates from https://translatewiki.net.
18ca837 Localisation updates from https://translatewiki.net.
f6a0945 Don't include trailing punctuation in autolinked typed text
Local changes:
* Add MW-specific trailing punctuation rules for autolinking
Change-Id: Iaa620142222f47e9fde2d03b935f38c24d38800b
MW target has 'static' methods, some of which aren't attached
to the static property, the rest of which should be instance methods.
Rename success/fail functions to remove 'on' as that is reserved for
actual event listeners.
Change-Id: I63e68dbe1923906208b180abfc4a9a280b4d098e
* Use local edit source tool, and emit event to MF
* Bring in toolbar styles, bonus: remove old desktop style hacks
Bug: T96186
Change-Id: I89351e409aa4e9d626edd7151ae05bdcd58f1cee
* All translations will be in tests/browser/i18n folder
* Hebrew json’s are added, which needs to be translated.
Paired with Zeljko.
Bug: T105466
Change-Id: I4ae516758fb01a41f0dcf53c7cf3e609c7601cf3
In clipboard mode we need the full body regardless of if the reference
has changed since load or not.
Bug: T104230
Change-Id: Ie59e04d381f2fd2680e8af0cf05a80df71052822
All link input/title input functionality has been moved to core, so
we can replace the link widget, redirect widget and template search
widget with it.
Depends on Ib463e60cad96 in MediaWiki core.
Change-Id: I452f3b86ead403307072cf904f0553c9771f4300
This is a hacky fix, we should find a better way of telling the
model registry that language annotation loses to certain RDFa types.
Bug: T101977
Change-Id: I8be3aa55cbbc2832b8a02a15de27289b3041967e
Once MW images are registered, we should remove core image support so
we don't accidentally match to them (e.g. an MW inline image with an
unsupported extra RDFa type).
Change-Id: I1c8567346c371fe338f95b232c9ac53e009c5a46
* The element's class name changed.
* Zooming is removed - it was breaking the test and
it's not needed anyway.
* Fix another element with the same class.
Change-Id: I46a867619ed49936c3868f6b1b15e773bdb6f6b1
All this is no longer needed since 121216184718e7ebe22d6ecc8f5af5fe4e202465 in
OOjs UI and started causing issues after bb9c9c4f6a2fca6aed0e671e904e469d57da5f34.
Bug: T98795
Change-Id: I6493d6b52b313aac521aee2b0cff1571ea63bbe5
New changes:
8dc8b26 Trim leading and trailing whitespace from annotations
306feb4 Add get(Col|Row)Count to TableSelection and use in isFull*
1c06d21 Cursor holders for native cursoring to ce=false nodes
b08384d Provide file extension fallback for FileTransferHandlers
28844ed [BREAKING CHANGE] Move all icons to OOjs UI's icon packs
9d37355 demo: Set 'lang' attribute of target
8945420 Follow-up 8dc8b266: account for annotations that return []
c2bbc97 Localisation updates from https://translatewiki.net.
Local changes:
* Switch to using OOjs UI icons for VisualEditor core features
* Update test for whitespace trimming
Change-Id: I12b22a411600b6e8e61858e7ed600fb53eedd95d
MWExtensionNode:
* Inherit from LeafNode at the top level. Inline and block only
differ in CE where inline has isContent set.
MWAlienExtensionNode:
* Inhert from MW(Inline|Block)ExtensionNode respectively. Both
mixin MWAlienExtensionNode.
Bonus:
* Bring in paragraph unwrapping on inline nodes from MWMathNode
Bug: T93712
Change-Id: Ib04234f740cf1f27c861d8b3cfeea5e323b94678
It looks differently in different languages,
and it is likely changing now with Citoid being deployed,
so it shold be disabled for now and revived when Citoid deployment
stabilizes.
Change-Id: If6a6ecf450060eb1387aaf90fd0cfb937b08bd3d
The scenario for the Formatting pull-down screenshot didn't click
the "More" element in the bottom. This is now added.
The "More" element itself is redefined to be generic and work with
all pull-down menus - there is supposed to be only
one active menu at a time.
Change-Id: I27122f3192b220919311993ecd9a10d85ef5828d
New changes:
5197b2d Rangestate optimization
80a07cf Unmix GeneratedContentNode from AlienNodes
f510e9c Make (Node/Annotation/MetaItem)Factory inherit from ModelFactory
b625ff0 Localisation updates from https://translatewiki.net.
5c4653c ve.qunit: Use 'jscs:disable' comment rather than hacks
90e9480 Remove registration of abstract AlienNode classes
d325674 i18n/en.json: Convert from spaces to tabs, like all other files
f40fc15 Add 'classes' config option to focusable nodes to simplify AlienNode
f7c8999 Document config options as @cfg
ad3aa0b ve.ce.Surface.test: Groundwork for testing non-linear selections
cd1a992 Localisation updates from https://translatewiki.net.
c92471e Move drop marker to highlights layer and position absolutely
Change-Id: I437663d93a346a06c6a5137cce5149c7a6fcbb7f
Because sending HTML like <h2> </h2> or <h2></h2> to Parsoid
produces undesirable output like == == or ==<nowiki />==
Bug: T51452
Bug: T52100
Bug: T57769
Bug: T61647
Change-Id: If15a1b4b31d4f08c23ecdf2ecf61a8a14a77259a
The when_not_visible line fails, but it doesn't seem to be needed
in the first place. The when_present line appears to be enough.
Change-Id: I572dabb5d53553d454f6e40c5602fbe3252c3657
The functionality chnaged significantly, so the steps must be changed.
Removing the tag until it's done.
Change-Id: Iacdf78d3b6f00e39cb2bf313b79489035f1c0b62
The element is <div>, and using English text doesn't work
in other languages.
Follow up to
Icd79ec9b489557c3259ff7f2c11b2a899c767d0f
Change-Id: I3859c668921a5f3f6abafb2053fc471dbc8d80c7
New changes:
44ca3b6 Use store indices in annotate operations
3ebbcce Make range optional in getUsedStoreValuesFromRange
9d03a5e Set originalDomElements whenever a data element is created
4cfffde Simplify annotation hashes
4eeb8bb Add handlers for font annotations
4a6d6f0 Localisation updates from https://translatewiki.net.
05de45e ve.ui.ToolbarDialogTool: Fix documentation
6797d6d Use type from toDataElements when creating annotations
b3a3839 Store reference to DM document in transactions
c073a24 Load special characters in Platform instead of SpecialCharacterDialog
Local changes:
* Add new files to VisualEditor.php
* Re-sort i18n strings in VisualEditor.php
* Re-run extenson.json creation
* Update documentation HTML file
* Update tests for adjacent annotations fix
Change-Id: I7a5e79e68ab8a7aae0e9af42d011943019f7f85f
* Access to Cite options changed
* Various target locators also changed
Paired with Rummana for these changes.
Change-Id: Ib7c3fbd1842879745d3d3128c66d90cc2b4f98cb
Since all transclusion nodes can be interacted with (including the
'hidden' ones,) there is no need for MWTransclusionMetaNodes.
Change-Id: I23d37e3d82029b7475ec68ebb04883c7e05370cc
Since Bug T90654 has not been addressed in two weeks, I would
rather make the test pass, assuming that the slightly altered
diff view is a feature not a bug.
Change-Id: Id2ce34b2838cf56a9411173f9b2e9ad8e5320545
This has been failing for a while, for several reasons, originally
because an updated version of Cucumber interpreted an "&"
character in an unexpected way.
Change-Id: Icd79ec9b489557c3259ff7f2c11b2a899c767d0f
Also, fix @returns comments (should be @return) and remove unnecessary
@method comments from the documentation.
Change-Id: Icd303626ac745c7ab5bff164f9b8cac276de1523
By adding this tag we were able to delete VisualEditor JJB builder and reuse
browsertest-website builder. See the task in Phabricator (linked below) for
more information.
Bug: T90423
Change-Id: I206d512adcb304b6e8823cc9e05acfcf3880c6c8
Make it clear that this scenario is supposed to test
and take screenshots of the "Edit source" and "Edit" tabs.
Change-Id: Ia480eacb2629553c378ecad52a9b0ed1336cd0f3
The screenshot here is supposed to capture the menu that opens
when the hamburger icon is pressed.
The previous code captured the whole toolbar. This is now fixed.
A sample screenshot is here:
https://commons.wikimedia.org/wiki/File:VisualEditor_More_Settings-en.png
Change-Id: Id9501b8b1b8d41411c2f81bf4d4954a6bb41addc
This screenshot only needs the "Cite" button,
and not the whole dropdown menu.
* The clicking step is removed.
* The element is reconfigured.
Change-Id: If4b863e51db611b96186ca6381d0426a335a9a17
New changes:
0bc7034 Fix unmodifiedness test in showSelection
6e27ea1 Test clipboard mode in converter
5481dc5 Localisation updates from https://translatewiki.net.
f7623bd ve#resolveUrl: stop accepting string values for base
bce9180 ve.ce.FocusableNode: Remove superfluous ve.ce.Surface#appendHighlights call
Local changes:
* Update test case counter for clipboard tests
* Add clipboardBody to tests
Change-Id: Ie0f149b74abf10e740be63e3759416ecc8bed656
New changes:
159ed9b Add 'width' and 'height' to the list of attributes corrupted by IE
a41b51a ve#track: refactor callback calling convention
4280219 Generate CommentNodes more leniently
bf202b6 Fix old metadata tests to use actual metadata
Change-Id: Ia8515d12f5d443e4e07b2c8291bf127341312e1e
* The methods from upload.rb are moved to a newly created gem:
https://rubygems.org/gems/commons_upload
* upload.rb is changed to simply call the method from the Gem.
* Gemfile is updated accordingly.
Bug: T89718
Change-Id: I229fbcd1b8c3cb03885947509aef27f0ae583a1c
New changes:
0ceafd5 Fix V8 deopt for ve.ce.BranchNode#onSplice
01d2d4b [BREAKING CHANGE] Store originalDomElements instead of htmlAttributes
96005a7 Localisation updates from https://translatewiki.net.
42e672e ve.ui.Toolbar: Don't call #updateToolState from #initialize
373562d Localisation updates from https://translatewiki.net.
Local changes:
Update for htmlAttributes going away
Change-Id: I576a1e5d5883b03d1fff6666926f80a5682a280f
* Screenshot taking logic and rspec tests are deleted from this repo
and moved to
https://rubygems.org/gems/screenshot
* Dependency on chunky_png is removed from VisualEditor
(and added to the screenshot gem).
* The method calls are renamed accordingly.
Change-Id: I6a0e2cc770a07f36f63bc536db109b63d38a4fd2
New changes:
e325520 Create APIResultsProvider and APIResultsQueue and add tests
4ead645 Make newFromAnnotation test construct doc2 from data, not HTML
804fb17 Remove useless getDataElementFromDomElement / getDomElementsFromDataElement tests
c2fc6a0 DomFromModelTest: Call modify() on the document, not the data
1535331 Inline ve.ce.View#renderAttributes
Local changes:
Update modify callbacks to work on document instead of data.
Change-Id: Ia875d11627adc38f78dd5010f9ab03e8b083b448
Iff in clipboard mode:
* Set data-ve-no-generated-contents on the main element
regardless of whether we are using orignal DOM elements.
* Set data-ve-ignore on siblings, again, regardless or
where they came from.
Bug: T89658
Change-Id: I82ad60f0b90e0c6ce88c42737bd36d1a289bcf34
Some modules had the same name as test modules in VE core,
and this broke expand/collapse behavior in QUnit.
Change-Id: I7fd0b454b3377b7c289ddebbf91146fcbe5945c4
This addresses some old technical debt.
We also shifted the re-use reference test to the cite.feature where
it belongs in the current architecture.
Paired with Rummana for the update
Change-Id: Ie50ac5bffec0d0ab6bcad704c323639f8e8553f0
The media test was passing against garbage wikitext markup match.
Fixed the steps so that it fails when it should.
Change-Id: I3d8dbc959c6244968dd9ac58af663b81cb115dc6
If data-mw.body.html is not set, search for the element
whose ID matches data-mw.body.id and use its contents.
.body.html is still used for new content: new references
use .body.html, and if a reference using .body.id is
changed, the changed HTML is output in .body.html.
Bug: T88650
Change-Id: I5d614927256d59a3ab20b0bd6e882b5cb8fcda20
New changes:
23a9e11 Localisation updates from https://translatewiki.net.
9f1350f Update UnicodeJS to v0.1.3
f869803 Localisation updates from https://translatewiki.net.
ce11fb3 Use css class rather than jQuery show/hide
0d4584c Fix definition of ve.Range#containsRange
8a5c7d9 Fix rangeInsideOneLeafNode
8ce5f60 Localisation updates from https://translatewiki.net.
d2104aa Track originalHtml in internalItems
9823624 Localisation updates from https://translatewiki.net.
Local changes:
Update tests for internalItem originalHtml change
Bug: T88650
Change-Id: Ie7532cade7e3006e1bf39c12c97962da415ab993
I'm hoping the sleep() calls here are temporary. VE seems to be
loading an intermediate page before showing the diff view, or
sending an invalid onload event or some such.
Also updated the locator for the Basic text input
Change-Id: I73795f6b1ff0da42f8afd92598ab6786c9a0b88b
The class name of the formula image changed.
Follow up to
Ib50d0381f5743db1f6678609cd4eca5a56a8682b
Change-Id: Ic78b5be572c8757c4d8f35bd878adf4ecf7c8fb0
offset_element was used for iframes, and now there are no iframes,
so there is no reason to use it.
As for browser_zoom, it makes more sense to do it in a separate function
and not as a parameter to capture_screenshot.
Change-Id: Ibfce33b7a56d883cc1a6c92c19d40c499681fa47
* Restore the Formula editor screenshot scenario, which was disabled in
I3e892baa9cb2c8c1303fab232a2b1c64ebdd8f26
* Get the 'More' element clicked to show the formula item.
* Fix the definition of the formula editor textarea element.
Change-Id: Ib50d0381f5743db1f6678609cd4eca5a56a8682b
* Add classes to elements in the page settings dialog boxes
* Restore the scenario that was disabled in
Id41d1329d22679b6a61201ceafc81eafa222d909
Change-Id: I5636e744daec2adf013d399bfb019e4d47912083
The editable area sometimes didn't appear, so a .when_present
call is added to check that it's on the screen.
Bug: T88663
Change-Id: I0c5e29a9d7f9d0a22ca8392df9f7a5b857f20d7d
* Remove unused extsrc
* Add <a>s inside of reference <span>s
* Add <li>s inside of reference list
* Change reference list to one for the g1 group rather than the main group
* Consequently, the reference defined inside the reference list moves to g1
** Due to a bug, explicitly set group="g1" on that ref for now
Change-Id: I266a4323c7353e00bd4288d5de51c252bbcdf3d7
Fixed the following:
1.The workflow was incomplete and incorporated new changes
2.Wrong css pointer to the first image
3.The Given statement was defined as When in step definition file
4.Removed unnecessary/obsolete steps that was making the test to fail while we can verify the basic functionality with miminum steps.
Change-Id: Ic8a265678900ed52bbed6d90e971d6c016ef610d
This patch removes an old hack from the early days of VE.
Coincidentally, this hack is the root cause of the bug reported
by me, Erik Berhardson, and Elena Tonkovidova: T87446
Thanks Elena for finding this!
Bug: T87446
Change-Id: I325f60586373427acc2cd8f6e2e7d7accac80695
* Add a class to the indentation toolbar button, similarly to what was done in
Ib0cb67151d893a5d2efccf798d6b25d197ed34d2
* Fix the definition of the indentation pull-down element acordingly.
* Restore the Indentation menu screenshot scenario, which was disabled in
I3e892baa9cb2c8c1303fab232a2b1c64ebdd8f26
Change-Id: If2d92aab6d04aa487d6f753fa7cac94f8d8215c8
The "insert_pull_down" element only included the menu trigger.
Now it includes the complete pull-down with all the items.
This is consistent with other pull-down elements.
Change-Id: I3f6052eab1ee0322ebb7e6f2116e2d5d0e25f5b1
The 'I take screenshot of insert pull-down menu' step has many
similar very long lines. Shortening them makes
the code more understandable and conforming to the conventions.
Change-Id: I83b35211a6cbfdc420895469747884f3ae864479
The selector was very long and incorrect.
This patch simplifies and corrects the selector.
This also fixes the VisualEditor_save_dialog scenario
in the language_screenshots scenarios.
Change-Id: If822f1b2b8bda4d233dff5a88f6317ee1b0d57f1
Test checks for 'Required parameter missing' message, 'Go back'
and 'Continue anyway'.
Paired with Rummana writing this
Change-Id: I9c3aab7f7af9ccde8f0dadd2839a7a698f7341ee
This element used the English label. It should just use
the class to be language independent.
I tested by running VisualEditor_save_dialog scenario
in language screenshots for the Persian language. It fails
on master because of the English label and passes with this commit.
Change-Id: I77955b3dfabbf6a15885c085e3fbdd447b04b4db
It will be fixed later. It needs better element definition
to run successfully, and until it's properly fixed
it should be disabled to let other jobs pass.
Bug: T86634
Change-Id: Id41d1329d22679b6a61201ceafc81eafa222d909
This cleans up the selectors for the elements on the toolbar
so that they can be tested.
Class names in the form of ve-test-* are added to elements
that have words for labels: 'Paragraph', 'Cite', 'Insert'.
There is no other way to look up these elements in the DOM
except using the UI text, but it is different in different languages,
so this is unusable for the language_screenshots job,
which is multilingual by its nature.
Bug: T76143
Change-Id: Ib0cb67151d893a5d2efccf798d6b25d197ed34d2