Pretraži podršku

Izbjegni prevare podrške. Nikad te nećemo tražiti da nas nazoveš, da nam pošalješ telefonski broj ili da podijeliš osobne podatke. Prijavi sumnjive radnje pomoću opcije „Prijavi zlouporabu”.

Saznaj više

Why does Sync on Firefox 57.0.1 (64-bit) shows Last sync: December 31?

  • 2 odgovora
  • 3 imaju ovaj problem
  • 9 prikaza
  • Posljednji odgovor od mikemFirefox

more options

I have two Macs, but running Firefox 57.0.1 (64-bit) and the primary Mac shows Last sync: December 31. I believe this is why none of my new Bookmarks (added after December 31st) aren't syncing on the secondary Mac. how can I correct this so that when I click on the rotary arrows on the primary Mac, the changes on it are pushed up to the server?

I attached partial text from about:sync-log below:

1515421586109 Sync.LogManager DEBUG Flushing file log 1515421586117 Sync.LogManager DEBUG Log cleanup threshold time: 1514557586117 1515421586224 Sync.LogManager DEBUG Done deleting files. 1515423575879 Sync.Service DEBUG User-Agent: Firefox/57.0.1 (Intel Mac OS X 10.13) FxSync/1.59.0.20171128222554.desktop 1515423575879 Sync.Service INFO Starting sync at 2018-01-08 08:59:35 in browser session t0hfuMSflUvJ 1515423575880 Sync.SyncScheduler DEBUG Clearing sync triggers and the global score. 1515423575880 Sync.Telemetry TRACE observed weave:service:sync:start 1515423575882 Sync.Status INFO Resetting Status. 1515423575882 Sync.Status DEBUG Status.service: error.sync.failed_partial => success.status_ok 1515423575883 Sync.BrowserIDManager DEBUG _ensureValidToken already has one 1515423576210 Sync.AsyncResource DEBUG mesg: GET success 200 https://sync-562-us-west-2.sync.services.mozilla.com/1.5/87607314/info/collections 1515423576210 Sync.AsyncResource DEBUG GET success 200 https://sync-562-us-west-2.sync.services.mozilla.com/1.5/87607314/info/collections 1515423576211 Sync.Service DEBUG Fetching server configuration: https://sync-562-us-west-2.sync.services.mozilla.com/1.5/87607314/info/configuration 1515423576211 Sync.BrowserIDManager DEBUG _ensureValidToken already has one 1515423576315 Sync.AsyncResource DEBUG mesg: GET success 200 https://sync-562-us-west-2.sync.services.mozilla.com/1.5/87607314/info/configuration 1515423576315 Sync.AsyncResource DEBUG GET success 200 https://sync-562-us-west-2.sync.services.mozilla.com/1.5/87607314/info/configuration 1515423576315 Sync.Service DEBUG Fetching global metadata record 1515423576315 Sync.Service DEBUG Weave Version: 1.59.0 Local Storage: 5 Remote Storage: 5 1515423576315 Sync.Service DEBUG Fetching and verifying -- or generating -- symmetric keys. 1515423576315 Sync.Service INFO Testing info/collections: {"passwords":1515420829.34,"tabs":1515421522.14,"clients":1515420828.92,"crypto":1514471126.81,"meta":1515418344.46,"prefs":1515172295.01,"bookmarks":1515192128.91,"addons":1514497888.77} 1515423576315 Sync.CollectionKeyManager INFO Testing for updateNeeded. Last modified: 1514471126.81 1515423576315 Sync.Synchronizer DEBUG Refreshing client list. 1515423576315 Sync.Telemetry TRACE observed weave:engine:sync:start clients 1515423576316 Sync.Engine.Clients INFO 0 outgoing items pre-reconciliation 1515423576318 Sync.BrowserIDManager DEBUG _ensureValidToken already has one 1515423576425 Sync.Collection DEBUG mesg: GET success 200 https://sync-562-us-west-2.sync.services.mozilla.com/1.5/87607314/storage/clients?full=1&limit=1000 1515423576425 Sync.Collection DEBUG GET success 200 https://sync-562-us-west-2.sync.services.mozilla.com/1.5/87607314/storage/clients?full=1&limit=1000 1515423576430 Sync.Engine.Clients INFO Records: 0 applied, 0 successfully, 0 failed to apply, 0 newly failed to apply, 4 reconciled. 1515423576430 Sync.Telemetry TRACE observed weave:engine:sync:applied clients 1515423576430 Sync.Engine.Clients INFO Hiding stale client L8HuT5VeiW1z - in known stale clients list 1515423576433 Sync.Telemetry TRACE observed weave:engine:sync:finish clients 1515423576433 Sync.Synchronizer INFO Updating enabled engines: 3 clients. 1515423576435 Sync.Synchronizer INFO Syncing all enabled engines. 1515423576435 Sync.Telemetry TRACE observed weave:engine:sync:start prefs 1515423576436 Sync.Engine.Prefs INFO 0 outgoing items pre-reconciliation 1515423576436 Sync.Engine.Prefs INFO Records: 0 applied, 0 successfully, 0 failed to apply, 0 newly failed to apply, 0 reconciled. 1515423576436 Sync.Telemetry TRACE observed weave:engine:sync:applied prefs 1515423576436 Sync.Telemetry TRACE observed weave:engine:sync:finish prefs 1515423576437 Sync.Telemetry TRACE observed weave:engine:sync:start passwords 1515423576437 Sync.Engine.Passwords INFO 0 outgoing items pre-reconciliation 1515423576438 Sync.Engine.Passwords INFO Records: 0 applied, 0 successfully, 0 failed to apply, 0 newly failed to apply, 0 reconciled. 1515423576438 Sync.Telemetry TRACE observed weave:engine:sync:applied passwords 1515423576439 Sync.Telemetry TRACE observed weave:engine:sync:finish passwords 1515423576439 Sync.Telemetry TRACE observed weave:engine:sync:start tabs 1515423576439 Sync.Engine.Tabs INFO 0 outgoing items pre-reconciliation 1515423576439 Sync.Engine.Tabs INFO Records: 0 applied, 0 successfully, 0 failed to apply, 0 newly failed to apply, 0 reconciled. 1515423576440 Sync.Telemetry TRACE observed weave:engine:sync:applied tabs 1515423576440 Sync.Telemetry TRACE observed weave:engine:sync:finish tabs 1515423576440 Sync.Telemetry TRACE observed weave:engine:sync:start bookmarks 1515423576440 Sync.Engine.Bookmarks DEBUG First sync, uploading all items 1515423576459 BookmarkSyncUtils DEBUG pushChanges: Processed change records: {"skipped":0,"updated":0,"tombstones":0} 1515423576460 Sync.Status DEBUG Status for engine bookmarks: error.engine.reason.unknown_fail 1515423576460 Sync.Status DEBUG Status.service: success.status_ok => error.sync.failed_partial 1515423576460 Sync.ErrorHandler DEBUG bookmarks failed: Error: Duplicate entry for unfiled in changeset (resource://gre/modules/PlacesSyncUtils.jsm:1970:11) JS Stack trace: addRowToChangeRecords@PlacesSyncUtils.jsm:1970:11 < pullSyncChanges@PlacesSyncUtils.jsm:2022:5 1515423576460 Sync.Telemetry TRACE observed weave:engine:sync:error bookmarks 1515423576460 Sync.Telemetry TRACE observed weave:engine:sync:start addons 1515423576461 Sync.Engine.Addons DEBUG Refreshing reconciler state 1515423576461 Sync.AddonsReconciler INFO Refreshing global state from AddonManager. 1515423576463 Sync.AddonsReconciler DEBUG Rectifying state for addon Add-on Compatibility Reporter (version=2.2.4, id=compatibility@addons.mozilla.org) 1515423576463 Sync.AddonsReconciler DEBUG Rectifying state for addon Multi-process staged rollout (version=3.05, id=e10srollout@mozilla.org) 1515423576463 Sync.AddonsReconciler DEBUG Rectifying state for addon Pocket (version=1.0.5, id=firefox@getpocket.com) 1515423576463 Sync.AddonsReconciler DEBUG Rectifying state for addon Web Compat (version=1.1, id=webcompat@mozilla.org) 1515423576463 Sync.AddonsReconciler DEBUG Rectifying state for addon Application Update Service Helper (version=2.0, id=aushelper@mozilla.org) 1515423576463 Sync.AddonsReconciler DEBUG Rectifying state for addon Firefox Screenshots (version=19.2.0, id=screenshots@mozilla.org) 1515423576463 Sync.AddonsReconciler DEBUG Rectifying state for addon Shield Recipe Client (version=76.1, id=shield-recipe-client@mozilla.org) 1515423576463 Sync.AddonsReconciler DEBUG Rectifying state for addon Activity Stream (version=2017.11.07.1100-7f4e3634, id=activity-stream@mozilla.org) 1515423576463 Sync.AddonsReconciler DEBUG Rectifying state for addon Photon onboarding (version=1.0, id=onboarding@mozilla.org) 1515423576463 Sync.AddonsReconciler DEBUG Rectifying state for addon Form Autofill (version=1.0, id=formautofill@mozilla.org) 1515423576464 Sync.AddonsReconciler DEBUG Rectifying state for addon Follow-on Search Telemetry (version=0.9.6, id=followonsearch@mozilla.com) 1515423576464 Sync.AddonsReconciler DEBUG Rectifying state for addon Default (version=57.0.1, id={972ce4c6-7e08-4474-a285-3208198ce6fd}) 1515423576464 Sync.AddonsReconciler DEBUG Rectifying state for addon Popup Blocker Ultimate (version=9.5, id={60B7679C-BED9-11E5-998D-8526BB8E7F8B}) 1515423576464 Sync.AddonsReconciler DEBUG Rectifying state for addon Adblock Plus (version=3.0.2, id={d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}) 1515423576464 Sync.AddonsReconciler DEBUG Rectifying state for addon Cisco WebEx Extension (version=1.0.13, id=ciscowebexstart1@cisco.com) 1515423576464 Sync.AddonsReconciler DEBUG Rectifying state for addon 1Password: Password Manager and Secure Wallet (version=4.6.12.90, id=onepassword4@agilebits.com) 1515423576464 Sync.AddonsReconciler DEBUG Rectifying state for addon Strict Pop-up Blocker (version=0.6, id=jid1-P34HaABBBpOerQ@jetpack) 1515423576464 Sync.AddonsReconciler DEBUG Rectifying state for addon MEGA (version=3.22.5, id=firefox@mega.co.nz) 1515423576464 Sync.AddonsReconciler DEBUG Rectifying state for addon Light (version=, id=firefox-compact-light@mozilla.org@personas.mozilla.org) 1515423576464 Sync.AddonsReconciler DEBUG Rectifying state for addon Dark (version=, id=firefox-compact-dark@mozilla.org@personas.mozilla.org) 1515423576464 Sync.AddonsReconciler DEBUG Rectifying state for addon OpenH264 Video Codec provided by Cisco Systems, Inc. (version=1.7.1, id=gmp-gmpopenh264) 1515423576464 Sync.AddonsReconciler DEBUG Rectifying state for addon Widevine Content Decryption Module provided by Google Inc. (version=1.4.8.1008, id=gmp-widevinecdm) 1515423576464 Sync.AddonsReconciler DEBUG Rectifying state for addon Shockwave Flash (version=28.0.0.126, id=Shockwave FlashShockwave Flash 28.0 r0) 1515423576465 Sync.AddonsReconciler INFO Saving reconciler state to file: addonsreconciler 1515423576468 Sync.Engine.Addons INFO 0 outgoing items pre-reconciliation 1515423576469 Sync.Engine.Addons INFO Records: 0 applied, 0 successfully, 0 failed to apply, 0 newly failed to apply, 0 reconciled.

I have two Macs, but running Firefox 57.0.1 (64-bit) and the primary Mac shows Last sync: December 31. I believe this is why none of my new Bookmarks (added after December 31st) aren't syncing on the secondary Mac. how can I correct this so that when I click on the rotary arrows on the primary Mac, the changes on it are pushed up to the server? I attached partial text from about:sync-log below: 1515421586109 Sync.LogManager DEBUG Flushing file log 1515421586117 Sync.LogManager DEBUG Log cleanup threshold time: 1514557586117 1515421586224 Sync.LogManager DEBUG Done deleting files. 1515423575879 Sync.Service DEBUG User-Agent: Firefox/57.0.1 (Intel Mac OS X 10.13) FxSync/1.59.0.20171128222554.desktop 1515423575879 Sync.Service INFO Starting sync at 2018-01-08 08:59:35 in browser session t0hfuMSflUvJ 1515423575880 Sync.SyncScheduler DEBUG Clearing sync triggers and the global score. 1515423575880 Sync.Telemetry TRACE observed weave:service:sync:start 1515423575882 Sync.Status INFO Resetting Status. 1515423575882 Sync.Status DEBUG Status.service: error.sync.failed_partial => success.status_ok 1515423575883 Sync.BrowserIDManager DEBUG _ensureValidToken already has one 1515423576210 Sync.AsyncResource DEBUG mesg: GET success 200 https://sync-562-us-west-2.sync.services.mozilla.com/1.5/87607314/info/collections 1515423576210 Sync.AsyncResource DEBUG GET success 200 https://sync-562-us-west-2.sync.services.mozilla.com/1.5/87607314/info/collections 1515423576211 Sync.Service DEBUG Fetching server configuration: https://sync-562-us-west-2.sync.services.mozilla.com/1.5/87607314/info/configuration 1515423576211 Sync.BrowserIDManager DEBUG _ensureValidToken already has one 1515423576315 Sync.AsyncResource DEBUG mesg: GET success 200 https://sync-562-us-west-2.sync.services.mozilla.com/1.5/87607314/info/configuration 1515423576315 Sync.AsyncResource DEBUG GET success 200 https://sync-562-us-west-2.sync.services.mozilla.com/1.5/87607314/info/configuration 1515423576315 Sync.Service DEBUG Fetching global metadata record 1515423576315 Sync.Service DEBUG Weave Version: 1.59.0 Local Storage: 5 Remote Storage: 5 1515423576315 Sync.Service DEBUG Fetching and verifying -- or generating -- symmetric keys. 1515423576315 Sync.Service INFO Testing info/collections: {"passwords":1515420829.34,"tabs":1515421522.14,"clients":1515420828.92,"crypto":1514471126.81,"meta":1515418344.46,"prefs":1515172295.01,"bookmarks":1515192128.91,"addons":1514497888.77} 1515423576315 Sync.CollectionKeyManager INFO Testing for updateNeeded. Last modified: 1514471126.81 1515423576315 Sync.Synchronizer DEBUG Refreshing client list. 1515423576315 Sync.Telemetry TRACE observed weave:engine:sync:start clients 1515423576316 Sync.Engine.Clients INFO 0 outgoing items pre-reconciliation 1515423576318 Sync.BrowserIDManager DEBUG _ensureValidToken already has one 1515423576425 Sync.Collection DEBUG mesg: GET success 200 https://sync-562-us-west-2.sync.services.mozilla.com/1.5/87607314/storage/clients?full=1&limit=1000 1515423576425 Sync.Collection DEBUG GET success 200 https://sync-562-us-west-2.sync.services.mozilla.com/1.5/87607314/storage/clients?full=1&limit=1000 1515423576430 Sync.Engine.Clients INFO Records: 0 applied, 0 successfully, 0 failed to apply, 0 newly failed to apply, 4 reconciled. 1515423576430 Sync.Telemetry TRACE observed weave:engine:sync:applied clients 1515423576430 Sync.Engine.Clients INFO Hiding stale client L8HuT5VeiW1z - in known stale clients list 1515423576433 Sync.Telemetry TRACE observed weave:engine:sync:finish clients 1515423576433 Sync.Synchronizer INFO Updating enabled engines: 3 clients. 1515423576435 Sync.Synchronizer INFO Syncing all enabled engines. 1515423576435 Sync.Telemetry TRACE observed weave:engine:sync:start prefs 1515423576436 Sync.Engine.Prefs INFO 0 outgoing items pre-reconciliation 1515423576436 Sync.Engine.Prefs INFO Records: 0 applied, 0 successfully, 0 failed to apply, 0 newly failed to apply, 0 reconciled. 1515423576436 Sync.Telemetry TRACE observed weave:engine:sync:applied prefs 1515423576436 Sync.Telemetry TRACE observed weave:engine:sync:finish prefs 1515423576437 Sync.Telemetry TRACE observed weave:engine:sync:start passwords 1515423576437 Sync.Engine.Passwords INFO 0 outgoing items pre-reconciliation 1515423576438 Sync.Engine.Passwords INFO Records: 0 applied, 0 successfully, 0 failed to apply, 0 newly failed to apply, 0 reconciled. 1515423576438 Sync.Telemetry TRACE observed weave:engine:sync:applied passwords 1515423576439 Sync.Telemetry TRACE observed weave:engine:sync:finish passwords 1515423576439 Sync.Telemetry TRACE observed weave:engine:sync:start tabs 1515423576439 Sync.Engine.Tabs INFO 0 outgoing items pre-reconciliation 1515423576439 Sync.Engine.Tabs INFO Records: 0 applied, 0 successfully, 0 failed to apply, 0 newly failed to apply, 0 reconciled. 1515423576440 Sync.Telemetry TRACE observed weave:engine:sync:applied tabs 1515423576440 Sync.Telemetry TRACE observed weave:engine:sync:finish tabs 1515423576440 Sync.Telemetry TRACE observed weave:engine:sync:start bookmarks 1515423576440 Sync.Engine.Bookmarks DEBUG First sync, uploading all items 1515423576459 BookmarkSyncUtils DEBUG pushChanges: Processed change records: {"skipped":0,"updated":0,"tombstones":0} 1515423576460 Sync.Status DEBUG Status for engine bookmarks: error.engine.reason.unknown_fail 1515423576460 Sync.Status DEBUG Status.service: success.status_ok => error.sync.failed_partial 1515423576460 Sync.ErrorHandler DEBUG bookmarks failed: Error: Duplicate entry for unfiled in changeset (resource://gre/modules/PlacesSyncUtils.jsm:1970:11) JS Stack trace: addRowToChangeRecords@PlacesSyncUtils.jsm:1970:11 < pullSyncChanges@PlacesSyncUtils.jsm:2022:5 1515423576460 Sync.Telemetry TRACE observed weave:engine:sync:error bookmarks 1515423576460 Sync.Telemetry TRACE observed weave:engine:sync:start addons 1515423576461 Sync.Engine.Addons DEBUG Refreshing reconciler state 1515423576461 Sync.AddonsReconciler INFO Refreshing global state from AddonManager. 1515423576463 Sync.AddonsReconciler DEBUG Rectifying state for addon Add-on Compatibility Reporter (version=2.2.4, id=compatibility@addons.mozilla.org) 1515423576463 Sync.AddonsReconciler DEBUG Rectifying state for addon Multi-process staged rollout (version=3.05, id=e10srollout@mozilla.org) 1515423576463 Sync.AddonsReconciler DEBUG Rectifying state for addon Pocket (version=1.0.5, id=firefox@getpocket.com) 1515423576463 Sync.AddonsReconciler DEBUG Rectifying state for addon Web Compat (version=1.1, id=webcompat@mozilla.org) 1515423576463 Sync.AddonsReconciler DEBUG Rectifying state for addon Application Update Service Helper (version=2.0, id=aushelper@mozilla.org) 1515423576463 Sync.AddonsReconciler DEBUG Rectifying state for addon Firefox Screenshots (version=19.2.0, id=screenshots@mozilla.org) 1515423576463 Sync.AddonsReconciler DEBUG Rectifying state for addon Shield Recipe Client (version=76.1, id=shield-recipe-client@mozilla.org) 1515423576463 Sync.AddonsReconciler DEBUG Rectifying state for addon Activity Stream (version=2017.11.07.1100-7f4e3634, id=activity-stream@mozilla.org) 1515423576463 Sync.AddonsReconciler DEBUG Rectifying state for addon Photon onboarding (version=1.0, id=onboarding@mozilla.org) 1515423576463 Sync.AddonsReconciler DEBUG Rectifying state for addon Form Autofill (version=1.0, id=formautofill@mozilla.org) 1515423576464 Sync.AddonsReconciler DEBUG Rectifying state for addon Follow-on Search Telemetry (version=0.9.6, id=followonsearch@mozilla.com) 1515423576464 Sync.AddonsReconciler DEBUG Rectifying state for addon Default (version=57.0.1, id={972ce4c6-7e08-4474-a285-3208198ce6fd}) 1515423576464 Sync.AddonsReconciler DEBUG Rectifying state for addon Popup Blocker Ultimate (version=9.5, id={60B7679C-BED9-11E5-998D-8526BB8E7F8B}) 1515423576464 Sync.AddonsReconciler DEBUG Rectifying state for addon Adblock Plus (version=3.0.2, id={d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}) 1515423576464 Sync.AddonsReconciler DEBUG Rectifying state for addon Cisco WebEx Extension (version=1.0.13, id=ciscowebexstart1@cisco.com) 1515423576464 Sync.AddonsReconciler DEBUG Rectifying state for addon 1Password: Password Manager and Secure Wallet (version=4.6.12.90, id=onepassword4@agilebits.com) 1515423576464 Sync.AddonsReconciler DEBUG Rectifying state for addon Strict Pop-up Blocker (version=0.6, id=jid1-P34HaABBBpOerQ@jetpack) 1515423576464 Sync.AddonsReconciler DEBUG Rectifying state for addon MEGA (version=3.22.5, id=firefox@mega.co.nz) 1515423576464 Sync.AddonsReconciler DEBUG Rectifying state for addon Light (version=, id=firefox-compact-light@mozilla.org@personas.mozilla.org) 1515423576464 Sync.AddonsReconciler DEBUG Rectifying state for addon Dark (version=, id=firefox-compact-dark@mozilla.org@personas.mozilla.org) 1515423576464 Sync.AddonsReconciler DEBUG Rectifying state for addon OpenH264 Video Codec provided by Cisco Systems, Inc. (version=1.7.1, id=gmp-gmpopenh264) 1515423576464 Sync.AddonsReconciler DEBUG Rectifying state for addon Widevine Content Decryption Module provided by Google Inc. (version=1.4.8.1008, id=gmp-widevinecdm) 1515423576464 Sync.AddonsReconciler DEBUG Rectifying state for addon Shockwave Flash (version=28.0.0.126, id=Shockwave FlashShockwave Flash 28.0 r0) 1515423576465 Sync.AddonsReconciler INFO Saving reconciler state to file: addonsreconciler 1515423576468 Sync.Engine.Addons INFO 0 outgoing items pre-reconciliation 1515423576469 Sync.Engine.Addons INFO Records: 0 applied, 0 successfully, 0 failed to apply, 0 newly failed to apply, 0 reconciled.

Izabrano rješenje

Yes, that looks like a problem with the bookmarks.

  • 1515423576460 Sync.Status DEBUG Status for engine bookmarks: error.engine.reason.unknown_fail

You can check for problems with the places.sqlite database (bookmarks and history) in the Firefox profile folder.

  • use "Verify Integrity" on the "Help -> Troubleshooting Information" (about:support) page

See also:

If "Verify Integrity" on the "Help -> Troubleshooting Information" (about:support) page can't repair the places.sqlite database then remove all places.sqlite files in the Firefox profile folder with Firefox closed to make Firefox rebuild the places.sqlite database from the most recent JSON backup in the bookmarkbackups folder.

You can use the button on the "Help -> Troubleshooting Information" (about:support) page to go to the current Firefox profile folder or use the about:profiles page.

Pročitaj ovaj odgovor u kontekstu 👍 1

Svi odgovori (2)

more options

Odabrano rješenje

Yes, that looks like a problem with the bookmarks.

  • 1515423576460 Sync.Status DEBUG Status for engine bookmarks: error.engine.reason.unknown_fail

You can check for problems with the places.sqlite database (bookmarks and history) in the Firefox profile folder.

  • use "Verify Integrity" on the "Help -> Troubleshooting Information" (about:support) page

See also:

If "Verify Integrity" on the "Help -> Troubleshooting Information" (about:support) page can't repair the places.sqlite database then remove all places.sqlite files in the Firefox profile folder with Firefox closed to make Firefox rebuild the places.sqlite database from the most recent JSON backup in the bookmarkbackups folder.

You can use the button on the "Help -> Troubleshooting Information" (about:support) page to go to the current Firefox profile folder or use the about:profiles page.

more options

I tried all of the suggested fixes that you provided for this and finally had to export the Bookmarks to HTML using xMarks, then create a new profile. Then I imported that xMarks HTML file into the new profile in order to get around the corrupt places.sqlite file. Even my Bookmark backups (json) made from the original profile wouldn't import into the new profile due to being corrupt.

Now Firefox Sync works like it is supposed to! :)

Thank you for pointing me to the path of getting this fixed.