diff --git a/.babelrc b/.babelrc
new file mode 100644
index 0000000000000000000000000000000000000000..2b7bafa5fa47672487a998df854e36347be43f58
--- /dev/null
+++ b/.babelrc
@@ -0,0 +1,3 @@
+{
+  "presets": ["@babel/preset-env", "@babel/preset-react"]
+}
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
index 0000000000000000000000000000000000000000..0cdbd5053baa592f554a6970d34509f8c6964fa6
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1,3 @@
+dist/
+config/
+coverage/
diff --git a/.eslintrc b/.eslintrc
index b8f48e4c3b0426f3960e245402a3ddc870552458..4e5af05be9a51f0f56fa8316f5dd7eee98fe5823 100644
--- a/.eslintrc
+++ b/.eslintrc
@@ -1,17 +1,26 @@
 {
-  "extends": "airbnb-base/legacy",
+  "env": {
+    "jest/globals": true
+  },
+  "extends": ["airbnb","react-app"],
   "globals": {
-    "Mirador": true,
-    "jQuery": true
+    "page": true,
+    "document": true
   },
+  "parser": "babel-eslint",
+  "plugins": ["jest"],
   "rules": {
-    "no-param-reassign": [
-      2, {
-        "props": true,
-        "ignorePropertyModificationsFor": [
-          "$"
-        ]
+    "no-console": "off",
+    "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }],
+    "require-jsdoc": ["error", {
+      "require": {
+        "FunctionDeclaration": true,
+        "MethodDefinition": true,
+        "ClassDeclaration": true,
+        "ArrowFunctionExpression": true,
+        "FunctionExpression": true
       }
-    ]
+    }],
+    "react/prefer-stateless-function": "off"
   }
 }
diff --git a/.gitignore b/.gitignore
index 70eb458983ac168d5f566e6ce8677c2b89607f5f..e7275d549b84616856341947282a2b97a73beb97 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,18 +1,4 @@
-.grunt/
-_SpecRunner.html
-bkp
-css/discovery.css
-css/mirador.css
-css/jquery-ui-scoped.css
-dev.html
-discovery.html
-js/discovery
-node_modules/
-npm-debug.log
+dist/
 coverage/
-data/ecodices
-data/BnF
-data/Harvard
-build/
-.idea/
-bower_components/
+node_modules/
+package-lock.json
diff --git a/.jshintrc b/.jshintrc
deleted file mode 100644
index 1cac5a437400d873eb8bc5adf57795ef80eace29..0000000000000000000000000000000000000000
--- a/.jshintrc
+++ /dev/null
@@ -1,4 +0,0 @@
-{ 
-"expr":true
-}
-
diff --git a/.travis.yml b/.travis.yml
index ffe6a6071da99808e7b70e2b7b2f6cdd45becf2a..60c41eb1238dd16b1c3045decea20a032f752510 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,9 +1,5 @@
 language: node_js
-sudo: false
 node_js:
-- '5'
-- 'v6.10.3'
-before_install:
-- npm install
-script:
-- npm run travis
+  - 'node'
+before_script:
+  - npm install
diff --git a/Gruntfile.js b/Gruntfile.js
deleted file mode 100644
index bafe2c97d717ee25886f20268a5ff9e9834cfcd4..0000000000000000000000000000000000000000
--- a/Gruntfile.js
+++ /dev/null
@@ -1,315 +0,0 @@
-module.exports = function(grunt) {
-
-  // ----------
-  grunt.loadNpmTasks('grunt-contrib-concat');
-  grunt.loadNpmTasks('grunt-contrib-jshint');
-  grunt.loadNpmTasks("gruntify-eslint");
-  grunt.loadNpmTasks('grunt-contrib-uglify');
-  grunt.loadNpmTasks('grunt-contrib-connect');
-  grunt.loadNpmTasks('grunt-contrib-watch');
-  grunt.loadNpmTasks('grunt-contrib-clean');
-  grunt.loadNpmTasks('grunt-git-describe');
-  grunt.loadNpmTasks('grunt-contrib-less');
-  grunt.loadNpmTasks('grunt-contrib-cssmin');
-  grunt.loadNpmTasks('grunt-contrib-copy');
-  grunt.loadNpmTasks('grunt-githooks');
-  grunt.loadNpmTasks('grunt-css-selectors');
-
-  // ----------
-  var distribution = 'build/mirador/mirador.js',
-  minified = 'build/mirador/mirador.min.js',
-  releaseRoot = '../site-build/built-mirador/',
-
-  // libraries/plugins
-  vendors = [
-    'node_modules/jquery/dist/jquery.min.js',
-    'node_modules/jquery-migrate/dist/jquery-migrate.min.js',
-    'node_modules/jquery-ui-dist/jquery-ui.min.js',
-    'node_modules/bootstrap/js/modal.js',
-    'node_modules/bootstrap/js/transition.js',
-    'node_modules/bootbox/bootbox.js',
-    'node_modules/jquery.scrollto/jquery.scrollTo.min.js',
-    'node_modules/jstree/dist/jstree.min.js',
-    'node_modules/qtip2/dist/jquery.qtip.min.js',
-    'node_modules/javascript-state-machine/state-machine.min.js',
-    'node_modules/tinymce/tinymce.min.js',
-    'node_modules/handlebars/dist/handlebars.js',
-    'node_modules/openseadragon/build/openseadragon/openseadragon.js',
-    'node_modules/d3/d3.min.js',
-    'node_modules/jquery-plugin/dist/ba-tiny-pubsub.js',
-    'node_modules/urijs/src/URI.min.js',
-    'node_modules/mousetrap/mousetrap.min.js',
-    'js/lib/isfahan.js',
-    'node_modules/paper/dist/paper-core.min.js',
-    'node_modules/spectrum-colorpicker/spectrum.js',
-    'node_modules/i18next/i18next.min.js',
-    'node_modules/i18next-browser-languagedetector/i18nextBrowserLanguageDetector.min.js',
-    'node_modules/i18next-xhr-backend/i18nextXHRBackend.min.js',
-    'node_modules/simple-pagination.js/jquery.simplePagination.js',
-    'js/lib/modernizr.custom.js',
-    'node_modules/sanitize-html/dist/sanitize-html.min.js',
-    'node_modules/iiif-evented-canvas/dist/iiif-evented-canvas.umd.min.js',
-    'node_modules/iiif-layout-functions/dist/iiif-layout-functions.umd.min.js',
-    'node_modules/select2/dist/js/select2.full.min.js'
-  ],
-
-  // source files
-  sources = [
-    'js/src/mirador.js',
-    'js/src/utils/handlebars.js',
-    'js/src/*.js',
-    'js/src/viewer/*.js',
-    'js/src/manifests/*.js',
-    'js/src/annotations/*.js',
-    'js/src/workspaces/*.js',
-    'js/src/widgets/*.js',
-    'js/src/utils/*.js'
-  ];
-
-  // ----------
-  // Project configuration.
-  grunt.initConfig({
-    pkg: grunt.file.readJSON('package.json'),
-
-    clean: {
-      build: ['build'],
-      release: {
-        src: [releaseRoot],
-        options: {
-          force: true
-        }
-      }
-    },
-
-    concat: {
-      js: {
-        options: {
-          banner: '//! <%= pkg.name %> <%= pkg.version %>\n' + '//! Built on <%= grunt.template.today("yyyy-mm-dd") %>\n',
-          process: true
-        },
-        src:  [ "<banner>" ].concat(vendors, sources),
-        dest: distribution
-      },
-      css: {
-        src: [
-          'css/bootstrap.modals.css',
-          'css/normalize.css',
-          'node_modules/font-awesome/css/font-awesome.min.css',
-          'css/jquery-ui-scoped.css',
-          'node_modules/jstree/dist/themes/default/style.min.css',
-          'css/collection-tree-mod.css',
-          'node_modules/qtip2/dist/jquery.qtip.min.css',
-          'node_modules/spectrum-colorpicker/spectrum.css',
-          'node_modules/select2/dist/css/select2.min.css',
-          'css/mirador.css',
-          'css/material-icons.css',
-          'node_modules/simple-pagination.js/simplePagination.css'
-        ],
-        dest: 'build/mirador/css/mirador-combined.css'
-      }
-    },
-
-    less: {
-      compile: {
-        files: {
-          'css/mirador.css': 'css/less/main.less'
-        }
-      }
-    },
-
-    cssmin: {
-      minify: {
-        src: 'build/mirador/css/mirador-combined.css',
-        dest: 'build/mirador/css/mirador-combined.min.css'
-      }
-    },
-
-    uglify: {
-      options: {
-        preserveComments: 'some',
-        mangle: false,
-        sourceMap: true
-      },
-      mirador: {
-        src: [vendors, sources],
-        dest: minified
-      }
-    },
-
-    copy: {
-      main: {
-        files: [{
-          expand: true,
-          src: 'css/images/**',
-          dest: 'build/mirador/'
-        }, {
-          expand: true,
-          cwd: 'node_modules/tinymce',
-          src: 'themes/**',
-          dest: 'build/mirador'
-        }, {
-          expand: true,
-          cwd: 'node_modules/tinymce',
-          src: 'skins/**',
-          dest: 'build/mirador'
-        }, {
-          expand: true,
-          cwd: 'node_modules/tinymce',
-          src: 'plugins/**',
-          dest: 'build/mirador'
-        }, {
-          expand: true,
-          src: 'images/**',
-          dest: 'build/mirador'
-        }, {
-          expand: true,
-          cwd: 'node_modules/font-awesome',
-          src: 'fonts/*',
-          dest: 'build/mirador'
-        }, {
-          expand: true,
-          cwd: 'node_modules/material-design-icons/iconfont',
-          src: 'MaterialIcons*',
-          dest: 'build/mirador/fonts'
-        }, {
-          src: 'js/lib/parse.min.js',
-          dest: 'build/mirador/parse.min.js'
-        }, {
-          expand: true,
-          src: 'locales/**',
-          dest: 'build/mirador'
-        }]
-      }
-    },
-
-    connect: {
-      server: {
-        options: {
-          port: 8000,
-          base: '.'
-        }
-      }
-    },
-
-    watch: {
-      all: {
-        options: {
-          livereload: {
-            options: { livereload: true },
-            files: ['build/**/*']
-          }
-        },
-        files: [
-          'Gruntfile.js',
-          'js/src/*.js',
-          'js/src/*/*.js',
-          'locales/*/*.json',
-          'images/*',
-          'css/*.css',
-          'css/less/**/*.less',
-          'index.html'
-        ],
-        tasks: 'dev_build'
-      }
-    },
-
-    eslint: {
-      options: {
-        silent: true
-      },
-      src: sources
-    },
-
-    jshint: {
-      options: {
-        browser: true,
-        eqeqeq: false,
-        loopfunc: false,
-        indent: false,
-        jshintrc: '.jshintrc',
-        globals: {
-          Mirador: true
-        }
-      },
-      beforeconcat: sources
-    },
-
-    'git-describe': {
-      build: {
-        options: {
-          prop: 'gitInfo'
-        }
-      }
-    },
-
-    coveralls: {
-      options: {
-        src: 'reports/coverage/PhantomJS*/lcov.info',
-        force: 'true'
-      },
-      ci: {
-        src: 'reports/coverage/PhantomJS*/lcov.info'
-      }
-    },
-
-    css_selectors: {
-      options: {
-        mutations: [{
-          prefix: '.mirador-container'
-        }]
-      },
-      your_target: {
-        files: {
-          'css/jquery-ui-scoped.css': ['css/jquery-ui.min.css']
-        }
-      }
-    }
-  });
-
-  // ----------
-  // Copy:release task.
-  // Copies the contents of the build folder into the release folder.
-  grunt.registerTask('copy:release', function() {
-    grunt.file.recurse('build', function(abspath, rootdir, subdir, filename) {
-      var dest = releaseRoot +
-        (subdir ? subdir + '/' : '/') +
-        filename;
-
-      grunt.file.copy(abspath, dest);
-    });
-  });
-  // ----------
-  // Lint task
-  grunt.registerTask('lint', ['jshint', 'eslint']);
-
-  // ----------
-  // jQueryUI CSS task.
-  // Scopes all jQueryUI CSS selectors with '.mirador-container'.
-  grunt.registerTask('jqueryui_css', ['css_selectors']);
-
-  // ----------
-  // Build task.
-  // Cleans out the build folder and builds the code and images into it, checking lint.
-  grunt.registerTask('build', [ 'clean:build', 'git-describe', 'lint', 'less', 'jqueryui_css', 'concat', 'uglify', 'cssmin', 'copy']);
-
-  // ----------
-  // Dev Build task.
-  // Build, but skip the time-consuming and obscurantist minification and uglification.
-  grunt.registerTask('dev_build', [ 'clean:build', 'git-describe', 'lint', 'less', 'jqueryui_css', 'concat', 'copy']);
-
-  // ----------
-  // Default task.
-  // Does a normal build.
-  grunt.registerTask('default', ['build']);
-
-  // ----------
-  // Connect task.
-  // Runs server at specified port
-  grunt.registerTask('serve', ['dev_build', 'connect:server', 'watch']);
-
-  // ----------
-  // Runs this on travis.
-  grunt.registerTask('ci', [
-                     'lint'
-  ]);
-};
diff --git a/LICENSE.md b/LICENSE
similarity index 73%
rename from LICENSE.md
rename to LICENSE
index b6d88d4ab5e0df61570e518aa437e35f44fd45e7..b108f546f889bb2445d813a1f6ed6aa306860421 100644
--- a/LICENSE.md
+++ b/LICENSE
@@ -1,10 +1,10 @@
-Copyright © 2014 The Board of Trustees of the Leland Stanford Junior University
+Copyright 2018 The Board of Trustees of the Leland Stanford Junior University
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at
 
-[http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)
+  http://www.apache.org/licenses/LICENSE-2.0
 
 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
diff --git a/README.md b/README.md
index 091b80ee92f20b4abca6219606a0861bfdb42a54..3081cc045533e031045332c39568d5a1f6ef1e82 100644
--- a/README.md
+++ b/README.md
@@ -1,26 +1,64 @@
-[![Build Status](https://travis-ci.org/ProjectMirador/mirador.svg?branch=master)](https://travis-ci.org/ProjectMirador/mirador?branch=master)
-[![Stories in Ready](https://badge.waffle.io/ProjectMirador/mirador.svg?label=ready&title=Ready)](http://waffle.io/iiif/mirador)
+## Running Mirador locally
 
-# Mirador
-![mirador banner](https://projectmirador.github.io/mirador/img/banner.jpg)
-**Mirador is a multi-repository, configurable, extensible, and easy-to-integrate viewer and annotation creation and comparison environment for IIIF resources, ranging from deep-zooming artwork, to complex manuscript objects. It provides a tiling windowed environment for comparing multiple image-based resources, synchronised structural and visual navigation of content using openSeadragon, Open Annotation compliant annotation creation and viewing on deep-zoomable canvases, metadata display, bookreading, and bookmarking.**
+1. Run `npm install` to install the dependencies.
 
-### [See a Demo](http://projectmirador.org/demo/)
-### [Getting Started](http://projectmirador.org/docs/docs/getting-started.html)
+## Starting the project
 
-### Run in Development
-Mirador uses [Node.js](https://nodejs.org/) and a build system to assemble, test, and manage the development resources. If you have never used these tools before, you may need to install them.
+```sh
+$ npm start
+```
 
- 1. Install [Node.js](https://nodejs.org/)
- 2. Install the Grunt command line runner i.e. `npm install -g grunt-cli`
- 1. Clone the Mirador repository
- 1. Change into the Mirador directory
- 1. Install all dependencies with `npm install`. Run `npm start`.
- 
-### Run Tests
-`npm test`
+Then navigate to [http://127.0.0.1:4444/__tests__/integration/mirador/](http://127.0.0.1:4444/__tests__/integration/mirador/)
 
-For more information, see the [Docs](http://projectmirador.org/docs/docs/getting-started.html), submit an [issue](https://github.com/projectmirador/mirador/issues), or ask on [Slack](http://bit.ly/iiif-slack).
+### Instantiating Mirador
 
-### Project Diagnostics
- [![Coverage Status](https://coveralls.io/repos/github/ProjectMirador/mirador/badge.svg?branch=master&upToDate=true)](https://coveralls.io/github/ProjectMirador/mirador?branch=master&upToDate=true)
+```javascript
+var miradorInstance = Mirador.viewer({
+  id: 'mirador' // id selector where Mirador should be instantiated
+});
+
+> miradorInstance
+{ actions, store }
+```
+
+### Example Action
+
+Add a window:
+```javascript
+store.dispatch(actions.addWindow());
+```
+
+To focus a window run:
+
+```javascript
+store.dispatch(actions.focusWindow('window-1'))
+```
+
+### Check current state
+
+```javascript
+store.getState()
+```
+
+## Running the tests
+
+```sh
+$ npm test # For headless CI=true npm test
+```
+
+or to continually watch the source files
+
+```sh
+$ npm run test:watch
+```
+
+## Linting the project
+
+```sh
+$ npm run lint
+```
+
+## Debugging
+Useful browser extensions for debugging/development purposes
+ - [React DevTools](https://github.com/facebook/react-devtools)
+ - [Redux DevTools](https://github.com/zalmoxisus/redux-devtools-extension)
diff --git a/__tests__/fixtures/2.json b/__tests__/fixtures/2.json
new file mode 100644
index 0000000000000000000000000000000000000000..b62a7061aaacec6c3117906d07b1ac7688a9c18c
--- /dev/null
+++ b/__tests__/fixtures/2.json
@@ -0,0 +1,41 @@
+{
+  "@context": "http://iiif.io/api/presentation/2/context.json", 
+  "@id": "http://iiif.io/api/presentation/2.0/example/fixtures/2/manifest.json", 
+  "@type": "sc:Manifest", 
+  "label": "Test 2 Manifest: Metadata Pairs", 
+  "metadata": [
+    {
+      "label": "date", 
+      "value": "some date"
+    }
+  ], 
+  "within": "http://iiif.io/api/presentation/2.0/example/fixtures/collection.json", 
+  "sequences": [
+    {
+      "@type": "sc:Sequence", 
+      "label": "Test 2 Sequence 1", 
+      "canvases": [
+        {
+          "@id": "http://iiif.io/api/presentation/2.0/example/fixtures/canvas/2/c1.json", 
+          "@type": "sc:Canvas", 
+          "label": "Test 2 Canvas: 1", 
+          "height": 1800, 
+          "width": 1200, 
+          "images": [
+            {
+              "@type": "oa:Annotation", 
+              "motivation": "sc:painting", 
+              "resource": {
+                "@id": "http://iiif.io/api/presentation/2.0/example/fixtures/resources/page1-full.png", 
+                "@type": "dctypes:Image", 
+                "height": 1800, 
+                "width": 1200
+              }, 
+              "on": "http://iiif.io/api/presentation/2.0/example/fixtures/canvas/2/c1.json"
+            }
+          ]
+        }
+      ]
+    }
+  ]
+}
diff --git a/__tests__/fixtures/24.json b/__tests__/fixtures/24.json
new file mode 100644
index 0000000000000000000000000000000000000000..d307ecca6584a952a8e97722b20ef9a35c85c6df
--- /dev/null
+++ b/__tests__/fixtures/24.json
@@ -0,0 +1,41 @@
+{
+  "@context": "http://iiif.io/api/presentation/2/context.json", 
+  "@id": "http://iiif.io/api/presentation/2.0/example/fixtures/24/manifest.json", 
+  "@type": "sc:Manifest", 
+  "label": "Test 24 Manifest: Image with IIIF Service - adapted with real image", 
+  "within": "http://iiif.io/api/presentation/2.0/example/fixtures/collection.json", 
+  "sequences": [
+    {
+      "@type": "sc:Sequence", 
+      "label": "Test 24 Sequence 1", 
+      "canvases": [
+        {
+          "@id": "http://iiif.io/api/presentation/2.0/example/fixtures/canvas/24/c1.json", 
+          "@type": "sc:Canvas", 
+          "label": "Test 24 Canvas: 1", 
+          "height": 1800, 
+          "width": 1200, 
+          "images": [
+            {
+              "@type": "oa:Annotation", 
+              "motivation": "sc:painting", 
+              "resource": {
+                "@id": "https://stacks.stanford.edu/image/iiif/hg676jb4964%2F0380_796-44/full/full/0/default.jpg", 
+                "@type": "dctypes:Image", 
+                "format": "image/jpeg", 
+                "height": 3820, 
+                "width": 5426, 
+                "service": {
+                  "@context": "http://iiif.io/api/image/2/context.json", 
+                  "@id": "https://stacks.stanford.edu/image/iiif/hg676jb4964%2F0380_796-44", 
+                  "profile": "http://iiif.io/api/image/2/level2.json"
+                }
+              }, 
+              "on": "http://iiif.io/api/presentation/2.0/example/fixtures/canvas/24/c1.json"
+            }
+          ]
+        }
+      ]
+    }
+  ]
+}
diff --git a/__tests__/integration/mirador/basic.test.js b/__tests__/integration/mirador/basic.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..421aa78d4cebe045b39d12569f2b1573f4ee0ecc
--- /dev/null
+++ b/__tests__/integration/mirador/basic.test.js
@@ -0,0 +1,21 @@
+describe('Basic end to end Mirador', () => {
+  beforeAll(async () => {
+    await page.goto('http://127.0.0.1:4488/__tests__/integration/mirador/');
+  });
+  it('has the correct page title', async () => {
+    const title = await page.title();
+    expect(title).toBe('Mirador');
+  });
+  it('loads a manifest and displays it', async () => {
+    await expect(page).toFill('#manifestURL', 'https://purl.stanford.edu/sn904cj3429/iiif/manifest');
+    await expect(page).toClick('#fetchBtn');
+    // TODO: Refactor the app so we get rid of the wait
+    await page.waitFor(1000);
+    await expect(page).toMatchElement('li', { text: 'https://purl.stanford.edu/sn904cj3429/iiif/manifest' });
+    await expect(page).toMatchElement(
+      'h3',
+      "Peter's San Francisco Locator. The Birds-Eye-View Map of the Exposition City. Published by Locator Publishing Co",
+    );
+    await expect(page).toMatchElement('div', /Color/);
+  });
+});
diff --git a/__tests__/integration/mirador/config_updating_from_instance.test.js b/__tests__/integration/mirador/config_updating_from_instance.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..6190e905366e9b79e6a1db58045b0307d6c52667
--- /dev/null
+++ b/__tests__/integration/mirador/config_updating_from_instance.test.js
@@ -0,0 +1,17 @@
+/* global miradorInstance */
+
+describe('Config updating from instance', () => {
+  beforeAll(async () => {
+    await page.goto('http://127.0.0.1:4488/__tests__/integration/mirador/');
+  });
+  it('can modify the config via api', async () => {
+    await page.evaluate(() => {
+      const a = miradorInstance.actions.updateConfig({ foo: 'bat' });
+      miradorInstance.store.dispatch(a);
+    });
+    const config = await page.evaluate(() => (
+      miradorInstance.store.getState().config
+    ));
+    await expect(config.foo).toBe('bat');
+  });
+});
diff --git a/__tests__/integration/mirador/index.html b/__tests__/integration/mirador/index.html
new file mode 100644
index 0000000000000000000000000000000000000000..baad43c8443d36f967984cbaf95e85cd4d12b662
--- /dev/null
+++ b/__tests__/integration/mirador/index.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+    <meta name="theme-color" content="#000000">
+    <title>Mirador</title>
+  </head>
+  <body>
+    <div id="mirador"></div>
+    <script>document.write("<script type='text/javascript' src='../../../dist/mirador.min.js?v=" + Date.now() + "'><\/script>");</script>
+    <script type="text/javascript">
+     var miradorInstance = Mirador.viewer({
+       id: 'mirador'
+     });
+    </script>
+  </body>
+</html>
diff --git a/__tests__/integration/mirador/plugins.html b/__tests__/integration/mirador/plugins.html
new file mode 100644
index 0000000000000000000000000000000000000000..d19bb7095af9a39367083da7f555e913b8c0ee13
--- /dev/null
+++ b/__tests__/integration/mirador/plugins.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+    <meta name="theme-color" content="#000000">
+    <title>Mirador</title>
+  </head>
+  <body>
+    <div id="mirador"></div>
+    <script src="../../../node_modules/react/umd/react.development.js"></script>
+    <script src="../../../node_modules/react-dom/umd/react-dom.development.js"></script>
+    <script>document.write("<script type='text/javascript' src='../../../dist/mirador.min.js?v=" + Date.now() + "'><\/script>");</script>
+    <script type="text/javascript">
+      class MiradorShareButton extends React.Component {
+        constructor(props) {
+          super(props);
+      
+          this.handleClick = this.handleClick.bind(this);
+        }
+        handleClick() {
+          alert('Share this stuff')
+        }
+        render() {
+          return React.createElement('button', { className: 'share', onClick: this.handleClick}, 'Share');
+        }
+      }
+      const miradorShareButton = {
+        name: 'miradorShareButton',
+        component: MiradorShareButton,
+        parent: 'WindowTopBarButtons',
+      }
+      Mirador.plugins.miradorShareButton = miradorShareButton;
+      class MiradorRuler extends React.Component {
+        constructor(props) {
+          super(props);
+          this._isMounted = false;
+          this.state = {
+            zooming: false,
+          }
+          this.zoomToColor = this.zoomToColor.bind(this);
+        }
+        componentDidMount() {
+          this._isMounted = true;
+          const that = this;
+          this.props.pluginParent().viewer.addHandler('zoom', (e) => {
+            if (that._isMounted) {
+              that.setState({
+                zooming: true
+              })
+            }
+          })
+          // Super hacky don't do this for real
+          function resetStyle() {
+            if (that._isMounted) {
+              that.setState({
+                zooming: false
+              })
+            }
+            setTimeout(resetStyle, 750)
+          }
+          resetStyle();
+        }
+        componentWillUnmount() {
+          this._isMounted = false;
+          if (this.props.pluginParent()) {
+            this.props.pluginParent().viewer.removeHandler('zoom');
+          }
+        }
+        zoomToColor(zooming) {
+          if (zooming) {
+            return 'red'
+          }
+          return 'black'
+        }
+        render() {
+          return React.createElement('div', {className: 'mirador-ruler', style: { position: 'absolute', bottom: 0, color: this.zoomToColor(this.state.zooming)}}, 'I am a ruler')
+        }
+      }
+      const miradorRuler = {
+        name: 'miradorRuler',
+        component: MiradorRuler,
+        parent: 'OpenSeadragonViewer',
+        mapStateToProps: ({ manifests }, props) => {
+          return {
+            manifests // return the part of the state I need here.
+          }
+        },
+        mapDispatchToProps: (dispatch) => {
+          return {}
+        },
+      }
+      Mirador.plugins.miradorRuler = miradorRuler;
+      var miradorInstance = Mirador.viewer({
+        id: 'mirador',
+        plugins: ['miradorShareButton', 'miradorRuler']
+      });
+    </script>
+  </body>
+</html>
diff --git a/__tests__/integration/mirador/plugins.test.js b/__tests__/integration/mirador/plugins.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..5c3e94634e4e9c79da7fbff2e60675fe68bde749
--- /dev/null
+++ b/__tests__/integration/mirador/plugins.test.js
@@ -0,0 +1,21 @@
+describe('Mirador plugin use', () => {
+  beforeAll(async () => {
+    await page.goto('http://127.0.0.1:4488/__tests__/integration/mirador/plugins.html');
+    await expect(page).toFill('#manifestURL', 'https://purl.stanford.edu/sn904cj3429/iiif/manifest');
+    await expect(page).toClick('#fetchBtn');
+    // TODO: Refactor the app so we get rid of the wait
+    await page.waitFor(1000);
+    await expect(page).toClick('li button');
+  });
+  it('displays "Share Button" plugin', async () => {
+    await expect(page).toMatchElement('button', { text: 'Share' });
+    page.on('dialog', async (dialog) => {
+      expect(dialog.message()).toBe('Share this stuff');
+      await dialog.dismiss();
+    });
+    await expect(page).toClick('button.share');
+  });
+  it('displays "Ruler" plugin', async () => {
+    await expect(page).toMatchElement('.mirador-ruler');
+  });
+});
diff --git a/__tests__/integration/mirador/window_actions.test.js b/__tests__/integration/mirador/window_actions.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..e16d8b4206dc738002ccb6c64f828c386f9bdf4b
--- /dev/null
+++ b/__tests__/integration/mirador/window_actions.test.js
@@ -0,0 +1,15 @@
+describe('Window actions', () => {
+  beforeAll(async () => {
+    await page.goto('http://127.0.0.1:4488/__tests__/integration/mirador/');
+  });
+  it('opens a window and closes it', async () => {
+    await expect(page).toFill('#manifestURL', 'https://purl.stanford.edu/sn904cj3429/iiif/manifest');
+    await expect(page).toClick('#fetchBtn');
+    // TODO: Refactor the app so we get rid of the wait
+    await page.waitFor(1000);
+    await expect(page).toClick('li button');
+    await expect(page).toMatchElement('.mirador-window');
+    await expect(page).toClick('.mirador-window-close');
+    await expect(page).not.toMatchElement('.mirador-window');
+  });
+});
diff --git a/__tests__/integration/vanilla-js.test.js b/__tests__/integration/vanilla-js.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..e74fd045d388b8d05f90abdf623b6007a988af72
--- /dev/null
+++ b/__tests__/integration/vanilla-js.test.js
@@ -0,0 +1,17 @@
+describe('Plain JavaScript example', () => {
+  beforeAll(async () => {
+    await page.goto('http://127.0.0.1:4488/__tests__/integration/vanilla-js/');
+  });
+  it('has the correct page title', async () => {
+    const title = await page.title();
+    expect(title).toBe('Examples');
+  });
+  it('loads a manifest and displays it', async () => {
+    await expect(page).toFill('#manifestURL', 'https://purl.stanford.edu/sn904cj3429/iiif/manifest');
+    await expect(page).toClick('#fetchBtn');
+    // TODO: Refactor the app so we get rid of the wait
+    await page.waitFor(1000);
+    const manifest = await page.$eval('#exampleManifest', e => e.innerHTML);
+    await expect(manifest).toMatch(/http:\/\/iiif\.io\/api\/presentation\/2\/context\.json/);
+  });
+});
diff --git a/__tests__/integration/vanilla-js/README.md b/__tests__/integration/vanilla-js/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..abe90a01e6af8c2423709eabc5bbdbc9c349897b
--- /dev/null
+++ b/__tests__/integration/vanilla-js/README.md
@@ -0,0 +1,8 @@
+## Notes
+To load external manifests, you will need to run the example pages from a serve. One easy way to do this is to run PythonHTTPServer:
+`python -m SimpleHTTPServer`
+
+To inspect the Mirador 3 prototype in the web console with (code completion), you can refer to it as:
+`m3core`
+
+This name is found in the `minimal_redux_poc/webpack.config.js` as the value of the `library` property.
diff --git a/__tests__/integration/vanilla-js/index.html b/__tests__/integration/vanilla-js/index.html
new file mode 100644
index 0000000000000000000000000000000000000000..432e8d0558ed56ebbf57b6a1758edea77066d11d
--- /dev/null
+++ b/__tests__/integration/vanilla-js/index.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <title>Examples</title>
+    <script src="../../../dist/m3core.umd.js"></script>
+  </head>
+  <body>
+
+  <input id="manifestURL" type="text"/><button id="fetchBtn" type="submit">Fetch Manifest</button>
+  <pre id="exampleManifest">
+
+  </pre>
+
+  <script>
+    document.getElementById("fetchBtn").addEventListener("click", function(){
+      let val = document.getElementById("manifestURL").value;
+      let f = m3core.actions.fetchManifest(val);
+      m3core.store.dispatch(f);
+    });
+
+    m3core.store.subscribe(() => {
+      let contents = ''
+      let state = m3core.store.getState();
+      let manifest = state.manifests[document.getElementById("manifestURL").value];
+      switch (manifest.isFetching) {
+        case true:
+          contents = 'spinner';
+          break;
+        case false:
+          if(manifest.error){
+            contents = manifest.error.message;
+          } else {
+            contents = JSON.stringify(manifest.manifestation.__jsonld, 0, 3);
+          }
+          break;
+        default: contents = ''
+      }
+      document.getElementById("exampleManifest").innerHTML = contents;
+    });
+
+  </script>
+  </body>
+</html>
diff --git a/__tests__/src/actions/index.test.js b/__tests__/src/actions/index.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..1dd4c73127380b22a29b4a904e46290115d45955
--- /dev/null
+++ b/__tests__/src/actions/index.test.js
@@ -0,0 +1,209 @@
+import configureMockStore from 'redux-mock-store';
+import thunk from 'redux-thunk';
+
+import * as actions from '../../../src/actions/index';
+import ActionTypes from '../../../src/action-types';
+
+const middlewares = [thunk];
+const mockStore = configureMockStore(middlewares);
+
+describe('actions', () => {
+  describe('addWindow', () => {
+    it('should create a new window with merged defaults', () => {
+      const options = {
+        id: 'helloworld',
+        canvasIndex: 1,
+      };
+
+      const expectedAction = {
+        type: ActionTypes.ADD_WINDOW,
+        payload: {
+          id: 'helloworld',
+          canvasIndex: 1,
+          collectionIndex: 0,
+          manifestId: null,
+          rangeId: null,
+          xywh: [0, 0, 400, 400],
+          rotation: null,
+        },
+      };
+      expect(actions.addWindow(options)).toEqual(expectedAction);
+    });
+  });
+  describe('removeWindow', () => {
+    it('removes the window and returns windowId', () => {
+      const id = 'abc123';
+      const expectedAction = {
+        type: ActionTypes.REMOVE_WINDOW,
+        windowId: id,
+      };
+      expect(actions.removeWindow(id)).toEqual(expectedAction);
+    });
+  });
+  describe('nextCanvas', () => {
+    it('moves to the next canvas', () => {
+      const id = 'abc123';
+      const expectedAction = {
+        type: ActionTypes.NEXT_CANVAS,
+        windowId: id,
+      };
+      expect(actions.nextCanvas(id)).toEqual(expectedAction);
+    });
+  });
+  describe('previousCanvas', () => {
+    it('moves to the previous canvas', () => {
+      const id = 'abc123';
+      const expectedAction = {
+        type: ActionTypes.PREVIOUS_CANVAS,
+        windowId: id,
+      };
+      expect(actions.previousCanvas(id)).toEqual(expectedAction);
+    });
+  });
+  describe('requestManifest', () => {
+    it('requests a manifest given a url', () => {
+      const id = 'abc123';
+      const expectedAction = {
+        type: ActionTypes.REQUEST_MANIFEST,
+        manifestId: id,
+      };
+      expect(actions.requestManifest(id)).toEqual(expectedAction);
+    });
+  });
+  describe('receiveManifest', () => {
+    it('moves to the previous canvas', () => {
+      const id = 'abc123';
+      const json = {
+        id,
+        content: 'lots of metadata, canvases, and other IIIFy things',
+      };
+      const expectedAction = {
+        type: ActionTypes.RECEIVE_MANIFEST,
+        manifestId: id,
+        manifestJson: json,
+      };
+      expect(actions.receiveManifest(id, json)).toEqual(expectedAction);
+    });
+  });
+  describe('fetchManifest', () => {
+    let store = null;
+    beforeEach(() => {
+      store = mockStore({});
+    });
+    describe('success response', () => {
+      beforeEach(() => {
+        fetch.mockResponseOnce(JSON.stringify({ data: '12345' })); // eslint-disable-line no-undef
+      });
+      it('dispatches the REQUEST_MANIFEST action', () => {
+        store.dispatch(actions.fetchManifest('https://purl.stanford.edu/sn904cj3429/iiif/manifest'));
+        expect(store.getActions()).toEqual([
+          { manifestId: 'https://purl.stanford.edu/sn904cj3429/iiif/manifest', type: 'REQUEST_MANIFEST' },
+        ]);
+      });
+      it('dispatches the REQUEST_MANIFEST and then RECEIVE_MANIFEST', () => {
+        store.dispatch(actions.fetchManifest('https://purl.stanford.edu/sn904cj3429/iiif/manifest'))
+          .then(() => {
+            const expectedActions = store.getActions();
+            expect(expectedActions).toEqual([
+              { manifestId: 'https://purl.stanford.edu/sn904cj3429/iiif/manifest', type: 'REQUEST_MANIFEST' },
+              { manifestId: 'https://purl.stanford.edu/sn904cj3429/iiif/manifest', manifestJson: { data: '12345' }, type: 'RECEIVE_MANIFEST' },
+            ]);
+          });
+      });
+    });
+    describe('error response', () => {
+      it('dispatches the REQUEST_MANIFEST and then RECEIVE_MANIFEST', () => {
+        store.dispatch(actions.fetchManifest('https://purl.stanford.edu/sn904cj3429/iiif/manifest'))
+          .then(() => {
+            const expectedActions = store.getActions();
+            expect(expectedActions).toEqual([
+              { manifestId: 'https://purl.stanford.edu/sn904cj3429/iiif/manifest', type: 'REQUEST_MANIFEST' },
+              { manifestId: 'https://purl.stanford.edu/sn904cj3429/iiif/manifest', error: new Error('invalid json response body at undefined reason: Unexpected end of JSON input'), type: 'RECEIVE_MANIFEST_FAILURE' },
+            ]);
+          });
+      });
+    });
+  });
+  describe('removeManifest', () => {
+    it('removes an existing manifest', () => {
+      const expectedAction = {
+        type: ActionTypes.REMOVE_MANIFEST,
+        manifestId: 'foo',
+      };
+      expect(actions.removeManifest('foo')).toEqual(expectedAction);
+    });
+  });
+  describe('requestInfoResponse', () => {
+    it('requests an infoResponse from given a url', () => {
+      const id = 'abc123';
+      const expectedAction = {
+        type: ActionTypes.REQUEST_INFO_RESPONSE,
+        infoId: id,
+      };
+      expect(actions.requestInfoResponse(id)).toEqual(expectedAction);
+    });
+  });
+  describe('receiveInfoResponse', () => {
+    it('recieves an infoResponse', () => {
+      const id = 'abc123';
+      const json = {
+        id,
+        content: 'image information request',
+      };
+      const expectedAction = {
+        type: ActionTypes.RECEIVE_INFO_RESPONSE,
+        infoId: id,
+        infoJson: json,
+      };
+      expect(actions.receiveInfoResponse(id, json)).toEqual(expectedAction);
+    });
+  });
+  describe('fetchInfoResponse', () => {
+    let store = null;
+    beforeEach(() => {
+      store = mockStore({});
+    });
+    describe('success response', () => {
+      beforeEach(() => {
+        fetch.mockResponseOnce(JSON.stringify({ data: '12345' })); // eslint-disable-line no-undef
+      });
+      it('dispatches the REQUEST_MANIFEST action', () => {
+        store.dispatch(actions.fetchInfoResponse('https://stacks.stanford.edu/image/iiif/sn904cj3429%2F12027000/info.json'));
+        expect(store.getActions()).toEqual([
+          { infoId: 'https://stacks.stanford.edu/image/iiif/sn904cj3429%2F12027000/info.json', type: 'REQUEST_INFO_RESPONSE' },
+        ]);
+      });
+      it('dispatches the REQUEST_MANIFEST and then RECEIVE_MANIFEST', () => {
+        store.dispatch(actions.fetchInfoResponse('https://stacks.stanford.edu/image/iiif/sn904cj3429%2F12027000/info.json'))
+          .then(() => {
+            const expectedActions = store.getActions();
+            expect(expectedActions).toEqual([
+              { infoId: 'https://stacks.stanford.edu/image/iiif/sn904cj3429%2F12027000/info.json', type: 'REQUEST_INFO_RESPONSE' },
+              { infoId: 'https://stacks.stanford.edu/image/iiif/sn904cj3429%2F12027000/info.json', infoJson: { data: '12345' }, type: 'RECEIVE_INFO_RESPONSE' },
+            ]);
+          });
+      });
+    });
+    describe('error response', () => {
+      it('dispatches the REQUEST_INFO_RESPONSE and then RECEIVE_INFO_RESPONSE', () => {
+        store.dispatch(actions.fetchInfoResponse('https://stacks.stanford.edu/image/iiif/sn904cj3429%2F12027000/info.json'))
+          .then(() => {
+            const expectedActions = store.getActions();
+            expect(expectedActions).toEqual([
+              { infoId: 'https://stacks.stanford.edu/image/iiif/sn904cj3429%2F12027000/info.json', type: 'REQUEST_INFO_RESPONSE' },
+              { infoId: 'https://stacks.stanford.edu/image/iiif/sn904cj3429%2F12027000/info.json', error: new Error('invalid json response body at undefined reason: Unexpected end of JSON input'), type: 'RECEIVE_INFO_RESPONSE_FAILURE' },
+            ]);
+          });
+      });
+    });
+  });
+  describe('removeInfoResponse', () => {
+    it('removes an existing infoResponse', () => {
+      const expectedAction = {
+        type: ActionTypes.REMOVE_INFO_RESPONSE,
+        infoId: 'foo',
+      };
+      expect(actions.removeInfoResponse('foo')).toEqual(expectedAction);
+    });
+  });
+});
diff --git a/__tests__/src/components/Display.test.js b/__tests__/src/components/Display.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..0ef95154d5265e706f9bf8b22d5789373d80e88a
--- /dev/null
+++ b/__tests__/src/components/Display.test.js
@@ -0,0 +1,29 @@
+import React from 'react';
+import { shallow } from 'enzyme';
+import Display from '../../../src/components/Display';
+import ManifestMetadata from '../../../src/components/ManifestMetadata';
+import fixture from '../../fixtures/2.json';
+
+describe('Display', () => {
+  it('renders without an error', () => {
+    const wrapper = shallow(<Display manifest={{}} />);
+    expect(wrapper.contains(<div className="Display"><div id="exampleManifest" className=""><ManifestMetadata manifest={{}} /></div></div>)).toBe(true);
+  });
+  it('sets class based on manifest state', () => {
+    let wrapper = shallow(<Display manifest={{ isFetching: true }} />);
+    expect(wrapper.find('.mirador-fetching').length).toBe(1);
+
+    wrapper = shallow(<Display manifest={{ error: true }} />);
+    expect(wrapper.find('.mirador-error').length).toBe(1);
+  });
+  it('displays content', () => {
+    let wrapper = shallow(<Display manifest={{ isFetching: true }} />);
+    expect(wrapper.text()).toBe('☕');
+
+    wrapper = shallow(<Display manifest={{ error: { message: 'bad things' } }} />);
+    expect(wrapper.text()).toBe('bad things');
+
+    wrapper = shallow(<Display manifest={{ json: fixture }} />);
+    expect(wrapper.find(ManifestMetadata).length).toBe(1);
+  });
+});
diff --git a/__tests__/src/components/ManifestListItem.test.js b/__tests__/src/components/ManifestListItem.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..2be1cd2218fd179df06542eefbea5ead915ca256
--- /dev/null
+++ b/__tests__/src/components/ManifestListItem.test.js
@@ -0,0 +1,19 @@
+import React from 'react';
+import { shallow } from 'enzyme';
+import { store } from '../../../src/store';
+import ManifestListItem from '../../../src/components/ManifestListItem';
+
+describe('ManifestListItem', () => {
+  it('renders without an error', () => {
+    const wrapper = shallow(<ManifestListItem manifest="http://example.com" store={store} />).dive();
+    expect(wrapper.find('li.mirador-manifest-list-item').length).toBe(1);
+    expect(wrapper.find('button').length).toBe(1);
+    expect(wrapper.find('button').text()).toEqual('http://example.com');
+  });
+  it('updates and adds window when button clicked', () => {
+    const wrapper = shallow(<ManifestListItem manifest="http://example.com" store={store} />).dive();
+    expect(store.getState().windows.length).toEqual(0);
+    wrapper.find('button').simulate('click');
+    expect(store.getState().windows.length).toEqual(1);
+  });
+});
diff --git a/__tests__/src/components/ManifestMetadata.test.js b/__tests__/src/components/ManifestMetadata.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..404ab7c47741ce9b68a86ee7f0761446e3e86352
--- /dev/null
+++ b/__tests__/src/components/ManifestMetadata.test.js
@@ -0,0 +1,20 @@
+import React from 'react';
+import { shallow } from 'enzyme';
+import { actions, store } from '../../../src/store';
+import ManifestMetadata from '../../../src/components/ManifestMetadata';
+import fixture from '../../fixtures/2.json';
+
+describe('ManifestMetadata', () => {
+  let wrapper;
+  let manifest;
+  beforeEach(() => {
+    store.dispatch(actions.receiveManifest('foo', fixture));
+    manifest = store.getState().manifests.foo;
+    wrapper = shallow(<ManifestMetadata manifest={manifest} />);
+  });
+
+  it('renders without an error', () => {
+    expect(wrapper.find('h3').text()).toBe('Test 2 Manifest: Metadata Pairs');
+    expect(wrapper.find('.mirador-description').length).toBe(1);
+  });
+});
diff --git a/__tests__/src/components/Window.test.js b/__tests__/src/components/Window.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..deedb4a02ed0cdc508df53b18d5d9f8a46c01608
--- /dev/null
+++ b/__tests__/src/components/Window.test.js
@@ -0,0 +1,67 @@
+import React from 'react';
+import { mount, shallow } from 'enzyme';
+import { actions, store } from '../../../src/store';
+import Window from '../../../src/components/Window';
+import fixture from '../../fixtures/24.json';
+
+describe('Window', () => {
+  let wrapper;
+  let window;
+  describe('with a manifest present', () => {
+    beforeEach(() => {
+      store.dispatch(actions.receiveManifest('foo', fixture));
+      store.dispatch(actions.addWindow({ manifestId: 'foo' }));
+      [window] = store.getState().windows;
+      wrapper = mount(
+        <Window store={store} id={window.id} />,
+        // We need to attach this to something created by our JSDOM instance.
+        // Also need to provide context of the store so that connected sub components
+        // can render effectively.
+        { attachTo: document.getElementById('main'), context: { store } },
+      );
+    });
+
+    afterEach(() => {
+      store.dispatch(actions.removeManifest('foo'));
+    });
+
+    it('returns the width and height style attribute', () => {
+      wrapper = shallow(<Window store={store} id={window.id} />, { context: { store } });
+      expect(wrapper.dive().instance().styleAttributes())
+        .toEqual({ width: '400px', height: '400px' });
+    });
+
+    it('renders without an error', () => {
+      expect(wrapper.find('.mirador-window').prop('style')).toHaveProperty('width', '400px');
+      expect(wrapper.find('.mirador-window').prop('style')).toHaveProperty('height', '400px');
+      expect(wrapper.find('div.mirador-window').length).toBe(1);
+      expect(wrapper.find('div.mirador-window img').prop('src')).toBe('http://placekitten.com/200/300');
+    });
+
+    it('renders the viewer', () => {
+      expect(wrapper.find('WindowViewer').length).toBe(1);
+    });
+  });
+  describe('without a manifest present', () => {
+    beforeEach(() => {
+      store.dispatch(actions.addWindow({ manifestId: 'foo' }));
+      [window] = store.getState().windows;
+      wrapper = shallow(<Window store={store} id={window.id} />, { context: { store } }).dive();
+    });
+
+    it('returns the width and height style attribute', () => {
+      expect(wrapper.instance().styleAttributes())
+        .toEqual({ width: '400px', height: '400px' });
+    });
+
+    it('renders without an error', () => {
+      expect(wrapper.find('.mirador-window').prop('style')).toHaveProperty('width', '400px');
+      expect(wrapper.find('.mirador-window').prop('style')).toHaveProperty('height', '400px');
+      expect(wrapper.find('div.mirador-window img').length).toBe(0);
+    });
+
+    it('does not render the viewer', () => {
+      expect(wrapper.find('WindowViewer').length).toBe(0);
+    });
+  });
+});
diff --git a/__tests__/src/components/WindowBackground.test.js b/__tests__/src/components/WindowBackground.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..f3fe49abf9c40a65321ae5c3756756aaea7f392c
--- /dev/null
+++ b/__tests__/src/components/WindowBackground.test.js
@@ -0,0 +1,23 @@
+import React from 'react';
+import { shallow } from 'enzyme';
+import { actions, store } from '../../../src/store';
+import WindowBackground from '../../../src/components/WindowBackground';
+import fixture from '../../fixtures/24.json';
+
+describe('WindowBackground', () => {
+  let wrapper;
+  beforeEach(() => {
+    store.dispatch(actions.receiveManifest('foo', fixture));
+    store.dispatch(actions.addWindow({ manifestId: 'foo' }));
+    const manifest = store.getState().manifests.foo;
+    wrapper = shallow(<WindowBackground manifest={manifest} />);
+  });
+
+  it('renders without an error', () => {
+    expect(wrapper.find('img').prop('src')).toBe('http://placekitten.com/200/300');
+  });
+
+  it('without a manifest, renders an empty', () => {
+    expect(shallow(<WindowBackground manifest={null} />).html()).toBe('<div></div>');
+  });
+});
diff --git a/__tests__/src/components/WindowTopBar.test.js b/__tests__/src/components/WindowTopBar.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..c03aeae9695da95d4bf727b3e77d1ba55ccc543f
--- /dev/null
+++ b/__tests__/src/components/WindowTopBar.test.js
@@ -0,0 +1,28 @@
+import React from 'react';
+import { mount } from 'enzyme';
+import { actions, store } from '../../../src/store';
+import WindowTopBar from '../../../src/components/WindowTopBar';
+import fixture from '../../fixtures/24.json';
+
+describe('Window', () => {
+  let wrapper;
+  let window;
+  beforeEach(() => {
+    store.dispatch(actions.receiveManifest('foo', fixture));
+    store.dispatch(actions.addWindow({ manifestId: 'foo' }));
+    const manifest = store.getState().manifests.foo;
+    [window] = store.getState().windows;
+    wrapper = mount(
+      <WindowTopBar store={store} manifest={manifest} windowId={window.id} />,
+      // We need to attach this to something created by our JSDOM instance.
+      // Also need to provide context of the store so that connected sub components
+      // can render effectively.
+      { attachTo: document.getElementById('main'), context: { store } },
+    );
+  });
+
+  it('renders without an error', () => {
+    expect(wrapper.find('div.mirador-window-top-bar h3').text()).toBe('Test 24 Manifest: Image with IIIF Service - adapted with real image');
+    expect(wrapper.find('button.mirador-window-close'));
+  });
+});
diff --git a/__tests__/src/components/WindowViewer.test.js b/__tests__/src/components/WindowViewer.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..2bed4303aa1be9c591fa3df8d8a0b33db9605b0d
--- /dev/null
+++ b/__tests__/src/components/WindowViewer.test.js
@@ -0,0 +1,32 @@
+import React from 'react';
+import { mount } from 'enzyme';
+import { actions, store } from '../../../src/store';
+import WindowViewer from '../../../src/components/WindowViewer';
+import fixture from '../../fixtures/24.json';
+
+describe('WindowViewer', () => {
+  let wrapper;
+  let window;
+  beforeEach(() => {
+    store.dispatch(actions.receiveManifest('foo', fixture));
+    store.dispatch(actions.addWindow({ manifestId: 'foo' }));
+    const manifest = store.getState().manifests.foo;
+    [window] = store.getState().windows;
+    wrapper = mount(
+      <WindowViewer manifest={manifest} window={window} />,
+      // We need to attach this to something created by our JSDOM instance.
+      // Also need to provide context of the store so that connected sub components
+      // can render effectively.
+      { attachTo: document.getElementById('main'), context: { store } },
+    );
+  });
+
+  it('OpenSeaDragon instantiates', () => {
+    // Hacky as heck thing we have to do, as `#find` (and other methods on ReactWrapper)
+    // do not effectively find elements (even though they are there)
+    expect(wrapper.render().find('.openseadragon-canvas').length).toBe(1);
+  });
+  it('has navigation controls', () => {
+    expect(wrapper.find('.mirador-osd-navigation').length).toBe(1);
+  });
+});
diff --git a/__tests__/src/components/Workspace.test.js b/__tests__/src/components/Workspace.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..c93549885a40ad040d261befa94b8ae94aa825a5
--- /dev/null
+++ b/__tests__/src/components/Workspace.test.js
@@ -0,0 +1,20 @@
+import React from 'react';
+import { shallow } from 'enzyme';
+import { actions, store } from '../../../src/store';
+import Workspace from '../../../src/components/Workspace';
+import fixture from '../../fixtures/2.json';
+
+describe('Workspace', () => {
+  let wrapper;
+  beforeEach(() => {
+    store.dispatch(actions.receiveManifest('foo', fixture));
+    store.dispatch(actions.addWindow({ manifestId: 'foo' }));
+    wrapper = shallow(<Workspace store={store} />).dive();
+  });
+
+  it('renders without an error', () => {
+    const window = store.getState().windows[0];
+    expect(wrapper.find('div.mirador-workspace').length).toBe(1);
+    expect(wrapper.find(`#${window.id}`).length).toBe(1);
+  });
+});
diff --git a/__tests__/src/reducers/config.test.js b/__tests__/src/reducers/config.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..11836e06ef338f4cf4272d39f594a07e0d7c2f71
--- /dev/null
+++ b/__tests__/src/reducers/config.test.js
@@ -0,0 +1,42 @@
+import reducer from '../../../src/reducers/config';
+import ActionTypes from '../../../src/action-types';
+
+describe('config reducer', () => {
+  describe('SET_CONFIG', () => {
+    it('should handle SET_CONFIG', () => {
+      expect(reducer({}, {
+        type: ActionTypes.SET_CONFIG,
+        config: { manifestVersion: 'v3' },
+      })).toEqual({
+        manifestVersion: 'v3',
+      });
+    });
+    it('does not deep merge', () => {
+      expect(reducer({ stuff: { foo: 'bar' } }, {
+        type: ActionTypes.SET_CONFIG,
+        config: { stuff: { foo: 'bat' } },
+      })).toEqual({
+        stuff: { foo: 'bat' },
+      });
+    });
+  });
+  describe('UPDATE_CONFIG', () => {
+    it('should handle UPDATE_CONFIG', () => {
+      expect(reducer({}, {
+        type: ActionTypes.UPDATE_CONFIG,
+        config: { manifestVersion: 'v3' },
+      })).toEqual({
+        manifestVersion: 'v3',
+      });
+    });
+    it('does a deep merge', () => {
+      expect(reducer({ stuff: { foo: 'bar' }, hello: 'world' }, {
+        type: ActionTypes.UPDATE_CONFIG,
+        config: { stuff: { foo: 'bat' } },
+      })).toEqual({
+        stuff: { foo: 'bat' },
+        hello: 'world',
+      });
+    });
+  });
+});
diff --git a/__tests__/src/reducers/infoResponse.test.js b/__tests__/src/reducers/infoResponse.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..7841eb8b5e882383bbc88822d720f92afc38558c
--- /dev/null
+++ b/__tests__/src/reducers/infoResponse.test.js
@@ -0,0 +1,70 @@
+import reducer from '../../../src/reducers/infoResponses';
+import ActionTypes from '../../../src/action-types';
+
+describe('manifests reducer', () => {
+  it('should handle REQUEST_INFO_RESPONSE', () => {
+    expect(reducer({}, {
+      type: ActionTypes.REQUEST_INFO_RESPONSE,
+      infoId: 'abc123',
+    })).toEqual({
+      abc123: {
+        isFetching: true,
+      },
+    });
+  });
+  it('should handle RECEIVE_INFO_RESPONSE', () => {
+    expect(reducer(
+      {
+        abc123: {
+          isFetching: true,
+        },
+      },
+      {
+        type: ActionTypes.RECEIVE_INFO_RESPONSE,
+        infoId: 'abc123',
+        infoJson: {
+          id: 'abc123',
+          '@type': 'sc:Manifest',
+          content: 'lots of canvases and metadata and such',
+        },
+      },
+    )).toMatchObject({
+      abc123: {
+        isFetching: false,
+        json: {},
+      },
+    });
+  });
+  it('should handle RECEIVE_INFO_RESPONSE_FAILURE', () => {
+    expect(reducer(
+      {
+        abc123: {
+          isFetching: true,
+        },
+      },
+      {
+        type: ActionTypes.RECEIVE_INFO_RESPONSE_FAILURE,
+        infoId: 'abc123',
+        error: "This institution didn't enable CORS.",
+      },
+    )).toEqual({
+      abc123: {
+        isFetching: false,
+        error: "This institution didn't enable CORS.",
+      },
+    });
+  });
+  it('should handle REMOVE_INFO_RESPONSE', () => {
+    expect(reducer(
+      {
+        abc123: {
+          stuff: 'foo',
+        },
+      },
+      {
+        type: ActionTypes.REMOVE_INFO_RESPONSE,
+        infoId: 'abc123',
+      },
+    )).toEqual({});
+  });
+});
diff --git a/__tests__/src/reducers/manifests.test.js b/__tests__/src/reducers/manifests.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..88e14f61bb441e076d6b4b1057e35261af9cc3a4
--- /dev/null
+++ b/__tests__/src/reducers/manifests.test.js
@@ -0,0 +1,70 @@
+import reducer from '../../../src/reducers/manifests';
+import ActionTypes from '../../../src/action-types';
+
+describe('manifests reducer', () => {
+  it('should handle REQUEST_MANIFEST', () => {
+    expect(reducer({}, {
+      type: ActionTypes.REQUEST_MANIFEST,
+      manifestId: 'abc123',
+    })).toEqual({
+      abc123: {
+        isFetching: true,
+      },
+    });
+  });
+  it('should handle RECEIVE_MANIFEST', () => {
+    expect(reducer(
+      {
+        abc123: {
+          isFetching: true,
+        },
+      },
+      {
+        type: ActionTypes.RECEIVE_MANIFEST,
+        manifestId: 'abc123',
+        manifestJson: {
+          id: 'abc123',
+          '@type': 'sc:Manifest',
+          content: 'lots of canvases and metadata and such',
+        },
+      },
+    )).toMatchObject({
+      abc123: {
+        isFetching: false,
+        manifestation: {},
+      },
+    });
+  });
+  it('should handle RECEIVE_MANIFEST_FAILURE', () => {
+    expect(reducer(
+      {
+        abc123: {
+          isFetching: true,
+        },
+      },
+      {
+        type: ActionTypes.RECEIVE_MANIFEST_FAILURE,
+        manifestId: 'abc123',
+        error: "This institution didn't enable CORS.",
+      },
+    )).toEqual({
+      abc123: {
+        isFetching: false,
+        error: "This institution didn't enable CORS.",
+      },
+    });
+  });
+  it('should handle REMOVE_MANIFEST', () => {
+    expect(reducer(
+      {
+        abc123: {
+          stuff: 'foo',
+        },
+      },
+      {
+        type: ActionTypes.REMOVE_MANIFEST,
+        manifestId: 'abc123',
+      },
+    )).toEqual({});
+  });
+});
diff --git a/__tests__/src/reducers/windows.test.js b/__tests__/src/reducers/windows.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..a4d485654395cbe83efa46e7533113bb572e4221
--- /dev/null
+++ b/__tests__/src/reducers/windows.test.js
@@ -0,0 +1,54 @@
+import reducer from '../../../src/reducers/windows';
+import ActionTypes from '../../../src/action-types';
+
+describe('windows reducer', () => {
+  it('should handle ADD_WINDOW', () => {
+    expect(reducer([], {
+      type: ActionTypes.ADD_WINDOW,
+    })).toEqual([
+      {},
+    ]);
+  });
+  it('should handle REMOVE_WINDOW', () => {
+    expect(reducer([
+      {
+        id: 'abc123',
+      },
+    ], {
+      type: ActionTypes.REMOVE_WINDOW,
+      windowId: 'abc123',
+    })).toEqual([]);
+  });
+  it('should handle NEXT_CANVAS', () => {
+    expect(reducer([
+      {
+        id: 'abc123',
+        canvasIndex: 1,
+      },
+    ], {
+      type: ActionTypes.NEXT_CANVAS,
+      windowId: 'abc123',
+    })).toEqual([
+      {
+        id: 'abc123',
+        canvasIndex: 2,
+      },
+    ]);
+  });
+  it('should handle PREVIOUS_CANVAS', () => {
+    expect(reducer([
+      {
+        id: 'abc123',
+        canvasIndex: 4,
+      },
+    ], {
+      type: ActionTypes.PREVIOUS_CANVAS,
+      windowId: 'abc123',
+    })).toEqual([
+      {
+        id: 'abc123',
+        canvasIndex: 3,
+      },
+    ]);
+  });
+});
diff --git a/__tests__/src/reducers/workspace.test.js b/__tests__/src/reducers/workspace.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..e1e24a7fd857c4254e389bfd9f0ba42e91d5f26f
--- /dev/null
+++ b/__tests__/src/reducers/workspace.test.js
@@ -0,0 +1,13 @@
+import reducer from '../../../src/reducers/workspace';
+import ActionTypes from '../../../src/action-types';
+
+describe('workspace reducer', () => {
+  it('should handle FOCUS_WINDOW', () => {
+    expect(reducer([], {
+      type: ActionTypes.FOCUS_WINDOW,
+      windowId: 'abc123',
+    })).toEqual({
+      focusedWindowId: 'abc123',
+    });
+  });
+});
diff --git a/bin/create_release.sh b/bin/create_release.sh
deleted file mode 100755
index 2ddb634aa0fe8dec628bbb2393d7db0c9a8f601a..0000000000000000000000000000000000000000
--- a/bin/create_release.sh
+++ /dev/null
@@ -1,31 +0,0 @@
-# remove previous packages
-rm -rf build dist
-
-# build package
-node_modules/.bin/grunt build
-
-# mk tmp release dir
-mkdir -p build/tmp/build/mirador
-
-# copy mirador build into tmp folder
-cp -r build/mirador/* build/tmp/build/mirador
-
-# add example(s)
-cp examples/example.html build/tmp/build
-
-cd build/tmp
-
-# zip it up
-zip -r build/build.zip build/
-mv build/build.zip ../
-
-tar -czvf build/build.tar.gz build/
-mv build/build.tar.gz ../
-
-# remove temporary files
-cd .. && rm -rf tmp
-
-# make npm dist directory
-cd ..
-mkdir dist
-cp -r build/mirador/* dist
diff --git a/bin/update_demo.sh b/bin/update_demo.sh
deleted file mode 100755
index 0b5aea569ef9560b140dfd2b9aa64fa11804dc8b..0000000000000000000000000000000000000000
--- a/bin/update_demo.sh
+++ /dev/null
@@ -1,44 +0,0 @@
-# remove previous packages
-rm -rf build/mirador*
-
-# build package
-node_modules/.bin/grunt build
-
-# mk tmp release dir
-mkdir build/tmp
-
-# unzip build
-unzip build/mirador.zip -d build/tmp
-
-# checkout github pages
-git checkout gh-pages
-
-# remove directories
-rm -rf demo/css demo/fonts demo/images demo/locales demo/plugins demo/skins demo/themes
-
-# copy over new directories
-cp -R build/tmp/mirador/css demo
-cp -R build/tmp/mirador/fonts demo
-cp -R build/tmp/mirador/images demo
-cp -R build/tmp/mirador/locales demo
-cp -R build/tmp/mirador/plugins demo
-cp -R build/tmp/mirador/skins demo
-cp -R build/tmp/mirador/themes demo
-
-# Copy over files
-cp build/tmp/mirador/mirador.min.js demo
-cp build/tmp/mirador/mirador.js demo
-cp build/tmp/mirador/ZeroClipboard.swf demo
-
-# Clean up extra files
-rm demo/css/mirador-combined.css
-
-# Clean up unpacked build
-rm -rf build/tmp
-
-# Add and commit demo files
-git add demo/
-git commit -m 'update demo'
-git push origin gh-pages
-
-git checkout -
diff --git a/book.json b/book.json
deleted file mode 100644
index c760d8ef5c0c9c239d2372f287d00e979494bdaa..0000000000000000000000000000000000000000
--- a/book.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "structure": {
-    "summary": "docs/SUMMARY.md"
-  },
-  "plugins": ["-search"]
-}
diff --git a/bower.json b/bower.json
deleted file mode 100644
index de99abbdaa3514462aa48b5185b184a6aece6980..0000000000000000000000000000000000000000
--- a/bower.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
-  "name": "mirador",
-  "version": "2.1.2",
-  "homepage": "https://github.com/ProjectMirador/mirador",
-  "authors": [
-    "aeschylus <scipioaffricanus@gmail.com>"
-  ],
-  "description": "An image viewer for IIIF resources.",
-  "main": "mirador.js",
-  "keywords": [
-    "IIIF"
-  ],
-  "license": "Apache 2",
-  "private": false,
-  "ignore": [
-    "**/.*",
-    "node_modules",
-    "bower_components",
-    "test",
-    "tests"
-  ],
-  "dependencies": {
-  },
-  "resolutions": {
-    "jquery": ">=1.7.2"
-  }
-}
diff --git a/config/paths.js b/config/paths.js
new file mode 100644
index 0000000000000000000000000000000000000000..2060badce016cbe023d2af06e9a9015114a77858
--- /dev/null
+++ b/config/paths.js
@@ -0,0 +1,98 @@
+const path = require('path');
+const fs = require('fs');
+const url = require('url');
+
+// Make sure any symlinks in the project folder are resolved:
+// https://github.com/facebook/create-react-app/issues/637
+const appDirectory = fs.realpathSync(process.cwd());
+
+/**
+ *
+ * @param relativePath
+ * @returns {string}
+ */
+const resolveApp = relativePath => path.resolve(appDirectory, relativePath);
+
+const envPublicUrl = process.env.PUBLIC_URL;
+
+/**
+ *
+ * @param inputPath
+ * @param needsSlash
+ * @returns {*}
+ */
+function ensureSlash(inputPath, needsSlash) {
+  const hasSlash = inputPath.endsWith('/');
+  if (hasSlash && !needsSlash) {
+    return inputPath.substr(0, inputPath.length - 1);
+  } else if (!hasSlash && needsSlash) {
+    return `${inputPath}/`;
+  } else {
+    return inputPath;
+  }
+}
+
+/**
+ *
+ * @param appPackageJson
+ * @returns {string | *}
+ */
+const getPublicUrl = appPackageJson => envPublicUrl || require(appPackageJson).homepage;
+
+/**
+ *
+ * @param appPackageJson
+ * @returns {*}
+ */
+function getServedPath(appPackageJson) {
+  const publicUrl = getPublicUrl(appPackageJson);
+  const servedUrl =
+    envPublicUrl || (publicUrl ? url.parse(publicUrl).pathname : '/');
+  return ensureSlash(servedUrl, true);
+}
+
+const moduleFileExtensions = [
+  'web.mjs',
+  'mjs',
+  'web.js',
+  'js',
+  'web.ts',
+  'ts',
+  'web.tsx',
+  'tsx',
+  'json',
+  'web.jsx',
+  'jsx',
+];
+
+/**
+ *
+ * @param resolveFn
+ * @param filePath
+ * @returns {*}
+ */
+const resolveModule = (resolveFn, filePath) => {
+  const extension = moduleFileExtensions.find(extension => fs.existsSync(resolveFn(`${filePath}.${extension}`)));
+
+  if (extension) {
+    return resolveFn(`${filePath}.${extension}`);
+  }
+
+  return resolveFn(`${filePath}.js`);
+};
+
+module.exports = {
+  dotenv: resolveApp('.env'),
+  appPath: resolveApp('.'),
+  appBuild: resolveApp('build'),
+  appDist: resolveApp('dist'),
+  appIndexJs: resolveModule(resolveApp, 'src/index'),
+  appPackageJson: resolveApp('package.json'),
+  appSrc: resolveApp('src'),
+  testsSetup: resolveModule(resolveApp, 'src/setupTests'),
+  appNodeModules: resolveApp('node_modules'),
+  publicUrl: getPublicUrl(resolveApp('package.json')),
+  servedPath: getServedPath(resolveApp('package.json')),
+};
+
+module.exports.moduleFileExtensions = moduleFileExtensions;
diff --git a/css/bootstrap.modals.css b/css/bootstrap.modals.css
deleted file mode 100644
index 1935f0c486df39cc5e22e46626f91735854fc2f6..0000000000000000000000000000000000000000
--- a/css/bootstrap.modals.css
+++ /dev/null
@@ -1,753 +0,0 @@
-/*!
- * Bootstrap v3.3.7 (http://getbootstrap.com)
- * Copyright 2011-2016 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
-
-button {
-    overflow: visible;
-}
-button,
-select {
-    text-transform: none;
-}
-button,
-html input[type="button"],
-input[type="reset"],
-input[type="submit"] {
-    -webkit-appearance: button;
-    cursor: pointer;
-}
-button[disabled],
-html input[disabled] {
-    cursor: default;
-}
-button::-moz-focus-inner,
-input::-moz-focus-inner {
-    border: 0;
-    padding: 0;
-}
-input {
-    line-height: normal;
-}
-input[type="checkbox"],
-input[type="radio"] {
-    -webkit-box-sizing: border-box;
-    -moz-box-sizing: border-box;
-    box-sizing: border-box;
-    padding: 0;
-}
-input[type="number"]::-webkit-inner-spin-button,
-input[type="number"]::-webkit-outer-spin-button {
-    height: auto;
-}
-input[type="search"] {
-    -webkit-appearance: textfield;
-    -webkit-box-sizing: content-box;
-    -moz-box-sizing: content-box;
-    box-sizing: content-box;
-}
-input[type="search"]::-webkit-search-cancel-button,
-input[type="search"]::-webkit-search-decoration {
-    -webkit-appearance: none;
-}
-*:before,
-*:after {
-    -webkit-box-sizing: border-box;
-    -moz-box-sizing: border-box;
-    box-sizing: border-box;
-}
-[role="button"] {
-    cursor: pointer;
-}
-.btn {
-    display: inline-block;
-    margin-bottom: 0;
-    font-weight: normal;
-    text-align: center;
-    vertical-align: middle;
-    -ms-touch-action: manipulation;
-    touch-action: manipulation;
-    cursor: pointer;
-    background-image: none;
-    border: 1px solid transparent;
-    white-space: nowrap;
-    padding: 6px 12px;
-    font-size: 14px;
-    line-height: 1.42857143;
-    border-radius: 4px;
-    -webkit-user-select: none;
-    -moz-user-select: none;
-    -ms-user-select: none;
-    user-select: none;
-}
-.btn:focus,
-.btn:active:focus,
-.btn.active:focus,
-.btn.focus,
-.btn:active.focus,
-.btn.active.focus {
-    outline: 5px auto -webkit-focus-ring-color;
-    outline-offset: -2px;
-}
-.btn:hover,
-.btn:focus,
-.btn.focus {
-    color: #333333;
-    text-decoration: none;
-}
-.btn:active,
-.btn.active {
-    outline: 0;
-    background-image: none;
-    -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
-    box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
-}
-.btn.disabled,
-.btn[disabled],
-fieldset[disabled] .btn {
-    cursor: not-allowed;
-    opacity: 0.65;
-    filter: alpha(opacity=65);
-    -webkit-box-shadow: none;
-    box-shadow: none;
-}
-a.btn.disabled,
-fieldset[disabled] a.btn {
-    pointer-events: none;
-}
-.btn-default {
-    color: #333333;
-    background-color: #ffffff;
-    border-color: #cccccc;
-}
-.btn-default:focus,
-.btn-default.focus {
-    color: #333333;
-    background-color: #e6e6e6;
-    border-color: #8c8c8c;
-}
-.btn-default:hover {
-    color: #333333;
-    background-color: #e6e6e6;
-    border-color: #adadad;
-}
-.btn-default:active,
-.btn-default.active,
-.open > .dropdown-toggle.btn-default {
-    color: #333333;
-    background-color: #e6e6e6;
-    border-color: #adadad;
-}
-.btn-default:active:hover,
-.btn-default.active:hover,
-.open > .dropdown-toggle.btn-default:hover,
-.btn-default:active:focus,
-.btn-default.active:focus,
-.open > .dropdown-toggle.btn-default:focus,
-.btn-default:active.focus,
-.btn-default.active.focus,
-.open > .dropdown-toggle.btn-default.focus {
-    color: #333333;
-    background-color: #d4d4d4;
-    border-color: #8c8c8c;
-}
-.btn-default:active,
-.btn-default.active,
-.open > .dropdown-toggle.btn-default {
-    background-image: none;
-}
-.btn-default.disabled:hover,
-.btn-default[disabled]:hover,
-fieldset[disabled] .btn-default:hover,
-.btn-default.disabled:focus,
-.btn-default[disabled]:focus,
-fieldset[disabled] .btn-default:focus,
-.btn-default.disabled.focus,
-.btn-default[disabled].focus,
-fieldset[disabled] .btn-default.focus {
-    background-color: #ffffff;
-    border-color: #cccccc;
-}
-.btn-default .badge {
-    color: #ffffff;
-    background-color: #333333;
-}
-.btn-primary {
-    color: #ffffff;
-    background-color: #337ab7;
-    border-color: #2e6da4;
-}
-.btn-primary:focus,
-.btn-primary.focus {
-    color: #ffffff;
-    background-color: #286090;
-    border-color: #122b40;
-}
-.btn-primary:hover {
-    color: #ffffff;
-    background-color: #286090;
-    border-color: #204d74;
-}
-.btn-primary:active,
-.btn-primary.active,
-.open > .dropdown-toggle.btn-primary {
-    color: #ffffff;
-    background-color: #286090;
-    border-color: #204d74;
-}
-.btn-primary:active:hover,
-.btn-primary.active:hover,
-.open > .dropdown-toggle.btn-primary:hover,
-.btn-primary:active:focus,
-.btn-primary.active:focus,
-.open > .dropdown-toggle.btn-primary:focus,
-.btn-primary:active.focus,
-.btn-primary.active.focus,
-.open > .dropdown-toggle.btn-primary.focus {
-    color: #ffffff;
-    background-color: #204d74;
-    border-color: #122b40;
-}
-.btn-primary:active,
-.btn-primary.active,
-.open > .dropdown-toggle.btn-primary {
-    background-image: none;
-}
-.btn-primary.disabled:hover,
-.btn-primary[disabled]:hover,
-fieldset[disabled] .btn-primary:hover,
-.btn-primary.disabled:focus,
-.btn-primary[disabled]:focus,
-fieldset[disabled] .btn-primary:focus,
-.btn-primary.disabled.focus,
-.btn-primary[disabled].focus,
-fieldset[disabled] .btn-primary.focus {
-    background-color: #337ab7;
-    border-color: #2e6da4;
-}
-.btn-primary .badge {
-    color: #337ab7;
-    background-color: #ffffff;
-}
-.btn-success {
-    color: #ffffff;
-    background-color: #5cb85c;
-    border-color: #4cae4c;
-}
-.btn-success:focus,
-.btn-success.focus {
-    color: #ffffff;
-    background-color: #449d44;
-    border-color: #255625;
-}
-.btn-success:hover {
-    color: #ffffff;
-    background-color: #449d44;
-    border-color: #398439;
-}
-.btn-success:active,
-.btn-success.active,
-.open > .dropdown-toggle.btn-success {
-    color: #ffffff;
-    background-color: #449d44;
-    border-color: #398439;
-}
-.btn-success:active:hover,
-.btn-success.active:hover,
-.open > .dropdown-toggle.btn-success:hover,
-.btn-success:active:focus,
-.btn-success.active:focus,
-.open > .dropdown-toggle.btn-success:focus,
-.btn-success:active.focus,
-.btn-success.active.focus,
-.open > .dropdown-toggle.btn-success.focus {
-    color: #ffffff;
-    background-color: #398439;
-    border-color: #255625;
-}
-.btn-success:active,
-.btn-success.active,
-.open > .dropdown-toggle.btn-success {
-    background-image: none;
-}
-.btn-success.disabled:hover,
-.btn-success[disabled]:hover,
-fieldset[disabled] .btn-success:hover,
-.btn-success.disabled:focus,
-.btn-success[disabled]:focus,
-fieldset[disabled] .btn-success:focus,
-.btn-success.disabled.focus,
-.btn-success[disabled].focus,
-fieldset[disabled] .btn-success.focus {
-    background-color: #5cb85c;
-    border-color: #4cae4c;
-}
-.btn-success .badge {
-    color: #5cb85c;
-    background-color: #ffffff;
-}
-.btn-info {
-    color: #ffffff;
-    background-color: #5bc0de;
-    border-color: #46b8da;
-}
-.btn-info:focus,
-.btn-info.focus {
-    color: #ffffff;
-    background-color: #31b0d5;
-    border-color: #1b6d85;
-}
-.btn-info:hover {
-    color: #ffffff;
-    background-color: #31b0d5;
-    border-color: #269abc;
-}
-.btn-info:active,
-.btn-info.active,
-.open > .dropdown-toggle.btn-info {
-    color: #ffffff;
-    background-color: #31b0d5;
-    border-color: #269abc;
-}
-.btn-info:active:hover,
-.btn-info.active:hover,
-.open > .dropdown-toggle.btn-info:hover,
-.btn-info:active:focus,
-.btn-info.active:focus,
-.open > .dropdown-toggle.btn-info:focus,
-.btn-info:active.focus,
-.btn-info.active.focus,
-.open > .dropdown-toggle.btn-info.focus {
-    color: #ffffff;
-    background-color: #269abc;
-    border-color: #1b6d85;
-}
-.btn-info:active,
-.btn-info.active,
-.open > .dropdown-toggle.btn-info {
-    background-image: none;
-}
-.btn-info.disabled:hover,
-.btn-info[disabled]:hover,
-fieldset[disabled] .btn-info:hover,
-.btn-info.disabled:focus,
-.btn-info[disabled]:focus,
-fieldset[disabled] .btn-info:focus,
-.btn-info.disabled.focus,
-.btn-info[disabled].focus,
-fieldset[disabled] .btn-info.focus {
-    background-color: #5bc0de;
-    border-color: #46b8da;
-}
-.btn-info .badge {
-    color: #5bc0de;
-    background-color: #ffffff;
-}
-.btn-warning {
-    color: #ffffff;
-    background-color: #f0ad4e;
-    border-color: #eea236;
-}
-.btn-warning:focus,
-.btn-warning.focus {
-    color: #ffffff;
-    background-color: #ec971f;
-    border-color: #985f0d;
-}
-.btn-warning:hover {
-    color: #ffffff;
-    background-color: #ec971f;
-    border-color: #d58512;
-}
-.btn-warning:active,
-.btn-warning.active,
-.open > .dropdown-toggle.btn-warning {
-    color: #ffffff;
-    background-color: #ec971f;
-    border-color: #d58512;
-}
-.btn-warning:active:hover,
-.btn-warning.active:hover,
-.open > .dropdown-toggle.btn-warning:hover,
-.btn-warning:active:focus,
-.btn-warning.active:focus,
-.open > .dropdown-toggle.btn-warning:focus,
-.btn-warning:active.focus,
-.btn-warning.active.focus,
-.open > .dropdown-toggle.btn-warning.focus {
-    color: #ffffff;
-    background-color: #d58512;
-    border-color: #985f0d;
-}
-.btn-warning:active,
-.btn-warning.active,
-.open > .dropdown-toggle.btn-warning {
-    background-image: none;
-}
-.btn-warning.disabled:hover,
-.btn-warning[disabled]:hover,
-fieldset[disabled] .btn-warning:hover,
-.btn-warning.disabled:focus,
-.btn-warning[disabled]:focus,
-fieldset[disabled] .btn-warning:focus,
-.btn-warning.disabled.focus,
-.btn-warning[disabled].focus,
-fieldset[disabled] .btn-warning.focus {
-    background-color: #f0ad4e;
-    border-color: #eea236;
-}
-.btn-warning .badge {
-    color: #f0ad4e;
-    background-color: #ffffff;
-}
-.btn-danger {
-    color: #ffffff;
-    background-color: #d9534f;
-    border-color: #d43f3a;
-}
-.btn-danger:focus,
-.btn-danger.focus {
-    color: #ffffff;
-    background-color: #c9302c;
-    border-color: #761c19;
-}
-.btn-danger:hover {
-    color: #ffffff;
-    background-color: #c9302c;
-    border-color: #ac2925;
-}
-.btn-danger:active,
-.btn-danger.active,
-.open > .dropdown-toggle.btn-danger {
-    color: #ffffff;
-    background-color: #c9302c;
-    border-color: #ac2925;
-}
-.btn-danger:active:hover,
-.btn-danger.active:hover,
-.open > .dropdown-toggle.btn-danger:hover,
-.btn-danger:active:focus,
-.btn-danger.active:focus,
-.open > .dropdown-toggle.btn-danger:focus,
-.btn-danger:active.focus,
-.btn-danger.active.focus,
-.open > .dropdown-toggle.btn-danger.focus {
-    color: #ffffff;
-    background-color: #ac2925;
-    border-color: #761c19;
-}
-.btn-danger:active,
-.btn-danger.active,
-.open > .dropdown-toggle.btn-danger {
-    background-image: none;
-}
-.btn-danger.disabled:hover,
-.btn-danger[disabled]:hover,
-fieldset[disabled] .btn-danger:hover,
-.btn-danger.disabled:focus,
-.btn-danger[disabled]:focus,
-fieldset[disabled] .btn-danger:focus,
-.btn-danger.disabled.focus,
-.btn-danger[disabled].focus,
-fieldset[disabled] .btn-danger.focus {
-    background-color: #d9534f;
-    border-color: #d43f3a;
-}
-.btn-danger .badge {
-    color: #d9534f;
-    background-color: #ffffff;
-}
-.btn-link {
-    color: #337ab7;
-    font-weight: normal;
-    border-radius: 0;
-}
-.btn-link,
-.btn-link:active,
-.btn-link.active,
-.btn-link[disabled],
-fieldset[disabled] .btn-link {
-    background-color: transparent;
-    -webkit-box-shadow: none;
-    box-shadow: none;
-}
-.btn-link,
-.btn-link:hover,
-.btn-link:focus,
-.btn-link:active {
-    border-color: transparent;
-}
-.btn-link:hover,
-.btn-link:focus {
-    color: #23527c;
-    text-decoration: underline;
-    background-color: transparent;
-}
-.btn-link[disabled]:hover,
-fieldset[disabled] .btn-link:hover,
-.btn-link[disabled]:focus,
-fieldset[disabled] .btn-link:focus {
-    color: #777777;
-    text-decoration: none;
-}
-.btn-lg {
-    padding: 10px 16px;
-    font-size: 18px;
-    line-height: 1.3333333;
-    border-radius: 6px;
-}
-.btn-sm {
-    padding: 5px 10px;
-    font-size: 12px;
-    line-height: 1.5;
-    border-radius: 3px;
-}
-.btn-xs {
-    padding: 1px 5px;
-    font-size: 12px;
-    line-height: 1.5;
-    border-radius: 3px;
-}
-.btn-block {
-    display: block;
-    width: 100%;
-}
-.btn-block + .btn-block {
-    margin-top: 5px;
-}
-input[type="submit"].btn-block,
-input[type="reset"].btn-block,
-input[type="button"].btn-block {
-    width: 100%;
-}
-.fade {
-    opacity: 0;
-    -webkit-transition: opacity 0.15s linear;
-    -o-transition: opacity 0.15s linear;
-    transition: opacity 0.15s linear;
-}
-.fade.in {
-    opacity: 1;
-}
-.collapse {
-    display: none;
-}
-.collapse.in {
-    display: block;
-}
-tr.collapse.in {
-    display: table-row;
-}
-tbody.collapse.in {
-    display: table-row-group;
-}
-.collapsing {
-    position: relative;
-    height: 0;
-    overflow: hidden;
-    -webkit-transition-property: height, visibility;
-    -o-transition-property: height, visibility;
-    transition-property: height, visibility;
-    -webkit-transition-duration: 0.35s;
-    -o-transition-duration: 0.35s;
-    transition-duration: 0.35s;
-    -webkit-transition-timing-function: ease;
-    -o-transition-timing-function: ease;
-    transition-timing-function: ease;
-}
-.close {
-    float: right;
-    font-size: 21px;
-    font-weight: bold;
-    line-height: 1;
-    color: #000000;
-    text-shadow: 0 1px 0 #ffffff;
-    opacity: 0.2;
-    filter: alpha(opacity=20);
-}
-.close:hover,
-.close:focus {
-    color: #000000;
-    text-decoration: none;
-    cursor: pointer;
-    opacity: 0.5;
-    filter: alpha(opacity=50);
-}
-button.close {
-    padding: 0;
-    cursor: pointer;
-    background: transparent;
-    border: 0;
-    -webkit-appearance: none;
-}
-.modal-open {
-    overflow: hidden;
-}
-.modal {
-    display: none;
-    overflow: hidden;
-    position: fixed;
-    top: 0;
-    right: 0;
-    bottom: 0;
-    left: 0;
-    z-index: 1050;
-    -webkit-overflow-scrolling: touch;
-    outline: 0;
-}
-.modal.fade .modal-dialog {
-    -webkit-transform: translate(0, -25%);
-    -ms-transform: translate(0, -25%);
-    -o-transform: translate(0, -25%);
-    transform: translate(0, -25%);
-    -webkit-transition: -webkit-transform 0.3s ease-out;
-    -o-transition: -o-transform 0.3s ease-out;
-    transition: transform 0.3s ease-out;
-}
-.modal.in .modal-dialog {
-    -webkit-transform: translate(0, 0);
-    -ms-transform: translate(0, 0);
-    -o-transform: translate(0, 0);
-    transform: translate(0, 0);
-}
-.modal-open .modal {
-    overflow-x: hidden;
-    overflow-y: auto;
-}
-.modal-dialog {
-    position: relative;
-    width: auto;
-    margin: 10px;
-}
-.modal-content {
-    position: relative;
-    background-color: #ffffff;
-    border: 1px solid #999999;
-    border: 1px solid rgba(0, 0, 0, 0.2);
-    border-radius: 6px;
-    -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
-    box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
-    -webkit-background-clip: padding-box;
-    background-clip: padding-box;
-    outline: 0;
-}
-.modal-backdrop {
-    position: fixed;
-    top: 0;
-    right: 0;
-    bottom: 0;
-    left: 0;
-    z-index: 1040;
-    background-color: #000000;
-}
-.modal-backdrop.fade {
-    opacity: 0;
-    filter: alpha(opacity=0);
-}
-.modal-backdrop.in {
-    opacity: 0.5;
-    filter: alpha(opacity=50);
-}
-.modal-header {
-    padding: 15px;
-    border-bottom: 1px solid #e5e5e5;
-}
-.modal-header .close {
-    margin-top: -2px;
-}
-.modal-title {
-    margin: 0;
-    line-height: 1.42857143;
-}
-.modal-body {
-    position: relative;
-    padding: 15px;
-}
-.modal-footer {
-    padding: 15px;
-    text-align: right;
-    border-top: 1px solid #e5e5e5;
-}
-.modal-footer .btn + .btn {
-    margin-left: 5px;
-    margin-bottom: 0;
-}
-.modal-footer .btn-group .btn + .btn {
-    margin-left: -1px;
-}
-.modal-footer .btn-block + .btn-block {
-    margin-left: 0;
-}
-.modal-scrollbar-measure {
-    position: absolute;
-    top: -9999px;
-    width: 50px;
-    height: 50px;
-    overflow: scroll;
-}
-@media (min-width: 768px) {
-    .modal-dialog {
-        width: 600px;
-        margin: 30px auto;
-    }
-    .modal-content {
-        -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
-        box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
-    }
-    .modal-sm {
-        width: 300px;
-    }
-}
-@media (min-width: 992px) {
-    .modal-lg {
-        width: 900px;
-    }
-}
-.clearfix:before,
-.clearfix:after,
-.modal-header:before,
-.modal-header:after,
-.modal-footer:before,
-.modal-footer:after {
-    content: " ";
-    display: table;
-}
-.clearfix:after,
-.modal-header:after,
-.modal-footer:after {
-    clear: both;
-}
-.center-block {
-    display: block;
-    margin-left: auto;
-    margin-right: auto;
-}
-.pull-right {
-    float: right !important;
-}
-.pull-left {
-    float: left !important;
-}
-.hide {
-    display: none !important;
-}
-.show {
-    display: block !important;
-}
-.invisible {
-    visibility: hidden;
-}
-.text-hide {
-    font: 0/0 a;
-    color: transparent;
-    text-shadow: none;
-    background-color: transparent;
-    border: 0;
-}
-.hidden {
-    display: none !important;
-}
-.affix {
-    position: fixed;
-}
\ No newline at end of file
diff --git a/css/jquery-ui.min.css b/css/jquery-ui.min.css
deleted file mode 100644
index 845625d5c233782341637d42d945ce5a690d396e..0000000000000000000000000000000000000000
--- a/css/jquery-ui.min.css
+++ /dev/null
@@ -1,7 +0,0 @@
-/*! jQuery UI - v1.11.4 - 2016-04-08
-* http://jqueryui.com
-* Includes: core.css, draggable.css, resizable.css, selectable.css, sortable.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, menu.css, progressbar.css, selectmenu.css, slider.css, spinner.css, tabs.css, tooltip.css, theme.css
-* To view and modify this theme, visit http://jqueryui.com/themeroller/
-* Copyright jQuery Foundation and other contributors; Licensed MIT */
-
-.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;min-height:0;font-size:100%}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-dialog{overflow:hidden;position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-button{display:inline-block;overflow:hidden;position:relative;text-decoration:none;cursor:pointer}.ui-selectmenu-button span.ui-icon{right:0.5em;left:auto;margin-top:-8px;position:absolute;top:50%}.ui-selectmenu-button span.ui-selectmenu-text{text-align:left;padding:0.4em 2.1em 0.4em 1em;display:block;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-state-default .ui-icon{background-image:url("images/ui-icons_888888_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-active .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("images/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cd0a0a_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px}
\ No newline at end of file
diff --git a/css/less/full-screen.less b/css/less/full-screen.less
deleted file mode 100644
index 42c60be4b16dff4675ee66271e948827ffc85ea9..0000000000000000000000000000000000000000
--- a/css/less/full-screen.less
+++ /dev/null
@@ -1,18 +0,0 @@
-.mirador-container {
-  /* Full screen
-  -------------------------------------------------------------------------- */
-  &:-webkit-full-screen,
-  &:-moz-full-screen
-  &:-ms-fullscreen,
-  &:fullscreen,
-  :-webkit-full-screen,
-  :-moz-full-screen
-  :-ms-fullscreen,
-  :fullscreen {
-    height: 100%;
-    left: 0;
-    margin: 0;
-    top: 0;
-    width: 100%;
-  }
-}
diff --git a/css/less/global.less b/css/less/global.less
deleted file mode 100644
index 399818cd096d1365300eb267677cd858b6cc94f5..0000000000000000000000000000000000000000
--- a/css/less/global.less
+++ /dev/null
@@ -1,183 +0,0 @@
-/**
-  * Styles which apply globally or do not really belong to any other
-  * particular .less file.
-  */
-
-// mirador-container is the class assigned to the root element that
-// contains all other mirador elements,
-// e.g., .mirador-viewer and .mirador-main-menu.
-.mirador-container {
-  a {
-    color: inherit; /* blue colors for links too */
-    text-decoration: inherit; /* no underline */
-  }
-
-  // initial loader
-  .mirador-loading {
-    background-color: @white;
-    border: 1px solid @gray-99;
-    padding: 20px;
-  }
-
-  .mirador-btn {
-    cursor: pointer;
-    display: inline-block;
-    height: 20px;
-    width: 20px;
-    margin-top: 9px;
-    /*margin-left: 3px;*/
-
-    &.disabled {
-      opacity: 0.5;
-    }
-  }
-
-  .disabled {
-    opacity: 0.5;
-    pointer-events: none;
-  }
-
-  a.mirador-icon-annotations [class^="icon-"] {
-    display:block;
-    position:absolute;
-  }
-
-
-  a.mirador-icon-view-type [class^="icon-"] {
-    display:block;
-    position:absolute;
-  }
-
-  a.mirador-icon-empty-slot [class^="icon-"] {
-    display:block;
-    position:absolute;
-  }
-
-  .mirador-viewer {
-    position: absolute;
-    top: 33px;
-    bottom: 0;
-    left: 0;
-    right: 0;
-    overflow: hidden;
-    box-sizing: border-box;
-    -moz-border-sizing: border-box;
-    margin: 0;
-    padding: 0;
-    border: 0;
-  }
-
-
-  .mirador-viewer a.mirador-icon-annotations {
-    background: none;
-    color: @gray-91;
-    box-sizing: border-box;
-
-    &:hover {
-      color: @black;
-    }
-  }
-
-  .mirador-viewer ul.dropdown {
-    display: none;
-    width: 160px;
-    z-index: 3;
-    opacity: 0.98;
-    background-color: @gray-ef;
-    text-align: center;
-    list-style: none;
-    position: absolute;
-    padding:0;
-    margin-top:10px;
-    height: auto;
-    box-shadow: 0px 2px 4px @gray-b1;
-    border: 1px solid @gray-b1;
-  }
-
-  .mirador-viewer .dropdown li {
-    margin:0;
-    cursor: pointer;
-    box-sizing: border-box;
-    background-color: @gray-dd;
-    padding: 10px;
-    width:100%;
-    text-align:left;
-
-    &:hover {
-      border-left: 3px solid @deep-sky-blue;
-      background-color: #dddddd;
-      padding-left: 7px;
-      font-weight: bold;
-    }
-  }
-
-  .mirador-viewer a.mirador-icon-view-type,
-  .mirador-viewer a.mirador-icon-metadata-view,
-  .mirador-viewer a.mirador-osd-fullscreen  {
-    background: none;
-    color: @gray-91;
-    box-sizing: border-box;
-    margin-right:5px;
-    padding-bottom:30px;
-  }
-
-  .mirador-viewer a.mirador-icon-window-menu,
-  .mirador-viewer a.mirador-icon-toc,
-  .mirador-viewer a.mirador-close-window  {
-    float:left;
-    background: none;
-    color: @gray-91;
-    box-sizing: border-box;
-    margin-left:5px;
-    padding-bottom:30px;
-  }
-
-  a.mirador-icon-window-menu,
-  a.mirador-icon-view-type {
-    width: 30px;
-  }
-
-  .mirador-viewer a.mirador-icon-view-type:hover,
-  .mirador-viewer a.mirador-icon-metadata-view:hover,
-  .mirador-viewer a.mirador-icon-empty-slot:hover,
-  .mirador-viewer a.mirador-icon-window-menu:hover,
-  .mirador-viewer a.mirador-icon-toc:hover,
-  .mirador-viewer a.mirador-osd-fullscreen:hover {
-    color: @black;
-  }
-
-  .mirador-viewer a.mirador-icon-view-type.selected,
-  .mirador-viewer a.mirador-icon-toc.selected,
-  .mirador-viewer a.mirador-icon-metadata-view.selected {
-    color: @black;
-  }
-
-  .mirador-viewer a.mirador-icon-copy {
-    background: none;
-    /*color: @gray-91;*/
-    box-sizing: border-box;
-  }
-
-  input[type="submit"],
-  input[type="text"] {
-    height:25px;
-    border:1px solid @light-gray;
-    transition: border-color 0.3s ease-out;
-  }
-
-  input:focus {
-    outline: none;
-    border-color: @deep-sky-blue;
-  }
-
-  input[type="submit"] {
-    color: gray;
-    background: @white;
-  }
-
-  input[type="submit"]:hover {
-    outline: none;
-    border-color: @deep-sky-blue;
-    color: @black-33;
-  }
-}
diff --git a/css/less/main-menu.less b/css/less/main-menu.less
deleted file mode 100644
index 464dcee1e538df658ed460603d7ad582536bcef1..0000000000000000000000000000000000000000
--- a/css/less/main-menu.less
+++ /dev/null
@@ -1,94 +0,0 @@
-.mirador-container {
-  .mirador-main-menu-bar {
-    background-color: @black;
-    border-bottom: 1px solid @gray-55;
-    color: @white;
-    height: 33px;
-    width: 100%;
-    /*padding: 4px;*/
-    font-size: 14px;
-    top: 0;
-
-    .window-options-menu {
-      position: relative;
-      border-radius: 0;
-      display: none;
-      /*z-index: 10000;*/
-    }
-  }
-
-  .mirador-main-menu {
-    float: right;
-    list-style: none;
-    margin: 0;
-    padding: 8px 12px 0 0;
-    text-align: right;
-
-    li {
-      cursor: pointer;
-      float: left;
-      padding: 0 15px;
-    }
-
-    a {
-      color: @white;
-      font-weight: normal;
-      text-decoration: none;
-      opacity: 0.6;
-
-      &:hover {
-        opacity: 1;
-      }
-
-      &:active {
-        opacity: 1;
-        border-bottom: 2px solid @deep-sky-blue;
-      }
-    }
-
-    /* a:focus {
-      border-bottom: 2px solid deepskyblue;
-      outline: none;
-    }*/
-  }
-
-  .mirador-main-menu.user-buttons {
-    padding-right: 0;
-  }
-
-  .mirador-main-menu.user-logo {
-    padding-right: 0;
-    padding-left: 0;
-    float: left;
-  }
-
-  .mirador-window-options-menu {
-    list-style: none;
-    margin: 0;
-    padding: 10px 5px;
-
-    li {
-      cursor: pointer;
-      padding: 3px 5px;
-    }
-  }
-
-  .window-manifest-title {
-    text-overflow: ellipsis;
-    max-width: 80%;
-    overflow: hidden;
-    white-space: nowrap;
-    padding-left: 10px;
-    margin: 8px 0px 8px 0px;
-    font-weight: bold;
-    font-size: 16px;
-  }
-
-  .window-manifest-navigation {
-    float: right;
-    width: 24%;
-    text-align: right;
-    padding-right: 10px;
-    font-size: 16px;
-  }
-}
diff --git a/css/less/main.less b/css/less/main.less
deleted file mode 100644
index 37d42d4a4033c1f41fd65f728102cdad05092938..0000000000000000000000000000000000000000
--- a/css/less/main.less
+++ /dev/null
@@ -1,28 +0,0 @@
-/**
- * This file is the entry point for Less processing
- */
-@import 'mixins';
-@import 'theme/colors';
-@import 'theme/fonts';
-@import 'overrides/jquery';
-@import 'overrides/qtip';
-@import 'global';
-@import 'full-screen';
-@import 'workspace';
-@import 'main-menu';
-@import 'status-bar';
-@import 'window';
-@import 'osd-hud';
-@import 'views/image-view';
-@import 'views/scroll-view';
-@import 'views/gallery-view';
-@import 'panels/manifest-select-menu';
-@import 'panels/workspace-select-menu';
-@import 'panels/side-panel';
-@import 'panels/annotation-list';
-@import 'panels/bookmark-panel';
-@import 'panels/metadata-view';
-@import 'panels/bottom-panel';
-@import 'panels/layers-tab';
-@import 'panels/search-tab';
-@import 'panels/collection-tree-mod';
diff --git a/css/less/mixins.less b/css/less/mixins.less
deleted file mode 100644
index f64330a93f69aba8b2eb312b0cd05e0fe3d57c2b..0000000000000000000000000000000000000000
--- a/css/less/mixins.less
+++ /dev/null
@@ -1,6 +0,0 @@
-// use () to avoid outputting this in the stylesheet.
-.clearfix() {
-  zoom:1;
-  &:before, &:after{ content:""; display:table; }
-  &:after{ clear: both; }
-}
\ No newline at end of file
diff --git a/css/less/osd-hud.less b/css/less/osd-hud.less
deleted file mode 100644
index 5c30f0e6a285dbdf39d63c2aa86c14442538b004..0000000000000000000000000000000000000000
--- a/css/less/osd-hud.less
+++ /dev/null
@@ -1,304 +0,0 @@
-.mirador-container {
-  /* Disable outlines when canvas is focused
-  ---------------------------------------------------------------------------- */
-  canvas {
-    outline: none;
-    -webkit-tap-highlight-color: @transparent; /* mobile webkit */
-  }
-
-  .mirador-osd {
-    background-color: @black;
-    width: 100%;
-    height: 100%;
-  }
-
-  /* Canvas HUD
-  ----------------------- */
-  /*.mirador-canvas-hud {
-    position:absolute;
-    left: 0;
-    top:0;
-    bottom:0;
-    right:0;
-    background: rgba(255, 0, 128, 0.5);
-    pointer-events: none;
-  }*/
-  .hud-control {
-    color:white;
-    text-shadow: 0 0 5px @black;
-    /*transition: all 0.3s ease;*/
-    opacity: 0.6;
-    font-size: 18px;
-    z-index:2;
-  }
-  .hud-container {
-    color:white;
-    text-shadow: 0 0 5px @black;
-    transition: all 0.3s ease;
-    font-size: 18px;
-    z-index:2;
-  }
-  .hud-control.hud-disabled {
-    opacity: 0.3;
-  }
-  .hud-control:not(.hud-disabled):hover {
-    /*transition: all 0.3s ease;*/
-    cursor: pointer;
-    opacity: 1;
-  }
-  .hud-control.selected {
-    opacity: 1;
-    /*transition: none;*/
-  }
-  .hud-control.hidden {
-    opacity: 0;
-  }
-  .mirador-osd-previous {
-    position:absolute;
-    left:1%;
-    top:50%;
-    margin-top:-35px;
-    width: 40px;
-    -webkit-transform : translateY(0px);
-    -moz-transform    : translateY(0px);
-    -ms-transform     : translateY(0px);
-    -o-transform      : translateY(0px);
-    transform         : translateY(0px);
-    transition: all 0.2s ease-out;
-  }
-  .mirador-osd-previous.bottom-panel-open {
-    -webkit-transform : translateY(-65px);
-    -moz-transform    : translateY(-65px);
-    -ms-transform     : translateY(-65px);
-    -o-transform      : translateY(-65px);
-    transform         : translateY(-65px);
-    transition: all 0.2s ease-out;
-  }
-  .mirador-osd-next {
-    position:absolute;
-    right:1%;
-    top:50%;
-    margin-top:-35px;
-    -webkit-transform : translateY(0px);
-    -moz-transform    : translateY(0px);
-    -ms-transform     : translateY(0px);
-    -o-transform      : translateY(0px);
-    transform         : translateY(0px);
-    transition: all 0.2s ease-out;
-  }
-  .mirador-osd-next.bottom-panel-open {
-    -webkit-transform : translateY(-65px);
-    -moz-transform    : translateY(-65px);
-    -ms-transform     : translateY(-65px);
-    -o-transform      : translateY(-65px);
-    transform         : translateY(-65px);
-    transition: all 0.2s ease-out;
-  }
-  .mirador-osd-toggle-bottom-panel {
-    position: absolute;
-    bottom:0;
-    right:50%;
-    margin-right: -25px;
-    -webkit-transform : translateY(0px);
-    -moz-transform    : translateY(0px);
-    -ms-transform     : translateY(0px);
-    -o-transform      : translateY(0px);
-    transform         : translateY(0px);
-    transition: all 0.2s ease-out;
-  }
-
-  .mirador-osd-toggle-bottom-panel.bottom-panel-open {
-    -webkit-transform : translateY(-130px);
-    -moz-transform    : translateY(-130px);
-    -ms-transform     : translateY(-130px);
-    -o-transform      : translateY(-130px);
-    transform         : translateY(-130px);
-    transition: all 0.2s ease-out;
-  }
-  .mirador-pan-zoom-controls {
-    position: absolute;
-    width: 100px;
-    height: 65px;
-    bottom:0;
-    right:0;
-    margin:1%;
-  }
-  .mirador-pan-zoom-controls.bottom-panel-open {
-    -webkit-transform : translateY(-130px);
-    -moz-transform    : translateY(-130px);
-    -ms-transform     : translateY(-130px);
-    -o-transform      : translateY(-130px);
-    transform         : translateY(-130px);
-    transition: all 0.2s ease-out;
-  }
-  .mirador-osd-up {
-    position:absolute;
-    right:20px;
-    top:0;
-  }
-  .mirador-osd-right {
-    position:absolute;
-    right:0;
-    top:20px;
-  }
-  .mirador-osd-down {
-    position:absolute;
-    right:20px;
-    top:40px;
-  }
-  .mirador-osd-left {
-    position:absolute;
-    right:40px;
-    top:20px;
-  }
-  .mirador-osd-zoom-in {
-    font-size:130%;
-    position:absolute;
-    right:70px;
-    top:5px;
-  }
-  .mirador-osd-zoom-out {
-    font-size:130%;
-    position:absolute;
-    right:70px;
-    top:30px;
-  }
-  .mirador-osd-go-home {
-    position: absolute;
-    right:20px;
-    top:20px;
-  }
-  .mirador-osd-context-controls {
-    position: absolute;
-    top: 10px;
-    left: 10px;
-    transition: none;
-    /*width: 100%*/
-    >div {
-      clear: both;
-      >a:first-child {
-        margin-bottom: 10px;
-      }
-    }
-  }
-  .mirador-osd-context-controls a {
-    float:left;
-    margin:0 10px 0 0;
-    font-weight: normal;
-  }
-  .mirador-annotation-controls {
-    position: absolute;
-    top: 0px;
-    left: 0px;
-  }
-  .mirador-manipulation-controls {
-    min-width: 364px;
-  }
-  .mirador-mirror {
-    -moz-transform: scale(-1, 1);
-    -webkit-transform: scale(-1, 1);
-    -o-transform: scale(-1, 1);
-    transform: scale(-1, 1);
-    filter: FlipH;
-  }
-
-  /* color picker custom style
-  ---------------------------------------------------------------------------- */
-
-  .mirador-osd-color-picker * {
-    text-shadow: none;
-  }
-
-  .sp-dd {
-    display: none;
-  }
-
-  .mirador-osd-color-picker .dropdown-icon {
-    font-size: .8em;
-    height: 30px;
-    vertical-align: middle;
-  }
-
-  .mirador-osd-color-picker .sp-container {
-    width: 300px;
-    border-color: @gray-cc;
-    opacity: 0.9;
-    border-radius: 3px;
-  }
-
-  .mirador-osd-color-picker .sp-preview {
-    height: 10px;
-  }
-
-  .mirador-osd-color-picker .sp-replacer {
-    border-color: @gray-cc;
-    height: 11px;
-    border-radius: 3px;
-    cursor: default;
-  }
-
-  .mirador-osd-color-picker .material-icons {
-    float: left;
-    font-size: 12px;
-    margin: 0 5px 0 0;
-  }
-
-  .hud-control.mirador-line-type {
-    height: 11px;
-    border-radius: 3px;
-    margin: 2px 11px 0 0;
-    padding: 4px;
-    width: 57px;
-    border: 1px solid @gray-cc;
-    background: @gray-ee none repeat scroll 0 0;
-    text-shadow: none;
-    color: @black-33;
-  }
-
-  /*.mirador-line-type ul {
-    color: @black-33;
-    margin-top: 0px;
-  }
-
-  .mirador-line-type li {
-    text-shadow: none;
-    font-size: 10px;
-  }*/
-
-  .mirador-line-type ul.dropdown.type-list {
-      margin-top: -14px;
-      border-radius: 3px;
-      margin-left: -5px;
-      font-size: 10px;
-      box-shadow: none;
-      width: 140px;
-  }
-
-  .mirador-line-type ul i {
-      display: inline-block;
-      width: 25px;
-      height: 1em;
-      background: no-repeat;
-      margin-right: 10px;
-  }
-
-  .mirador-line-type .mirador-border-icon {
-    font-size: 12px;
-    margin: 0 5px 0 0;
-    float: left;
-  }
-
-  .mirador-line-type .border-type-image {
-    display: inline-block;
-    width: 25px;
-    height: 1em;
-    background: no-repeat;
-    margin: 0 5px 2px 0;
-  }
-
-  .mirador-line-type .dropdown-icon {
-    font-size: .8em;
-    height: 30px;
-    vertical-align: middle;
-  }
-}
diff --git a/css/less/overrides/jquery.less b/css/less/overrides/jquery.less
deleted file mode 100644
index dbec97d016f1a2abead3469973d6ddd80cbf4b22..0000000000000000000000000000000000000000
--- a/css/less/overrides/jquery.less
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * jquery-ui-dialog theming/customisation (overrides to reset neutral defaults)
- */
-
-.mirador-container {
-  .ui-dialog-titlebar {
-    display:none;
-  }
-  .ui-dialog {
-    overflow:hidden;
-    padding:0;
-  }
-  .slot.ui-dialog-content {
-    margin:0;
-  }
-}
diff --git a/css/less/overrides/qtip.less b/css/less/overrides/qtip.less
deleted file mode 100644
index 8983ce5e0591cd80f7271f3abdaba68c08712a3b..0000000000000000000000000000000000000000
--- a/css/less/overrides/qtip.less
+++ /dev/null
@@ -1,138 +0,0 @@
-.mirador-container {
-  .qtip {
-  }
-
-  .qtip-bootstrap {
-    border-radius: 2px;
-    padding: 0;
-    background-color: @white-fa;
-  }
-
-  .qtip-bootstrap .qtip-content {
-    padding: 0;
-    clear: both;
-  }
-
-  .qtip-viewer .qtip-content {
-    min-width: 275px;
-    max-height: 200px;
-    overflow: auto;
-  }
-
-  .qtip-content {
-    text-align: inherit;
-  }
-
-  .annotation-tooltip {
-    padding: 10px;
-  }
-
-  .annotation-editor {
-    cursor: move;
-  }
-
-  .annotation-display {
-    position:relative;
-    border-left:0;
-    border-right:0;
-    padding: 12px;
-    padding-bottom:0;
-    border-bottom: 1px solid @gray;
-  }
-
-  .annotation-display:last-child {
-    border: none;
-  }
-
-  .annotation-tooltip .button-container {
-    text-align: right;
-  }
-
-  .annotation-tooltip .save, .annotation-tooltip .cancel {
-    margin-left: 12px;
-    /* padding: 5px 7px; */
-    /* border-radius: 2px; */
-    /* text-decoration: underline; */
-    /* color: white; */
-    /* background-color: black; */
-    font-size: 12px;
-    text-decoration: underline;
-  }
-
-  .annotation-tooltip .save:hover, .annotation-tooltip .cancel:hover {
-    /* padding: 5px 7px; */
-    /* border-radius: 2px; */
-    /* text-decoration: underline; */
-    font-weight: bold;
-    /* color: white; */
-    /* background-color: black; */
-  }
-
-  .text-editor, .tags-editor, .select2-container {
-    padding: 5px;
-    display: block;
-    margin: 6px 0px 6px 0px;
-    border: 0;
-    background: @gray-ef;
-    box-shadow: inset 0 0 7px @gray;
-    resize: vertical;
-    border: 1px solid @gray;
-    width: 200px;
-
-    .select2-selection--multiple {
-      border: none;
-      background-color: inherit;
-      font-size: 16px;
-    }
-  }
-
-  .annotation-display.annotation-tooltip .button-container {
-    text-align: right;
-  }
-
-  .annotation-display .edit, .annotation-display .delete  {
-    font-size: 12px;
-    margin-left: 5px;
-    text-decoration: underline;
-  }
-
-  .annotation-display  .text-viewer a {
-    border-bottom: 1px dotted @blue-005ebd;
-  }
-
-  .annotation-display .text-viewer a:hover {
-    border-bottom: 1px dotted @gray-dd;
-  }
-
-  .text-viewer p {
-    margin-top: 0;
-  }
-
-  .text-viewer p.user {
-    color: @gray;
-    font-style: italic;
-    font-size: 11px;
-  }
-
-  .tags-viewer {
-    margin-bottom: 12px;
-  }
-
-  .qtip-bootstrap .tags-viewer span.tag {
-    background: @light-gray;
-    color: @black-22;
-    border-radius: 6px;
-    padding: 0 5px;
-    margin-right:5px;
-    margin-bottom: 5px;
-    text-align: center;
-    font-size: 12;
-    font-weight: bold;
-    border: 1px solid @gray-aa;
-    display: inline-block;
-  }
-
-  .mce-edit-area iframe {
-    height: 75px !important;
-  }
-}
diff --git a/css/less/panels/annotation-list.less b/css/less/panels/annotation-list.less
deleted file mode 100644
index aaa79a91711b1ae6fdea3178f6243c9016490fac..0000000000000000000000000000000000000000
--- a/css/less/panels/annotation-list.less
+++ /dev/null
@@ -1,175 +0,0 @@
-.mirador-container {
-  .annotationListPanel {
-    background-color: @gray-f0;
-    width: 200px;
-    height: 100%;
-    position: absolute;
-    right: 0;
-    top: 0;
-    margin: 0;
-    padding: 0;
-    z-index: 2;
-    box-shadow: 0px 0px 5px @black-a30;
-    border-left: 1px solid @gray;
-  }
-
-  .annotationPanelHeader {
-    padding: 0 10px;
-  }
-
-  .annotationListPanel ul {
-    position: absolute;
-    bottom: 0;
-    top: 80px;
-    border-top: 1px solid @white;
-    list-style: none;
-    overflow: scroll;
-    overflow-x: hidden;
-    margin-bottom: 0;
-    padding: 0;
-    width: 100%;
-  }
-
-  .annotationListPanel ul li {
-    font-size: 80%;
-    margin: 0;
-    padding: 10px;
-    border-bottom: 1px solid @white;
-    box-sizing: border-box;
-  }
-
-  .annotationListPanel ul li:hover {
-    background-color: @light-gray;
-    cursor: pointer;
-    border-left: 2px solid @orange-red;
-    padding-left: 8px;
-  }
-
-  .annotationListPanel ul li.selected {
-    color: @white;
-    background-color: @gray;
-    cursor:pointer;
-    border-left: 3px solid @orange-red;
-    padding-left: 7px;
-  }
-
-  .annotationListPanel ul li.hovered {
-    background-color: @light-gray;
-    cursor:pointer;
-    border-left: 2px solid @orange-red;
-    padding-left: 8px;
-  }
-
-  .annotationListPanel ul li p {
-    margin: 0;
-  }
-
-  .annotationListPanel ul li p:hover {
-    margin: 0;
-    cursor: pointer;
-  }
-
-  .annotationListPanel ul li a {
-    display: block;
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    left: 0;
-    right: 0;
-  }
-
-  .annotationListPanel .resizeGrip {
-    position: absolute;
-    left: -7px;
-    bottom: 0;
-    top: 0;
-    width: 12px;
-    z-index: 3;
-    background: none;
-    display: block;
-    cursor: ew-resize;
-  }
-
-  .annotation, .osd-select-rectangle {
-    border: 2px solid @deep-sky-blue;
-    box-shadow: 0px 0px 5px @white;
-    box-sizing: border-box;
-  }
-
-  .annotation.selected {
-    border: 3px solid @orange-red;
-    box-shadow: 0px 0px 8px @black-a70;
-  }
-
-  /*
-  .annotation:hover {
-    border: 3px solid orangered;
-    opacity: 0.5;
-    box-shadow: 0px 0px 15px @black;
-  }
-
-  .annotation.selected:hover {
-    border: 3px solid orangered;
-    opacity: 1;
-    box-shadow: 0px 0px 8px @black-a70;
-  }
-  */
-
-  .annotation.hovered {
-    border: 3px solid orangered;
-    opacity: 0.5;
-    box-shadow: 0px 0px 15px @black;
-  }
-
-  .annotationDetails {
-    box-sizing: border-box;
-    position: absolute;
-    bottom: 0;
-    left: 0;
-    width: 100%;
-    padding: inherit;
-    padding-top: 25px;
-    color: white;
-    overflow: hidden;
-    height: 20%;
-    z-index: 2;
-    background: -moz-linear-gradient(top, @black-a00 0%, @black-a77 13%, @black-a77 100%); /* FF3.6+ */
-    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,@black-a00), color-stop(13%,@black-a77), color-stop(100%,@black-a77)); /* Chrome,Safari4+ */
-    background: -webkit-linear-gradient(top, @black-a00 0%,@black-a77 13%,@black-a77 100%); /* Chrome10+,Safari5.1+ */
-    background: -o-linear-gradient(top, @black-a00 0%,@black-a77 13%,@black-a77 100%); /* Opera 11.10+ */
-    background: -ms-linear-gradient(top, @black-a00 0%,@black-a77 13%,@black-a77 100%); /* IE10+ */
-    background: linear-gradient(to bottom, @black-a00 0%,@black-a77 13%,@black-a77 100%); /* W3C */
-    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00000000', endColorstr='#c4000000',GradientType=0 ); /* IE6-9 */
-  }
-
-  .annotationDetailToggle {
-    float: right;
-    margin: 32px;
-    margin-top: 0;
-    cursor: pointer;
-  }
-
-  .osd-annotation-overlay {
-    display: none;
-  }
-
-  .displayBottomPanelButton {
-    box-sizing: border-box;
-    position: absolute;
-    bottom: 0;
-    left: 0;
-    width: 100%;
-    padding: inherit;
-    color: @white;
-    height: 75px;
-    z-index: 2;
-  }
-
-  .annotationDetails p {
-    width: 80%;
-    font-size: 1.3em;
-    font-weight: bold;
-    display: block;
-    margin: 0 auto;
-  }
-}
diff --git a/css/less/panels/bookmark-panel.less b/css/less/panels/bookmark-panel.less
deleted file mode 100644
index c055fab1e7c0bc734193d93a63abbd2253ad9a6f..0000000000000000000000000000000000000000
--- a/css/less/panels/bookmark-panel.less
+++ /dev/null
@@ -1,28 +0,0 @@
-.mirador-container {
-  #bookmark-panel {
-    position: absolute;
-    height: 20%;
-    width: 30%;
-    background-color: @white-a94;
-    display: none;
-    overflow: hidden;
-    z-index: 6;
-    right: 0;
-    top: 0;
-    padding: 10px;
-
-    span {
-      width: 100%;
-      padding-left: 2%;
-    }
-
-    input {
-      width: 80%;
-      margin-right: 3px;
-    }
-
-    h3 {
-      text-align: center;
-    }
-  }
-}
diff --git a/css/less/panels/bottom-panel.less b/css/less/panels/bottom-panel.less
deleted file mode 100644
index 087b6a15ed15d4c9f22bdb300b199377b615a7e6..0000000000000000000000000000000000000000
--- a/css/less/panels/bottom-panel.less
+++ /dev/null
@@ -1,86 +0,0 @@
-.mirador-container {
-  .bottomPanel {
-    background-color: @black-a70;
-    position: absolute;
-    bottom:0;
-    left:0;
-    right:0;
-    height: 130px;
-    z-index: 4;
-    overflow:hidden;
-    display: none;
-    transition:transform 0.3s ease;
-
-    &.minimized {
-      transform:translateY(130px);
-    }
-  }
-
-  .panel-thumbnail-view {
-    position: absolute;
-    height: 100%;
-    width: 100%;
-    overflow-x: scroll;
-    overflow-y: hidden;
-
-    ul.panel-listing-thumbs {
-      clear: both;
-      list-style: none;
-      padding: 0;
-      white-space: nowrap;
-      margin-top: 10px;
-      margin-bottom: 4px;
-
-      li {
-        box-sizing:border-box;
-        padding: 0px 10px 0px 10px;
-        display: inline-block;
-        margin-bottom: 11px;
-
-        &.highlight {
-          padding-left: 8px;
-          padding-right: 8px;
-        }
-
-        img {
-          background-color: @gray;
-          min-height: 25px;
-          min-width: 25px;
-          margin: 0 auto;
-          display: block;
-          box-sizing:border-box;
-
-          &.thumbnail-image {
-            background-color: gray;
-            box-shadow: 0px 0px 5px @black-a60;
-            float:left;
-            margin-right:15px;
-          }
-
-          &.thumbnail-image.highlight {
-            border: 2px solid deepskyblue;
-          }
-
-          &:hover {
-            border:2px solid @blue-bfff-a70;
-            transform: scale(1.1);
-            cursor: pointer;
-          }
-        }
-
-        .thumb-label {
-          clear: both;
-          color: @gray-99;
-          font-size: 12px;
-          margin: 0 auto;
-          max-width: 75px;
-          text-align: left;
-          white-space:nowrap;
-          overflow:hidden;
-          text-overflow:ellipsis;
-          text-align: center;
-        }
-      }
-    }
-  }
-}
diff --git a/css/less/panels/collection-tree-mod.less b/css/less/panels/collection-tree-mod.less
deleted file mode 100644
index 8f5d9e0cab87da3387f51ceb85682532a0bfef4c..0000000000000000000000000000000000000000
--- a/css/less/panels/collection-tree-mod.less
+++ /dev/null
@@ -1,99 +0,0 @@
-.mirador-osd-download-mini {
-  position: absolute;
-  top: 60px;
-  left: 0px;
-}
-
-.mirador-osd-download {
-  position: absolute;
-  top: 60px;
-  left: 36px;
-}
-
-/* Collection tree */
-
-#collection-tree, .select-results {
-  margin-top: 10px;
-  border-top: 1px solid gray;
-}
-
-.member-select-results {
-  height: 90%;
-  height: ~"calc(100% - 75px)";
-  overflow-y: scroll;
-  margin-left: 240px;
-  margin-top: 10px;
-  border-top: 1px solid gray;
-}
-
-#collection-tree {
-  position: absolute;
-  float: left;
-  width: 240px;
-  max-width: 240px;
-  overflow: auto;
-  height: 90%;
-  height: ~"calc(100% - 88px)";
-}
-
-@media (max-width: 768px) {
-  .select-results {
-    height: 87%;
-    height: ~"calc(100% - 118px)";
-  }
-
-  #collection-tree {
-    height: 85%;
-    height: ~"calc(100% - 128px)";
-  }
-}
-
-/* Overrides on jstree dependency */
-
-/* 32px.png */
-.jstree-default .jstree-node,
-.jstree-default .jstree-icon,
-/*.jstree-default .jstree-file,*/
-/*.jstree-default .jstree-folder,*/
-#jstree-dnd.jstree-default .jstree-ok,
-#jstree-dnd.jstree-default .jstree-er,
-.jstree-default-small .jstree-node,
-.jstree-default-small .jstree-icon,
-/*.jstree-default-small .jstree-file,*/
-/*.jstree-default-small .jstree-folder,*/
-#jstree-dnd.jstree-default-small .jstree-ok,
-#jstree-dnd.jstree-default-small .jstree-er,
-/*.jstree-default-large .jstree-file,*/
-/*.jstree-default-large .jstree-folder*/
-{
-  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAABgCAYAAABsS6soAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAF09JREFUeNrsnXt4U/X9x79pAwWmyByUAYoTStWNm1xa4Cc4cXPi/O3B328VSUBRQATZYP64OGGA7FEsMJh4K6Tg2p6U3ugNaKFgQSkVkHuSVqRtmtLmtE3SJC1J2pwk798fudhCcdOdtF37+TzP6zlNwvN8c77JefE+3+/5njAA7PtC5a377x8Gap+KqvO+fz/EX21cRgKkoqL6Ty0SICUwSoBUlABJgFRUVJQASYCUwCgBUlECJAFSUVFRAiQBUgKjBEhFCZAESEVFRQmQBEgJ7D+w/aSkJEl7f3eF6mrvJ1hVfn4/2uPiyV0Bzh5ch/pv9i6jBEhFJULF7Y4Dx3EepVLpUXLJbqVSKXDJShenTHYrlckejuPAKZUepVIJjuPAcRzidsdB5Pb9eDiOc/vej9v3HgSlUulOVnIeZfDb/5cQs/3W8nM3m74buwZuuwb5CUs6RBSdIkDCixj/A1H7/xyO41Ch1cJitcBsMcNsbkCDuQENDWZYLA2wWK2wWs2wNFphtVrB8zw4joOY7VsbrbDb7LCYzTBbGmBsMMJoNsDQYIDJYoDZ3ACL1QKbzQ5ro1W09hljgfZdgvCdfFFahISv30Pa+TRwHBc0ATobdHA26OBuNt0xAZ49uC7oEuy0BEgQHQnHcW5DvREWqxVGowlGkwlmqwVWq8UrpiY77DYvLsEJu80eBAFacEF3Cplle3Ch+nNc4k/jSnUx1PovcUlfhMs3TuPSjSJc1J0KmgCNRtNt+MWc+lUS4q+vR4njOHL5D7A6bk1wBOhLeM4GHW5LhL7XOjIFdooAxfxyiUFkZCR6UgLz939XSYDB7P+kpCSJkuPc+poaGIxG8DwPnudhMPhEaG6A1WqFtdEakIGYAgLAUvaneYwGI+JL1uNQw1Ycafg7LtjScdmWjUs3s3Dh5gGcsHyCq825yLq+B4Z6E1L2p4kqwKOqz/D2yZU4eDkDPM+3EaDyzKfYVfIGcut2IFG7GSnarXi/ZAX6rxzylJiyuXhyVxvBBQR4i/gcpmI4TMXdNwFyHIeU/anoKvLrLAF2YiLqUf2v5JTumppq8HoeOp0OVVVV0Ot5GAz1MBqNMJpMMJlMsPgFaBVbgKme+noDdpxfjj3VryKxbiVyLe8i37IN+dZtyDNvxSFzLHKMW/D+uT+hzmAQ7fNhjLG3P34H68/NQYblTbxV9CL+UcAFBJj2lRLbLi1HfNUKxGoWYMvVl/Ge6hXIUp4GWxA+JhgCdJiK4bZrcPHkrjYC9IuvowTYqQnQaDShs5NgZGQkYubI0RMTYE/qf6WSc1XXVKNSVwmtthKVlTroqm5Ar9ejrrYWBoMRRqMJJl8isjSaRe2b1P2pnjqDAWsK5dhcOhsfVr2E3dWLoKhZAoV+CfbUvIb4mj/gryWzsfozGerr6pGyP9UjRtvShYOjXsh/FGtVv8SKi1Ow+ZtnsOzELHx6lEPKuSS8UfQ7vHZhPOSnRuGlL8ZjcVE0fpc0He98HCu6fFoL0GEqxq2J0C/GHpEAXYIAo9GEuN1x6MyDrzMF2JkJsCf1v1KpdFdX16BSW4kKrRblFVpotZXQVemgr64Bz/OoNxi8p4RWazASIOrqDfi/YzKsUz2NdSVPY2PJLGwonYW/lPwGa1UzsfTcRPxv4c+wIHsW6urFEyCbP3Tq9IThmH1iEJ49fi9mFoTiuaKBkOU+jleOPolZhXdjcg7D5CyGSZkMUbsfQHHpV0GZBDl7cF0bwfkft5f+HKZiJGyP6b4J0D/zxPM8Nm2ORWcdfF0hAf7Q7b8rwFv7v6Pav1P/B6t9pZLz6PV6aLWV0JRooCm5hrLyClRotajU6VCp00HP61Fb6x0bs1jM4DjOI6YA6w0GrDwWg9mFQ/Hi6dFYUDwaL53+BeYXP4TZJ4bi8YM/wrSsfpiX9RTqDfWingK/+f5GTNgzGNHZDFFZXtnNONQL03JCMDGDYWIaw4Q0hskfjURxybnAGGgwBOgwFaOprKBdATaVFbQh2ALskQnQP+Z0K5QAu2//cxzn0fM8KrRaqNQaqFVqaDRfo7ysHOUVFd7TYp0OvJ4PTAyIngCNRszLfBJTMsMQndkb07L7YlpWH0zL7IOoA6GYdCAUUZm9IDvwJAxGo6gC5DgOmWfy8PMPf4JHUxjGJTOMVTKM5RjGJDGMTmIYs/M+fHapqM3+B0N+daX7YL6Sh6ayArROhH7p1ZXuC9CtE2BXGIPqwZeF9Kj+5zgOel4PlVoNlcqLWq2BRqVGScnXqCj3SlBbqQPP87A2WkQXoNFogjwxxj1SwRChkCBiL8NDeyUYFc8wUsEwMp4hIj4Ecw/MhNFoEl2A1kYrducmYOT2gXh4H8OoPT4UDI9s/RmOnz8JrbbSt//iCVDKWF/GGMtPWBIQYGv8EvQ/rjzztwDdOgF2lVnInirAntT/HMeB5/mA/FqjVqmh1qih9Y0LarWVQROgLCHGHaFgGKUIRYRCgpGKUIxShCBCEQK/GGUJMe5gCVClUuPD7L14YMsgjPxYihEfSTHqnQeQfSovsO/e/RdRgP1CwqX9QsLzE5agqaygjeDqSvchP2FJpwmQrgPswQLsafvbWoBq31aj0kClLoFGpYFGrYZKpWkjALFXgiiPKiFLiHHLEmPc8xJi3LLE593yRO9WlhDjliXEuHOKDol6IbZfgHabPbD/3PF0TNwxBlN2RONw8bE28uN5PtC+aAKUSp/IT1gSSHz+FR+VZ/4WEGBr8XX7BEgQnXHK71/tYbtph/2mDTdt3q3NZoNLcMIlCBAEISgrQfynlu2txrh1ZYaYS/H8AvTLjed56PV6HD53HIWXTwWea41WWynqKfCtAmxNZwqQ1gITPQL/zQBS9qe2h+fW5/w3AxC7/e94D23aDmb73+dmCGLduMQ3DhiZsD0G7UEJkCCILklH1J3ESHeDIQii2wuwM+9HSQIkCKLH3ruTBEgQBCVAEiBBEJQASYAEQVACJAESBAmQEiAJkCBIgJQASYAEQQKkBEgCFP2egNQ+QQKkBEgQBAmQEiAlQGqfIAFSAiQIggRICZASILVPkAApARIEQQKkBEgJkNonSICUAAmCIAFSAqQESO13fbTpr0m06a9JbmQuldzIXCrxPyYBUgIkCNGp2LsQPwQx29elL/2WA8vcuozlLl3GcmeVF0F34HWPLn2Zx/9vgtr+v4C//Y6oVWvWIWV/KjZtjsW8hSuxaXMsNm2ORcwcOf0mCCVAal8MATSVFUNorLsd6+3POfQaUQWkS18KobEO7mYjnCYtWm7WwNlYg2ZrFZobb8DZxEOw10Gw1sLtMEForIMufSnESnD+9l2C8J2cKy1E0tfvIvMiB1360g6Lf3G74wLiU6nUiJkjR8wcOeYtXEm/CUIQYgjQ2VAJZ4OuDV4pmdrgEgS4m01BEGAtLuhOIadsDy5Vf46r+tNQ8V9CzRfjqv40Lt84hQtVp3BBdwpCY21QBHjr/rfug9SvkhB/fT1KHMeRy3+A+PjZostn3sKVaA+/8FoLsPXrPSIBdvRv1UZGRoIS4Lftd1b/d1AC9DhqVHA26ODgNXDoNWjWl6CloRJOc3syNIotQE9LgxYK9TocaohFvmUnLtgzcMmWg8v2XFx25KDAugslzsM4cP0jOBsqRRdgoSYf244tx8nCD+HQa9pIUHnmU+wqeQO5dTuQqN2MFO1WvF+yAv1XDnlKbAG2Vy5BgNFowqbNscjKuoGYOXIACHoK7DIJ0P9zgB19AHYVCXY23bn/tYpFkop9i9yOGhUc+hI4atRe9Bo4ajVoMWm9IjDfaCVBkQWYsdTjMFVg57k/YnfNEiTW/RG5lneQb92GfOs25Fm3Ic+6FQctsdh6dpnoAsyOn4P15+Ygw/Im3ip6EV9+vjsgv+LCPdh2aTniq1YgVrMAW66+jPdUr2BRyhNgC8LHBEOAIVHZtwGgwwXYJRKg/0erO+MAjJkj73QJdnYC7O797xXgYqe96jIcejVsFWdhr1HBUaOBg9egubYUTlOF9xTZrPONC9aKLMBlbrvxOv5cKMfbpbPxUfV8xOkXQaFfAgW/BAp+KdKM6/B26W+xouD3cJrEE6B04eAo+ZFxWKv6JVZcnILN3zyDZSdmofhkHIo+2403in6H1y6Mh/zUKLz0xXgsLopGTFI08uPnBuUUuCsJsNMTYNzuOBiN3nGXzjoAu4IEO4ue0P9axaIQ7aevNtt0F2GruYqb5Wdws+JL2G9cgaP6Khx6NZprS+DgS9Fi1MHZUBUcARquYe1nMvxZ9Rv8pfQpbPz6aWz4ehY2lP4Gb2l+jSXnJuDZwkGQH5gJp0knXgKcP3TqzMRhmH1iEJ49fi9mFoTiuaKBkOU+jleOPolZhXdjcg7D5CyGSZkM0+KG4qtrp4IyCUIJsBWbNseC5/nADFRnHoBiHIT+/01+6FasJPmvbsXu/+/bvtj9/x0CDK34dEmzvfI8bpZ/CWvpMTRd/wxN5adh056FvdqbDB36EjhqS7zjgV4BesS65q8qfZnbXn8Nq469gP8pvB8LikfjlTNj8PKZ0Xjpy1/gvwvDEZ3dG5OyQiE78CScDTpRT4GVH/8ek+MGITqbISrLK7sZh3phWk4IJmYwTExjmJDGMPWj4big+gzuZlOPEGCPT4DtQQmwe/W/VrEopOLTxc32yotoKiuCVXUEFvVRNF07hqayL2CrPANH9WXYq9Vw8Bo4TZUQrLxoAvROgixz243lmJ/zNKIz+yAqqw+mZPZBdFZfRGX2xqQDoZiUGYJJmaGYmyG+AHXpS3HwXBbGfjgAj6YwjEtmGKtkGMsxjEliGJ3EMPHvQ3DmckFgQogSYDcfAyR6Rv9rFYtCKvYtbrHfuISm68dhvpoP85V8WFR5aLx+DE3Xj+NmeTGays94J0b0GgiNtajYu0jUSZBmoxbzEud4RilCEKFgiFAwjIz/djtS4WVuxsygCFBorEP20R14aPsAPLyPYdQeHwqGcdvux9nzua32P7gCvFOtWrOOZoGJnjEL3IEClGj3LnLba1Q++R2G+cphNFzJg/lKHsyqPDR9cwyNZafRVFYcEIDY1wG2NFRCnvi8O0IRggiFBBGKEETE+7aKbwUoS4hxB0uA5it5SMl8DxFbfoyRH0sx4iMpfvHufTh5MhFNZcVt9j9YF0Lf6VrAeQtXBgQYGRnZ5jm6DpDokCTYfS+EXuRx6DUwX8lHxfkUVJxPRfnFVJjV+TBfPQKz6ohPjnmBFSPBWAmiPKqELOF5tzwxxi1LjHHLEmLc8oQYtyzhebcswfs4p+hQYAxOTAG6m01oKitAU1kBco/GIWrHz/H4jgk4XZQcSH5+gjUGyBhjWm0lbqW1/LKybmDjxiOImSOHf4iGVoIQhAgrQdwOE9wOA9zNRu/WbvBuHQa4nAJcgjNoK0Fuvfj4TviX4oktQH+6c+g1sNeocfL8QZy9UnCb/Bx6DZrKijt0KVzMHDk2bjyCjRuPYNWadYG/Y+bIkbI/tWckQIII9s0Q2l/4v6zdGwF0lZsR9ISbIeQUHbrtVNg//he3O44SIEEQdDssSoAEQZAAKQESBEECpARIEAQJkBIgQRAkQEqABEGQACkBEgRBAqQESBAECZASIEEQJEBKgARBUAKkBEgQBCVAEiBBEJQASYAEQVACJAESBEEJkARIECRASoAkQIIgAVICJAESBAmQEuB/hABvrb8xdu+dOmMjY33E7ByCIAFSAuwyH2D+iBErdJs2Vef99Kfzbu2ML4YNm2/askVzYsCAZ4MpQCljfVvTkX0h7RcSvmHDhk3tMWXKFBkd8AQlQJEF+H3q3j/dF7Xz6srLE7dPXCTaG/RVdt++f6xdvRrIyEDDhx8688LD5f7XCocMkduTk52oqIA9Pb3pmE+CQZFfv5BwxlgkYyxS2i8kvCMl6JPcbWW32cHzPDZs2LCJDnqCEmAnCLDf8kHjFNffMpQ4jiOX/wAPbo6YJ5YA0xhbrg4NBT9gAMy//jVc27bB/P77zvzw8LkF4eFzbR984ERuLpCdDZw9C0dq6s0Tgwc/GwwBMsYijUYTjEYTpFLpE4yxyI6SYHsCdAkCjEYTVCo1AJAECUqAwRDgvase/NWLOc9khb0cPuK25LdiWPROzYra3LodSNRuRop2K94vWYH+K4c8JcYHuJ+xTy4yhhuMQc8YzAMHQli4ELbt2+F4911g507ggw+AvXuB1FTgyBGce+ihLcE4BZVKpU8YjSYojyo7XILtCdADwNpohVqlhrXRCpcgkAQJSoBiCrDPq0Onrj0725JheROrPp+rYfKBQ/xv4kdLh43deun1uviqFYjVLMCWqy/jPdUreC7tsXK2IHyMCB+gJI2x4cmMZVxlDDxjqGcMFsbgfOwxeNasgWftWmD9eiA2Fu5PPsFX48ZlpDE2PJgCfOoPT3a4BO90CuxyCrA2WqFSq6FSeZFKpU+QAAhKgP+mAKULB0fFHB3dtFb1S6y4OAWbv3kGrxbM0rAXfjL0ntceeHRl0W/rXrswHvJTo/DSF+OxuCga0+IjNUw2aLyIY4CSNMaGpzCWrmLMU8sYjIzByhiaH34YrsWLgddfR8vatZ4vR49OT2NsOGNMEmwB3irBYI8J+gTouS0FegBBcMLSaIXRaIK10QqaFCEoAYqRAOcPnRqVOMg0+8QgPHv8XswsCMVzRQMhOzij7OWjT9TOKrwbk3MYJmcxTMpkGLGr93UmHzJB7EkQxhhLZmzoIan0arVEAp4xmHwSdIwYAbz6KtSzZl1OZmxosGaB2xNgawkGOwVOnTpV3p4A0epJlyDA5RRIgAQlQNHGAOcP/dXPdoXWRGczRGV5ZTfjUC9MywnBxAyGiWkME9IY7tsepmEvDBsr6htsLcBeveZ9ddddTRWMoYox+JOghTE0P/IIjEuWNLa+RKb7CXCaDG6PC/+sPCABEpQARZ0Flg/77f07pXWPpjCMS2YYq2QYyzGMSWIYncQw5L1e3zDZ8ImiG9pXSsbkJ3r3btEwhlLGUO6bFKllDAbG0MAYHBMmoH7hwpaDQ4bIO0qAHXkKPH3GdLnH7RH8ic+P94+2wZAESFACFPsyGPmQpwa9K619eB/DqD0+FAz3vh1WymRDxwflDTLGkkNC5h6WSIQzjOE8Y7jKGK4xhmu9e+O6RAK9b3LEEBaGm+PHg587Vzg8ePCc7jYJMmPGDLnb7XbCDbhdLrgFwYvLBZfggksQAhmQBEhQAgzGdYDzhz7747d71Y78WIoRH0lxz/qwa2zufVFBMzRjTBkW9te8gQPxRUgIihnDRcZwPiwMB/r2PZjC2KErjKHalwjr+/cHHx2N/GHDNgVTgB0tv+joaMn06dPlzpaWFpcgQBCccDq9uJwCXE6nd/xPEOChBEhQAgzihdCyob96ZOtI06h3RpbdKfmJKEBJGmPDEsPC/nF44EAUhYbiZEgIUqTS9DTGHkxj7EElY+kXfOOCX991F3LvuecfaYwN624XQk+fPl1ua7I57TY77HYftttxCQIlQIISYBBXgkiYbMh/tZ7tDWYCZIxJ9jN2f1JYWELmgAFQMnbAd6mLf6XI8CTGDpxgDJkSScJ+xu4PymUwnbwU7rHHHpNZrBZXY1Mj2nCzEdbGRlibrLA2WmG32SkBEpQAu9nNECS+tPdiGmMRjDHJLa9F+F570P9ad7sZwtSpU2VOZ4u7ubkFDocDdpsNDrsDzY5mCC1OCIITLsFJkyAEJcBuejssSSv+6Wvd7csslUqfWLVmnXv12vXu1WvXu9a8+RfXmrXrXavXrnevWrPes3rNOs+qNeuwas06WglCUAIMlgC7+k511y+C/xS8b//e4dJ+IeF9+vce3Kd/2OA+d/ce3Kd/78HSfiHhAbzjlVRUlABJgKBvCxUVJUASIBUVFSXALi1AKioqqh6bAKmoqKgoAVJRUVFRAqSioqLqIgmQIAiiO/D/AwDuKUn4ex3n/gAAAABJRU5ErkJggg==);
-}
-
-/* 40px.png */
-#jstree-dnd.jstree-dnd-responsive > .jstree-ok,
-#jstree-dnd.jstree-dnd-responsive > .jstree-er,
-.jstree-default-responsive .jstree-icon,
-.jstree-default-responsive .jstree-node,
-.jstree-default-responsive .jstree-icon,
-.jstree-default-responsive .jstree-node > .jstree-ocl,
-.jstree-default-responsive .jstree-themeicon,
-.jstree-default-responsive .jstree-checkbox,
-/*.jstree-default-responsive .jstree-file,*/
-/*.jstree-default-responsive .jstree-folder*/
-{
-  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPAAAAHgCAYAAACb9OC9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAADNJJREFUeNrs3T1uI8kZgOHqMbGwHPgGhsYXYNI8w9zBIU/GzLHjPQOZ8ADGjGMnC8MQvMG0E3FWK0gUf6qq66t+HkCw1hg1ye56VdVkkxqmaUo5DMOQoDfjOE77/b7Zwf3JIYK4BAwCBgQMCBgEDAgYEDAgYBAwIGBAwCBgQMCEcTweH4/H46M9EdvKLlhmvNvt9uvz95/X6/U3e8UMTLB4U0ppu91+NRMLmIDxiljABI9XxAImeLwiFjDB4xWxgAker4gF/K5xHKdxHKdeb6+XeEUs4Ddjeuv7Xm6vt3hFLOB0LqCSUdW+vV7jRcBnwykRVe3b6z3e3W7nKq2lBnxJMDmjqn174qXbgK8JJUdUtW9PvHQb8C2B3BNV7dsTL90GHCnEHiIWL59aiDfC0lu8LOYcuHRUS75AQ7wUCfhwOAw1Is4Zb877LF7Cz8ClIxaveCm8hC4VsXjFS6Vz4NwRi1e8VAy41VDEK14BBw1GvOIVcNBwIsYLTQQ8d0CR412v1992u93nXNvz/l4Bhwqph5lXxDQRcO2gelo2i5gmAq4VVo/nvCKmiYBLB9bzE1YipomAS4W2hGebRUwTAecObkkvFYmYJgLOFd4SX+cVMU0EfG+AS75IQ8Q084b+W0J0hZWIBdyQa4IUr4hp8CN1LglTvCKm0YA/ClS8IqbxgN8LVbz1I0bAWSIWb/2IvX9YwFkiFm/9iMUrYIJGLF4BEzRi8QqYoBGLV8AEjVi8AiZoxOINbJqmLF/EcTweH08fmO9CjfPGcZxyNVLia+UQLXMmPh6Pn0/f2yNxCXjBEdsLzoEBAQMCBgEDAgYEDAgYBAwIGBAwIGAQMCBgQMAgYEDAgIABAYOAAQEDAgYBAwIGBAwIGAQMCBgQMCBgEDAgYCBuwMfj8dFfiYfbrOaOd7vdfn3+/rM/Og1BAn4Zb0opbbfbryI+bxzH6ZafOxwOg71nCV0s3lcRW05njPfen0XAF8Ur4rIBiljAxeMVMVxnmKY8v5iHYcgS70u73W4R58RRZ8clnFuP4zjt9/tmH2eVGfiWeJcwEx+Px8fIS9txHCcrpc4DvjVey2mYOeB74xUxnLeKckd7fJ34+bEMwR+Dinqdgdfr9bfdbvc5c8RmYqh1DixiCBywiKGcaq8Dp5TvSa2T6K8T594fc+j9tXqvA5uJoY+ARQzBAxYxBA9YxBA8YBFD8IBFDMEDFjEED1jEEDxgEUPwgIHAAbvUEoIGLF4IGrB4IWjA4oWgAYsXggYsXggasHghaMDihaABixeCBixeCBqweCFowOKFoAGLFzo5BxYvBAs41/t7xQszzcD3RixemHkJfWvE4oVGzoGvjVi80FDA10QsXmgw4EsiFi80HPC5iMULV5qmKcvXLY7H4+M4jtM4jpOPf6VF4zhOuRop8bWac+es1+tvx+Px8+l7wwWus5r7DggXgp0DAwIGAdsFIGBAwICAQcCAgAEBAwIGAQMCBgQMAgYEDAgYEDAIGBAwIGBAwCBgQMCAgEHAgIABAQMCBgEDAgYEDAgYBAzMZTXXDY/jOOXc3uFwGJZ04Ow/qgece9C93nbvg7D0/hOzgKsPvGsHXcTQa+y/t25PyM6Bm4t3jiAixdvKbdNAwC3GG2lwtnAfRbzQgFuON8LgbOm+iXhhAUeIt+XB6T4xW8CR4jXbiTi66q8D13pm85rBFunZ1tL3VaQLnoE/OvjibX//fXQbAl/AObB44+6/aPtFwB3pNV4oHvDcS6vo8bq4hMXOwGZeBNxQjNcEKV4E3OBMekmY4kXADS+DzwUqXmgk4GtDFS80EvC1S2Xxwm9WUe7otS9diBczcAUlQhMvAg4asXgRcNCIc7/NEARcKWLxIuCgEYsXAQeNWLwIOGjE4kXADTsXqHghwNsJ3wpVvBAk4NfBihd+E+ZSShdoQNAZGCgcsE94tP8wAwMtBlzzSaUen8Cy/ygecAuf6t/KX4ew/6ih+rPQfrvbfzS8hI48w7mP8fefgDs90J7lFa+Agx7wiIPP/mPWgFs58JEHn/3HrAHPPQB6GHz2H+esag6EWs+g9jbw7D9mDfitgZF7MC5h0Nl/zBqwAWP/EewcGBAwIGAQMCBgQMAgYEDAgIABAYOAAQEDAgYEDAIGBAwIGAQMCBgQMCBgEDAgYEDAgIBBwICAAQGDgAEBAwIGBAwCBgQMCBiWbjXXDY/jOOXc3uFwGBxOBBwo2ve2LWYEHCTcc7cnZJwDB4u3lduG8AG3EJCIEXDwcESMgIMHI2IEHDwUEdOb6q8Dl35mWKSYgQvFU+NlnY9uQ+AIuMGZd67bgkUtoUvNhKLFDFwpyBLL2LlvH7peQgMCBgQMAgYEDAgYBAwIGBAwIGAQMNCelV3Qt5av+/YGFAEjEktoQMCAgAEBg4ABAQNtB3zNyxUlXtqY+/ZhDrO9DiwiCLSErnlFkE+dRMAFZtUaYbXw1yGg2yW02REaXkK3PMOZfRFw0FDEi4CDBiNeBBw0HPEi4KABiZferWqGVOsZaOEi4MJh+fvAECxgwUGwc2BAwICAQcCAgAEBg4ABAQMCBgQMAgYEDAgYEDAIGBAwIGAQMCBgQMBk4G9RCRgQMCBgQMAgYEDAgIBBwICAAQEDAgYBAwIGslmV3Hjmd8IM9/zw4XBwtDEDAwIGBAwCjsonTSDg4Pd/Sin9xWFEwHED/ldK6c8OJQKOu4z+RcQIODYRI2ARg4DnjviPDi0CjusppfSTw4uA4/pfSulPDjECjuu/zokRcLsueYfSLymlvzrUCDhmwCml9E+Hmh6tgsf76cLHaBmNgBv0/YJ/82tK6d8ONZbQgBn4Rn9LKf3hxqX2f1JK/3C4EfB8/p7hnBksoQPy5n8EHNh3hxoBAwIGBAyLt7IL+pf5L2RkczgcvDIgYERiCQ0IGBAwIGAQMCBgQMCAgEHAgIABAYOAAQEDAgYEDAIGBAwIGFhSwD5WBgF7nNCWoh9q5wPVwMwECBgEDAgYEDAIGBAwIGBAwCBgQMCAgAEBg4ABAQMCBgED4WT7RI5pmuxNurPZbMzAgIABAYOAAQEDAgYBAwIGBAwIuKbBY0LAtMT1sQIGBIzlNwIGAZstnC8iYEDAIGBAwICAl2ez2fz4Ov03fGRlF9QP9Zz9fv+7/4XFBvxOLNPDw0N6enoaronk5bZOP7fZbLKGdsu2Xj3GKaU0lIh/s9lM6YOX2/zSEXDR2e15gKenp6f08PAwbTab4TTwXv/sW//f60H68t+8t42c8X7w+E6vQ/94XJfc5oVL9enlLwjZOAeew+8utDhFfO8MmWPWybCN6YP/bnXbCPimQXh1xOciuyfAAvHmDK3kthHwXYPwR8Sbzeb7HHesYLw5Qiu5bZZ+Dnzludul/3a4N8hLX/6pEO89j2uqtc8wA+ecIe6eVS4Js2K8t/4iq7rPEHDRpeO1wRV+OWUq+HPTDPsbAWcfTNO9Mb73c9cssws8tmmmbSPgqoNouHcm/SjSGS+VnErtN5d/1hfmSaxLL9LIFW+NgXzDlVxDxhXG0Np+Y7kzcLh4b/n3z7HnCmV6vjyyiRULyw04e7y3DsS3rpcutPRsabYz8wp43nj3+/3s+yFoxOJ1DnzzYM458w733t8cy8cZz4nFawZ2zrugmVi8S5yBXzxpMpxZzi423iAzsXh7DfjC96uevh/u3EaX8TYesXgXOgO/d/HAcOc2QsZb8OWWkhGLd6EBf3T53tBKvBk+FePiOC/5JXBj6CUiFu9CA770AvrBsvmyeC/8JTMkV1gJuEK8H0Us3tvuR+6P1BHxwgKeMgyUIvHeM7Pl3EbB8+Op0PEUcYM+NRLv659d5PKv0XhrbJtGAp4aGijiFbGAg0aT9X6UPv8NEq+Iew8489vdxNtuUCLu+Bx4zojFK+JFWRWOaWoh3kaeHe4p3pf3wbPTHc7AtWfiMIMo06ze0uxnJu444BpxLW0GaOZ90CLuewldYzl90UUarSybT9u89QMASnyGVcbLLqfNZjP4XKz+ZuBSM2XomXfGj2AdrGIEPHd0XQy4GT59Y5hp23QSsIEyX8TDzNumk4ANlPoRD41sm8yyP4n13pMYbwzSa5886XqgFPwInVv2W8lt03LAtQdKT896Foh4KHhsxLvgJfQ1A2FRA+W0UrliWT0U3G+DYyJgA6XOTFxqvw2OiSX0LUu2bgfKPX9z+MzMfNp/Q8FjI96lBvx60L4zEIeff/75py9fvvza87lu6ZVMjo8HemNV4CqrFg/4NLmMNc37N4bs07ZPZ6b9ft/symOV6UB1M3u9Imq6X0Ib5GZxej8HZtGrGwS8SJFndL98KvhkFyBCAQMCttz1mBAw4hcwIGBAwICAQcCAgAEBw3L9fwAtDc+RYNrg1AAAAABJRU5ErkJggg==);
-}
-
-/* Remove icon from customized items */
-.jstree-anchor .jstree-themeicon-custom
-{
-  background-image: none !important;
-}
-
-/* Attempt to override throbber.gif */
-.jstree-default > .jstree-container-ul .jstree-loading > .jstree-ocl,
-.jstree-default-small > .jstree-container-ul .jstree-loading > .jstree-ocl,
-.jstree-default-large > .jstree-container-ul .jstree-loading > .jstree-ocl
-{
-  background-image: none !important;
-}
diff --git a/css/less/panels/layers-tab.less b/css/less/panels/layers-tab.less
deleted file mode 100644
index 0ea9dbb3dcfaf7eec24a81817d1998cd0b359d5d..0000000000000000000000000000000000000000
--- a/css/less/panels/layers-tab.less
+++ /dev/null
@@ -1,110 +0,0 @@
-// TODO: Go back through less files and remove mirador-container
-// wherever it appears explicitly, as it is
-// causing specificity problems.
-.mirador-container .layersPanel h3 {
-  margin:10px 0;
-}
-.layersPanel {
-  position: absolute;
-  width: 285px;
-  left: 0;
-  right: 0;
-  top: 0;
-  bottom: 0;
-  overflow-y: scroll;
-  .layers-listing {
-    padding: 0;
-    list-style-type:none;
-    margin-top:0;
-  }
-  .layers-list-item {
-    .clearfix();
-    border-top: 1px solid @gray-b1;
-    padding: 10px 10px 10px 0;
-    margin-right: 20px;
-    &>h4 {
-      margin-bottom: 5px;
-    }
-    .thumb-container {
-      position:relative;
-      float:left;
-      width: 60px;
-      height: 60px;
-      margin-right:10px;
-      img {
-        position: relative;
-        margin: 0 auto;
-        max-height:60px;
-        max-width: 60px;
-        display:block;
-        opacity:0;
-        border: 1px solid gray;
-        box-shadow: inset 0 0 12px gray;
-        top: 50%;
-        transform: translateY(-50%);
-        &.loaded {
-          transition: all 0.2s ease-out;
-          opacity:1;
-        }
-      }
-      .spinner, .failed, .thumb-failed {
-        position:absolute;
-        display:inline-block;
-        width:100%;
-        margin:0 auto;
-        top:50%;
-        transform: translateY(-50%);
-        opacity:0;
-        transition: all 0.2s ease-out;
-        color: #666;
-      }
-      &.awaiting-thumbnail {
-        .spinner {
-          opacity:1;
-        }
-      }
-    }
-    &.requested {
-      .spinner {
-        opacity: 1;
-        transition: all 0.2s ease-out;
-      }
-      .thumb-container img {
-        transition: all 0.2s ease-out;
-        opacity: 0.5;
-      }
-    }
-    &.failed {
-      .failed {
-        opacity:1;
-        transition: all 0.2s ease-out;
-      }
-      .thumb-container img {
-        transition: all 0.2s ease-out;
-        opacity: 0.5;
-      }
-      .thumb-failed {
-        opacity: 0;
-      }
-      .thumb-container.awaiting-thumbnail .spinner {
-        opacity:0;
-        transition: all 0.2s ease-out;
-      }
-    }
-    .visibility-toggle {
-      margin-bottom: 10px;
-    }
-  }
-  .disabled-overlay {
-    display: none;
-  }
-}
-.layersPanel.inactive>*:not(.disabled-overlay){
-  display: none;
-}
-.layersPanel.inactive .disabled-overlay {
-  padding: 10px;
-  display: block;
-  box-sizing: border-box;
-  color: dimgray;
-}
\ No newline at end of file
diff --git a/css/less/panels/manifest-select-menu.less b/css/less/panels/manifest-select-menu.less
deleted file mode 100644
index 6c5710a1f3c4e8b2066ac632f5f1a0177a950f6f..0000000000000000000000000000000000000000
--- a/css/less/panels/manifest-select-menu.less
+++ /dev/null
@@ -1,299 +0,0 @@
-.mirador-container {
-  @media screen and (max-width: 768px) {
-    #load-controls form {
-      float: none;
-    }
-
-    #url-load-form {
-      margin-bottom: 5px;
-    }
-  }
-
-  #manifest-select-menu {
-    position: absolute;
-    margin: 6px;
-    display: block;
-    left: 0;
-    right: 0;
-    bottom: 0;
-    top: 0;
-    display: none;
-    overflow: hidden;
-    z-index: 18000; /* Must be higher than Qtip elements. */
-    background-color: @white;
-    box-shadow: 0 0 6px @black-33;
-
-    .container {
-      position: relative;
-      width: 100%;
-      height:100%;
-      padding: 10px 4px 10px 10px;
-      box-sizing: border-box;
-      overflow: hidden;
-      margin:0 auto;
-    }
-
-    .remove-object-option {
-      cursor: pointer;
-      display: inline-block;
-      font-size: .9em;
-      font-weight: bold;
-      transition: color 0.2s ease-out;
-
-      &:hover {
-        color: @gray-91;
-      }
-    }
-  }
-
-  .items-listing {
-    margin: 0;
-    padding-left: 0;
-    box-sizing: border-box;
-
-    li {
-      list-style-type: none;
-      overflow: hidden;
-      border-bottom: 1px solid @light-gray;
-      padding-top: 10px;
-      padding-bottom: 10px;
-      position: relative;
-      padding-left: 5px;
-      transition: background-color 0.3s ease-out;
-
-      &:hover {
-        background-color: @gray-dd;
-        cursor: pointer;
-      }
-    }
-  }
-
-  .manifest-load-status-indicator {
-    width:100%;
-    padding: 10px;
-    box-sizing: border-box;
-    overflow: hidden;
-    background: @white-a94;
-    position: absolute;
-  }
-
-  .request-status-bar {
-    background: @deep-sky-blue;
-    width:10px;
-    height:50px;
-    display: inline-block;
-    margin-left: 5px;
-    vertical-align:bottom;
-    transition: all 0.1s ease-out;
-  }
-
-  .request-status-bar.pending {
-    background: @gray;
-    transition: all 0.1s ease-out;
-  }
-
-  .loading-status {
-    display:block;
-  }
-
-  .request-status-bar:nth-child(2) {
-    margin-left: 0;
-  }
-
-  .repository-label {
-    border-top: 1px solid @black-a70;
-    padding-top:3px;
-    position:absolute;
-    bottom:0;
-    width:100%;
-  }
-
-  .select-metadata {
-    width: 45%;
-    max-width: 450px;
-    min-width: 300px;
-    position: relative;
-    /*width:200px;
-    text-overflow: ellipsis;
-    white-space: nowrap;
-    overflow:hidden;
-    position: relative;*/
-  }
-
-  .repo-image {
-    position:relative;
-    width: 80px;
-    height: 80px;
-    overflow: hidden;
-    opacity: 0.5;
-
-    img {
-      position:absolute;
-      width: 100%;
-      top: 0;
-    }
-
-    span.default-logo {
-      position:absolute;
-      width: 100%;
-      height: 100%;
-      top: 0;
-      background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIwAAACMCAYAAACuwEE+AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAE/JJREFUeNrsnX+olFd6xz9nGC4XERGxIiJBUgmpmDQk2WCzaWqsiPmBbLNpPLPW/UHChiRtNt25IVlkG1wJacp9DQntbgPbbOhuMrNJ1lprVWzIusHaRSSVIGGRrAQRERERkdvL5TJP/3jPtG/efX+c875n5o56HrjM3Hl/nvN+n9/PeV4lIgQKZEuNMAWBAmACBcAECoAJFAATKAAmUKAAmEABMIECYAIFwAQKgAkUABMoUABMoACYQAEwgQJgAgXABLpeqVnlIKVUmLmrkCYmJhCRhhEUY8D05ORkb+CACXRVAWQcuAG4XURuAVYDy4FlwIPAxwEw1zG1222AJcBaEbkfuEcptUJEmmnNYKQNATDXJ1DGgHuBrcBDwMIsG7Vu0X8AzNUPlHnAV4DvALcnn6lSCt+rQgJgrl6gNIENwIvAnUXSJP0ZAHP9gWU58DLwKDBWJkn6231IHK+A0Vr3z9lH+6xSqtfpdObSAOzfzzgwDcwCvSiKnM/XarUaItKfsx7Q63a7vWGNx3g9G4A3gBW2dolPCaOqnCRtbWut5xs9+iBwK7AYuAJ8DhwH9iulDnU6ndkh6vX1wP3AXcaNHAemgJPAvwNvRVF03pIJbgS+BtwHrFBKzRORC+Zc/wXsBj7rdruDBEsDeEZEXgbG+88gKTmSEiT5W3K/1DFfmpycPDY0wGitG8Am4NUk4jOoB5wGfgS82e12LwwIKEuBbwNPmDhDEZ0Htiml3swLXhlG2A48ZQCXR7PAR8BrwL5utzvreVxNo4K+S4XofIFKGh5gWq0WIvIM8IpSajwP7Rk3+zmwQyn1s06nM+PRpfy6MQCXp7krLZ4T9zID/C2wPYqiXgosC4EOsDFr0nM+Z4FDwPPdbvdjj2B5BXhWKdXIGkfeeLOkTUrSOAOmci5JRNYBLwHjRaBL60+l1ArgDRF5W2u91MOELgN+CvxIKbU879r9vxTwx4AXgIfTtooZ28a8h5Dz2VRKrQd+qbV+Smtdy0bsqyHz1yizQ5LjtHkmVagSYMxEbAfmK6UKc0v9bal9mkqpR4D9WutVrVarkkHbbrdXAvuNt9CsODljwI52uz2eOOZ24JvpcSXHmvWZ2H+BUU+vaq3n1WDKDcCO/th8uslVj60qYW4F1mRxr+PnbcC/ishNLqCZmJjA2Ez7zb04TWTGfjcBaxO7bAXmpcdVNs4UZzeBvwRe01qPV2CIFcbmm1f34fv0kqoCZq1SqpnkrCLOK/lcCfyLiCx14I4lwL8BKy2kmY231wD+uN1uo7UeA+7JO2eZhMn4/XFgh4t6arfbfZW4wsVbdZTyQwXMH7hwnsXnKuCfbDjRqI6fEGdda3FSar/VZj4WGDfceRwF8/As8BcOUnQ98IgvtTIKEmaBBWc5fQIPAM8aV70oEPdds+/vcI0tJ+XstyhhCI95lDB99RSJyGpLj+8lcx+FEqVgLgufyVwABs8Spk/PZ0mOlO30XB6XudowOXPRcPCKrOfBAPLVVqs1VjK1m4hrV0rvu2guS+5l6IC5ksVZHv4WAttbrVYzJx7xIrAw69gyrs/aL8Wpl82kzgAznsfVv8ZaEXk4TzUZN/pppVQjy/uykWYF1878bViA+W0dEVeC9AdEZE3G73dmxUXqpjUS9JmJSF82UWDvZByF50RkLGdeVicNbhfDdVhls1UBc1xEerYiMk8k5mwfA54wOZyk7fJY0tXNClIVqQmL/f87iiK63e408GnWflXUVE4oYW2OfbYZaOa580XjsNjvnIgcEJF9IvKJiEwPEzC/Jk4uWnGBq+FIXOexJHGKhcBDlmLfVU1AnMU+nLjef1Th5jIj01yzAWxJMkQigLip6riKVDDwY+APoyi6P4qiB4E7gFuMVHWiqqHri8AB4NGyfIVDjilJi01gcI/5/y5gSZnRlr6mg3o6JiInE5sOAhdFZFEyw5seZ5aqLcjbJK+5nv8vt+jTjcCqOiH9nO17gCejKPq/hKj5/hnA5OTk4CWMSeP/hLjepbZLncEZDeDLiUveBTTyOMpGqhWE8XvAGzt37kwefhrY6zN0kLrmUhNd/kIwtD/GstSDreQhzqJ/PwmWOXOrgQ+Bo7Yupu3/id+TE/r7ee6irZ1R8P0EcT1LmiFeE5Ep17RA3n6ptEHDSJSk/fJll3EU7ZfYfsL8zbnRS7fbnQG2i8h0UZKuLOhUwP1LEu7nEhc9brufKUfYEUVRlj12HHinyG7JCpTZuMH9MSW+jwOrbNxgl1ACcMxIUEZBwgB8AHTz0O5qU6RofvL+8ri2pueyO2EnfYE6nU4P2CEiZ11tirz5SNHCZOQcuKFMgrkG74DfVilFHRhgTD3rNuJSxcKJs40TJMB2KcEdU1nGpc05UxIluekU0I6iaKbg2NPEyzcqcWkJk1xMSZsFeQZ1WpLZFHwbujQqcZjkDZ4FHhORyx5iFEmOOpsoHj+V9TBsCoWy9jP3+g1j3OZSp9NBKbUL2Fk1NVBwv2cSm5cBYzb2Sln1v880wEAAYyb1MPAtYMqXRwH8Z+IyvwJ6WarOZXLMcdPmXg/biOtOp9NTSm0Dfgb0XJOPWTaOuYfjic2L0tKkbi5p1CK9vwMaYBewte9Z2IAjT12JyCUTC+nTYeBUuuq9LC+S3kdErhjJsttFt5va4yf6oKkbwDO2XzL9sCRrbHnutM11BpUq8NYfxriiu4CvisiZKnmdhKh9J2kXRVF0GYj6D6u/XxlnpdTFaeCrwLvpgm/L8U0BT4rITuLi8UoPx4TkX06tZxrPs1HyjHuXeR1JwPRBo5Q6APypyVnMWk5i8vMI8GLGGp+3ROSfk6opL7aS+m3WeEL3RVF0sI7X0O12p5RS3wO2iMgpVy/J3MvLZoxJ+j0b9eJaajEI8r5U1qink1rrPwMeEZHnTYyhWbI0omdE9bey1i1FUTTdbrf/yuj/x/slogXh+VkTh3gF2Osr2mkW472vtT4MtEXkm8DiopSI+T5FXHb5d2lmSC4fsWEum7RLHuhM+ecik544Umb4DxwwqcDeO1rr3cR1IFuB9SKyKCHZeiLSI85+/0N8WDc3ixpF0ZV2u/00cQ3wX5tw+pg5X8/8nRORg8Rrij4qcptrju9cq9V6TkReNYyxmbh7wlhqfFeAfcSL/Y5mrY50lQauxq9ZYjsG3E1c4P6ASU98yRUwlReymVLKhu0qP5OdHTMh/xuMxJkCfgOcdV2DbcLpC4Gb+eLS3DNKqVnbpJopiZxJqyqtddPcU6m9Yxb1Nfr3o5RabOb1vAnNXylaRjsxMRERl556JRF50jgMLUArpW5MbXdeyFZHwiwAfqG1/hWwSyn1adHkmgmbwVN+wzzgS8SlFk5kqvduJa4/uRf4k7QhS1zI9aTW+m3gQNHyXgP0ngnGHfEc4LNi4JxzfN94YE1frnezxk02RGSVUmqdiDwvIsfM5O5VSp2z4cxhktHdNxA3DWgBtyqlxkXkQk6eaExENiqlNojIBa31AeBt4IhS6orPjhR123AUHLvMd5ym6WnA84B7ReRe4IKIfKC17gCHlVIX56rdh9HdS4yts8V8LnB8QA3DpV8Xka8Bp0Rkl9b6PeDTIpurzgPPusei2pyR7w+TN0hjT2gReRT4XET2GvAc9zG5liCZB6wRkRbxYvplmFoTmwhqQWCsaWywF4hbbxzXWv+cOIl5pmqvmKzWHUVznrePZXFaLeA0fYrR1M02RORGpdQzIvIUcMJM7rtKqdM+e8UkGgetFJEtxIvrb8ZyyUiZC5vzOQ+4Wyl1t4jsAA4ZlXwQuOwCnipLZVzjMr5U08Dc6tRNNYmLn29TSr0oIocMePYCF6o24jHSZJmxSzYbt7HpyoE2kdGSkoUFSqlNwCYROQfsMVL1CDBTNr6sRkA2TGrZgsRa8swpYPIGZ8LgG83fReCA1vptpdSHnU5n2lKazAc2GmmyznhspSrGheOy7Iec8aSP6Tc1epy4brartX6vzIu08Zh8SZSRkTAVlscuMoakFpHTWuv3gZ8DH6dFuvFy7jYezsPENSSNvDZdeQXYLpzmUiWYsb0B3CQifwO8ICJHjcrabbzI5APs2QDSRYIU2T91gNP0rHqqUoO4U8EEca+XO4B03GORAdMyV46sY8NYqqQySdvvCHEPcIuIPJ3abb7N+atKlLog8QoYl+UWNstQ+jZIFqjy8kdZHFRml5RJmLycUNH48vZPbWtmXKtZdB1bxnVt7DRUCZPRisxpgK4TYmOoVc3J2Ijwon2LJEJRPMWnJPMo7UtVQW17ZRjrel3qQFzbfdhIGZtz2hRzlakMX1K+yryMkls9lPLCGi3LCl1w3/ZQ1RLTqsw0Cu0+nFHvut7ah5dWlzNd77+qhPHtnY6shKmz6L4KWGzcRheDfABhAqftZcDN6+RdFi+yiSdVDd41fIrCuoEll9JC25pem+UorqK8YhsTq+tk1fBm/W9THppjiE8DR0WkTVyLNLdxmEHmN2zXS/tYs1MXFC7jK4ga15rrBM0SZ9n3mFjWiSiKpsG9e4M3ozdP1JXlP+rYFenzF72kwdVFLxuPbUbYBgyuKsImR2S+XwL2isjbxOuwrsy5l2TTxdKmFUcdUFYBVx1j0tb2yguWlQXYiuI3jstMtkVR9MORiMPYqATfNkwVlWRzf1VtGF8hg0GoJPPde9XjUCWMzadLMrBu9NjGtij6Pe9aVSRoWZCwKN2Qdy+DiPw2fEgW1wDSIAbkem6XzhJ14xs+4h9lKYlR76JZ2mCnavyh6sCrxHSq2DWDoDrXHxZQvHpJRV6D6/9lk+Cj2Nl2v2F5SUUBtqLffFbSDRUweZKjCnDqinefEqaskU+Z3eHiJVX9rUiyDgI83sobfAbyXEoIBi1hXAN1c6GahqlWa68aGLYOrTNBLscNamw5oYPLNmuNylTQVaGS6q6Vyfq/Kie6pgZclpm4gq/swbtKbhcpPZJeUnLwdd5ZVMXar+rm+rhmWbtYm/IG1xjMXHtGA4vD1C0HsJ2oGi3LKl3PFXCuLn5WGcM117LMpjbD1TCskCsZSsyijmQa1P1VkWQjZcP4+r+qfq/idbiWHLicyzU2YtHi3nsR/JwApu5yzfSnS5zChQNLln54H58LAH1JBJuWZSMZuBvEuVxVVZVcV5lbXdWmKQONrwc7DG9pTpfKuhiHNgvmisDjCsQiA7LmElpnaVg1JjSSEsam64BNnMbVoC7iKlcuriPVfAQLXWpf5pq8x2FcjMKqEzHMOEzV6kEfHs8oxV+8AaaqWqoivl1BlldQVGXibUszqqxLcqltrhIkHdnAXV2d72LcVglS1bFjXMBdZV2S6+uBqkjYObVh0v3+fcVhfMR+fF3LJgZStF56WDUqw4zHDKTdxyAGW8Y9Ng+06muFfdpULm/GLXIKbNuUjLRbPch+az4Xutmcs6xr1aDGV3SP10S22lccxsXDcUnG2STrXG2YKuMtslNsgoRV53Nk4zCDVkk2S2IHsebZxbPxOW6fLctGLg5TJ/YxTO4YRKxnGC02Rom8rHwsW2BlY6wOUw/bgGNUIqvXHGDqRl19cmJoWTZ4uqraffi2F1xyX1WbJ2dtH8aS1msiDlPWvtT2Ibq0Wrdx+W0MXpfssWt23GYdV5GLn7V95OIwPpKGdWpRXd4WX0Vsu5Q3+FIRRa60bR/iQaungdT0hpZl1dSt75Zl170Nc622LLOt36nRsmx0vKQyD8W1+5QP1WG75rnOeOrEYbJskzprpIa5zCS0LBsyaIbcsmw0A3fDsmGu1ZZlNud0VUmDUkuhZdkItCwri5bb7BNalnkyvm32n+uWZXXWU4eWZddhy7JhBU7nOnDXw7xN/mptWWZoioz2pCIyC/TM23Fzr3G9tSyrI2EuAX8kIt8BjhK3J891E315TumODOmkX1bRUkYXhxngI+Ax4I4oimYzrrPXjO914GyZNLS9lyLJmrVf0W85krUHnAR+QPzW3tGQMOYll2eB17XWPxSRVUBLRL5C/DLwRlVPaUAty3rACeA94F3gsyiKegXjmwWOaq2PAt8TkfVmfOuBxT7tsbrSwRx7xgCkA/wamImiaPS8JIButzsLfKK1/gR4CVgDbAE2KKWWDUJvO0zu6cREHlNKTbu8kMG8c3oK2NNqtfaKyFLgAeK3264xLzx3AkeRSnJpWQZcAg6ZdwkcAi4MAiTeAZOa3CvAB61W60MRWWw4civxK4QXDKll2QWjcvoTedHHRJr3Tp8Ffqy1fgtYKSKPAn9upOqYbQDONfaT+G1KRI4Tv5VkN3CmSFKONGAyJvc88I7WugusJH5z/GZgtVJqvGpDv5x9p4CPzUTuAU4PktuMVP0N8AOt9SRwlwHOQ8DytH1YVHJg8faVWRE5BewyKvVEFEUzc+GVNYdxEfPS8pPApNb6deA2A5xHRGS5UqrhApQE584Cp4Au8Aul1KeTk5Ozw57Ebrc7BRxqtVqHRGQbsE5EvgGsA+a7vBI58b0HXAT2ichPgSPA1KBVzkgAJjW5Mwljsj+5W4CNwCLLSO15EdlrVM7hQRl4FR2BS8AurfUuYJmIPGzsnTuTKquAIaZE5JCxufb5UqdXLWBS9s40sK/Vau0znscm4D7DXVlieR+wHzgIXBqlicwZ31ng77XW/wjcDGwG/idj956IHDMgeX/YdslVAZgMzrwAvNlqtd4i+z0/F4HHRnUiLeydE1rrEzmxr5eMtJ0ZZSYAUGE5RSAXaoQpCBQAEygAJlAATKAAmEABMIECBcAECoAJFAATKAAmUABMoACYQIECYAIFwAQKgAkUABMoACbQ9Ur/OwDPb/OYDgsfJAAAAABJRU5ErkJggg==);
-      background-size: 80px 80px;
-      background-repeat: no-repeat;
-    }
-  }
-
-  .items-listing {
-    h3, h4 {
-      margin: 0;
-      font-weight: normal;
-      color: @black-a70;
-    }
-
-    h3 {
-      color: @black-a80;
-      margin-top: 2px;
-      font-size: 1em;
-    }
-  }
-
-  .manifest-title h3 {
-    line-height: 1.2em;
-    height: 3.6em;
-    position: relative;
-    overflow: hidden;
-
-    &:after {
-      content: "";
-      text-align: right;
-      position: absolute;
-      bottom: 0;
-      right: 0;
-      width: 20%;
-      height: 1.2em;
-      /*background: linear-gradient(to right, rgba(255, 255, 255, 0), rgba(255, 255, 255, 1) 50%);*/
-    }
-  }
-
-  .item-info {
-    position: absolute;
-    bottom: 0;
-    display: table;
-    width: 100%;
-  }
-
-  .item-info-row {
-    display: table-row;
-  }
-
-  .repo-label, .canvas-count {
-    display: table-cell;
-    white-space: nowrap;
-    font-size: .85em;
-    vertical-align: bottom;
-    color: @gray;
-  }
-
-  .canvas-count {
-    text-align: right;
-  }
-
-  .repo-image, .select-metadata, .preview-images {
-    float:left;
-    margin-right:15px;
-    height: 80px;
-  }
-
-  .preview-thumb {
-    display: inline-flex;
-    position: absolute;
-  }
-
-  .preview-images {
-    margin-right:0;
-  }
-
-  .preview-image {
-    background-color: @gray;
-    box-shadow: 0px 0px 5px @black-a70;
-    float:left;
-    margin-right:15px;
-    min-height: 25px;
-    min-width: 25px;
-    /*transition: all 0.1s ease-out; ?*/
-
-    &:hover {
-      box-shadow: 0px 0px 5px @blue-bfff;
-      transform: scale(1.1);
-      transition: all 0.6 ease-out;
-    }
-  }
-
-  .remaining {
-    line-height:80px;
-    opacity: 0.5;
-    text-align: center;
-    box-sizing: border-box;
-    vertical-align: middle;
-    width: 20px;
-  }
-
-  #load-controls {
-    margin-top: 20px;
-
-    &:after {
-      content: "";
-      display: table;
-      clear: both;
-    }
-  }
-
-  #manifest-search-form {
-    float:left;
-
-    label {
-      margin-right: 6px;
-    }
-  }
-
-  #url-load-form {
-    float: right;
-
-    input[type="text"] {
-      width: 250px;
-      margin: 0 5px;
-    }
-  }
-
-  #load-controls input[type="submit"]{
-    height: 29px;
-  }
-
-  #manifest-search i {
-    position: absolute;
-    left: 0;
-    color: @black;
-  }
-
-  #manifest-search-form input:focus,
-  #url-load-form input:focus,
-  #url-load-form input[type="submit"]:hover {
-    outline: none;
-    border-color: @deep-sky-blue;
-  }
-
-  #manifest-search i {
-    width:25px;
-    height:25px;
-    color:red;
-    border: 1px solid @red;
-  }
-
-  .select-results {
-    height:100%;
-    overflow-y: scroll;
-    margin-top: 10px;
-    border-top: 1px solid @gray;
-  }
-}
diff --git a/css/less/panels/metadata-view.less b/css/less/panels/metadata-view.less
deleted file mode 100644
index 7da12b1a9b993a7c4047e88220d005c4df8677de..0000000000000000000000000000000000000000
--- a/css/less/panels/metadata-view.less
+++ /dev/null
@@ -1,54 +0,0 @@
-.mirador-container {
-  .mirador-viewer .sub-title {
-    border-bottom: 1px solid @gray-b1;
-    color: @black-33;
-    font-weight: bold;
-    margin: 10px 20px 5px 20px;
-    padding: 0 5px 5px 0;
-    font-size: 120%;
-    text-transform: uppercase;
-  }
-
-  .mirador-viewer .metadata-listing {
-    width: 100%;
-    margin: 0;
-    padding: 0px 20px 10px 20px;
-    box-sizing: border-box;
-  }
-
-  .mirador-viewer .metadata-item {
-    padding: 10px 0 5px 0;
-  }
-
-  .mirador-viewer .metadata-label, .mirador-viewer .metadata-value {
-    line-height: 1.5;
-  }
-
-  .mirador-viewer .metadata-label {
-    color: @gray-66;
-    font-style: italic;
-    text-transform: uppercase;
-  }
-
-  .mirador-viewer .metadata-value {
-    vertical-align: bottom;
-  }
-
-  .mirador-viewer .metadata-listing a {
-    border-bottom: 1px dotted @blue-005ebd;
-  }
-
-  .mirador-viewer .metadata-listing a:hover {
-    border-bottom: 1px dotted @gray-dd;
-  }
-
-  .mirador-metadata-view-nav-toolbar {
-    float: right;
-    margin-right: 5px;
-  }
-
-  .metadata-logo {
-    max-height: 120px;
-    max-width: 100%;
-  }
-}
diff --git a/css/less/panels/search-tab.less b/css/less/panels/search-tab.less
deleted file mode 100644
index 5fc6f36c17cdef90583730f6df46a307c5e5933c..0000000000000000000000000000000000000000
--- a/css/less/panels/search-tab.less
+++ /dev/null
@@ -1,44 +0,0 @@
-.mirador-container {
-
-	.search-results {
-		padding:0 5px 0 0;
-    margin:0;
-    position:absolute;
-    height: 100%;
-
-    select {
-      margin: 5px 0 10px 0;
-    }
-	}
-
-	.search-results-list {
-		position: relative;
-		height: 100%;
-
-		.search-results-messages {
-			border-top: 1px solid @gray-b1;
-    	padding-top: 10px;
-    	margin-top: 10px;
-		}
-
-		.search-results-count {
-			font-size: .85em;
-		}
-
-    .search-results-container {
-      overflow-y: scroll;
-      position: absolute;
-      height: 70%;
-    }
-
-    .result-wrapper {
-			margin-bottom: 5px;
-
-			.result-paragraph {
-				.highlight {
-					background-color: rgb(255, 255, 0);
-				}
-    	}
-    } 
-	}
-}
\ No newline at end of file
diff --git a/css/less/panels/side-panel.less b/css/less/panels/side-panel.less
deleted file mode 100644
index b66f1c41cd4af902484fef98fe57aaf525ff949b..0000000000000000000000000000000000000000
--- a/css/less/panels/side-panel.less
+++ /dev/null
@@ -1,292 +0,0 @@
-.mirador-container {
-  .sidePanel {
-    position:absolute;
-    width:280px;
-    left: 0;
-    bottom: 0;
-    top:0;
-    background-color: @gray-ef;
-    border-right: 1px solid @light-gray;
-    box-sizing: border-box;
-    overflow: hidden;
-    transition: all 0.3s ease;
-    padding: 10px;
-    opacity:1;
-    transition: all 0.2s ease-out;
-    transform: translateX(0);
-
-    .tabGroup {
-      list-style-type:none;
-      margin:0;
-      padding:0;
-    }
-
-    .tab {
-      padding: 8px;
-      margin-right: 2px;
-      display: inline-block;
-      cursor: pointer;
-      background: @gray-dd;
-      border-width: 1px 1px 0 1px;
-      border-color: @gray-b1;
-      border-style: solid;
-      color: @gray-66;
-      font-size: .9em;
-    }
-
-    .tab:not(.selected):hover {
-      background: @light-gray;
-      color: @black-33;
-    }
-
-    .tab.selected {
-      font-weight: bold;
-      color: @black-33;
-      background: @gray-ef;
-      border-top-width: 1px;
-      border-top-style: solid;
-      border-top-color: deepskyblue;
-    }
-
-    .annotationListItem {
-      list-style-type: none;
-      border-left:0;
-      border-right:0;
-      padding:10px 10px 10px 10px;
-    }
-
-    .annotationListItem:after {
-     content: "";
-     height: 1px;
-     background: linear-gradient(to right, @black-a00 0%, @gray-93 50%, @black-a00 100%);
-
-     display: block;
-     margin-top: 10px;
-    }
-
-    .annotationListItem.focused {
-      background-color: @gray-dd;
-      border-left: 3px solid @light-blue;
-    }
-
-    .annotationListItem:hover {
-      background-color: @gray-dd;
-      border-left: 3px solid @light-blue;
-    }
-
-    .annotationListItem.selected {
-      background-color: @gray-cc;
-      border-left: 3px solid @deep-sky-blue;
-    }
-
-    a:hover {
-      text-decoration: none;
-    }
-
-    h2 {
-      font-size: 1em;
-    }
-
-    h3 {
-      font-size: .9em;
-    }
-
-    h4 {
-      font-size: .8em;
-    }
-
-    h1, h2, h3, h4 {
-      margin:0;
-      padding:0;
-      font-weight: normal;
-    }
-
-    h1:hover, h2:hover, h3:hover, h4:hover {
-    }
-  }
-
-  .sidePanel.minimized {
-    transition: all 0.2s ease-out;
-    transform: translateX(-280px);
-    opacity:0;
-    border:none;
-  }
-
-  .tabContentArea {
-    position: relative;
-    width:270px;
-    height:100%;
-    float: left;
-    background-color: @gray-ef;
-    border-right: 1px solid @light-gray;
-    box-sizing: border-box;
-    overflow: hidden;
-    transition: all 0.3s ease;
-    margin-top: 8px;
-  }
-
-  .annotationsPanel {
-    margin: 0;
-    margin-bottom: 10px;
-    padding-bottom: 100px;
-    overflow-y: scroll;
-    width: 280px;
-    padding-right: 10px;
-    position: absolute;
-    box-sizing: border-box;
-    left: 0;
-    top: 0px;
-    bottom: 0;
-    list-style-type: none;
-    font-size: 75%;
-
-    ul {
-      padding:0;
-      margin:0;
-     }
-   }
-
-  .toc {
-    margin:0;
-    overflow-y: scroll;
-    width: 270px;
-    padding:0;
-    position:absolute;
-    box-sizing: border-box;
-    left:0;
-    top:0px;
-    bottom:0;
-    list-style-type:none;
-    margin-bottom: 30px; /* fix overflow-y bug when .tabGroup is present */
-
-    a.toc-link {
-      color: black;
-      padding: 8px;
-      padding-left: 8px;
-      display: block;
-
-      &:hover {
-        cursor: pointer;
-        background-color: @gray-dd;
-        display:block;
-        overflow:hidden;
-      }
-    }
-
-    ul {
-      margin:0;
-      padding:0;
-      box-sizing: border-box;
-      list-style-type:none;
-      width:100%;
-    }
-
-    li {
-      cursor: pointer;
-      box-sizing: border-box;
-      display:block;
-      position:relative;
-      margin-left:8px;
-      margin-bottom: 5px;
-      border-left: 4px solid @gray-ef;
-
-      &.open {
-      }
-
-      &.selected {
-        cursor: pointer;
-        overflow:hidden;
-        border-left: 4px solid @deep-sky-blue;
-        transition: all 0.2s ease-out;
-      }
-    }
-
-    > li {
-      margin-left: 0;
-    }
-  }
-
-  .toc-link i {
-    color: @black-a40;
-    margin-right:0.4em;
-    transition: all 0.2s linear;
-
-    &:hover {
-      color: black;
-    }
-  }
-
-  .toc-caret {
-    padding: 0.4em;
-    margin: -0.4em;
-  }
-
-  .toc li.has-child i.star {
-    display: none;
-  }
-
-  .toc li.leaf-item i.toc-caret {
-    display: none
-  }
-
-  .toc li.leaf-item i.star {
-    display: inline-block;
-  }
-
-  .toc li.selected>h2 .toc-link,
-  .toc li.selected>h3 .toc-link,
-  .toc li.selected>h4 .toc-link,
-  .toc li.selected>h5 .toc-link  {
-    font-weight: bold;
-  }
-
-  .toc li.selected>h2 .toc-link .star,
-  .toc li.selected>h3 .toc-link .star,
-  .toc li.selected>h4 .toc-link .star,
-  .toc li.selected>h5 .toc-link .star,
-  .toc li.hovered>h2 .toc-link .star,
-  .toc li.hovered>h3 .toc-link .star,
-  .toc li.hovered>h4 .toc-link .star,
-  .toc li.hovered>h5 .toc-link .star {
-    color:black;
-  }
-
-  .toc li.open>h2 .toc-link .toc-caret,
-  .toc li.open>h3 .toc-link .toc-caret,
-  .toc li.open>h4 .toc-link .toc-caret,
-  .toc li.open>h5 .toc-link .toc-caret  {
-    transition: all 0.2s linear;
-    transform: rotate(90deg);
-    -webkit-transform: rotate(90deg);
-    -moz-transform: rotate(90deg);
-    -ms-transform: rotate(90deg);
-    -o-transform: rotate(90deg);
-    /* Internet Explorer */
-    filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
-  }
-
-  .toc li.selected-parent {
-  }
-
-  .toc li.hovered {
-    border-left: 4px solid @deep-sky-blue;
-  }
-
-  .toc li:hover {
-    border-left: 4px solid @blue-99e5ff;
-  }
-
-  .toc-link:hover .star {
-    color:black;
-  }
-
-  // .toc li:hover>h2 a.toc-link, .toc li:hover>h3 a.toc-link, .toc li:hover>h4 a.toc-link, .toc li:hover>h5 a.toc-link, .toc li:hover>h6 a.toc-link {
-  //   font-weight: bold;
-  // }
-
-  /*
-  .toc li:hover > h2 a {
-    font-weight: bold;
-  }
-  */
-}
diff --git a/css/less/panels/workspace-select-menu.less b/css/less/panels/workspace-select-menu.less
deleted file mode 100644
index adc2a7000ef44fc208443c67ecedec93b81fcd07..0000000000000000000000000000000000000000
--- a/css/less/panels/workspace-select-menu.less
+++ /dev/null
@@ -1,71 +0,0 @@
-.mirador-container {
-  #workspace-select-menu {
-    position: absolute;
-    height: 100%;
-    width: 100%;
-    background-color: @white-a94;
-    display: none;
-    overflow: hidden;
-    z-index: 6;
-  }
-
-  #workspace-select-menu {
-    background-color: @black-33;
-    text-align:center;
-    padding:20%;
-    padding-top:0;
-    box-sizing:border-box;
-
-    h1 {
-      color: @light-gray;
-      padding-bottom: 3%;
-      font-weight: normal;
-    }
-    h2, h3 {
-      color: @light-gray;
-    }
-  }
-
-  .select-grid {
-    width:60%;
-    min-width:300px;
-    position:relative;
-    margin:auto;
-  }
-
-  .grid-row {
-    content: "";
-    display: table;
-    clear: both;
-    margin: 0 auto;
-  }
-
-  .grid-item {
-    height: 50px;
-    width: 50px;
-    float: left;
-    padding: 4px;
-    display: block;
-
-    .grid-icon {
-      background: @gray;
-      height: 50px;
-      width: 50px;
-      border-radius: 7px;
-      display: block;
-      transition: all 0.2s ease-out;
-      margin:auto;
-    }
-  }
-
-  .grid-item.hovered .grid-icon {
-    background: @deep-sky-blue;
-    box-shadow: 0 0 10px @black;
-    transform: scale(1.1) translateY(-10px) translateX(-5px);
-    transition: all 0.2s ease-out;
-  }
-
-  .grid-text {
-    display:none;
-  }
-}
diff --git a/css/less/status-bar.less b/css/less/status-bar.less
deleted file mode 100644
index 435e23fccb06a7d3671d181a0d67a9d48b1165e4..0000000000000000000000000000000000000000
--- a/css/less/status-bar.less
+++ /dev/null
@@ -1,26 +0,0 @@
-.mirador-container {
-  .mirador-status-bar {
-    background-color: @gray-cc;
-    border-top: 1px solid @black;
-    bottom: 0;
-    color: @black;
-    position: fixed;
-  }
-
-  .mirador-status-bar-msg-left,
-  .mirador-status-bar-msg-right {
-    color: @gray-66;
-    float: left;
-    overflow: hidden;
-    padding: 4px 10px;
-    text-align: left;
-    text-overflow: ellipsis;
-    white-space: nowrap;
-    width: 40%;
-  }
-
-  .mirador-status-bar-msg-right {
-    float: right;
-    text-align: right;
-  }
-}
diff --git a/css/less/theme/colors.less b/css/less/theme/colors.less
deleted file mode 100644
index d71834836e6020d67c21c6242f5e6cebea93b150..0000000000000000000000000000000000000000
--- a/css/less/theme/colors.less
+++ /dev/null
@@ -1,43 +0,0 @@
-@white: #fff;
-@white-a94: rgba(255,255,255,0.94);
-@white-a90: rgba(255,255,255,0.9);
-@white-fa: #fafafa;
-@gray-f0: #f0f0f0;
-@gray-ef: #efefef;
-@gray-ee: #eee;
-@gray-dd: #dddddd;
-@gray-c8-a70: rgba(200,200,200,0.7); // #c8c8c8
-@light-gray: lightGray; // #d3d3d3
-@gray-cc: #ccc;
-@gray: gray; // #bebebe
-@gray-b1: #b1b1b1;
-@gray-aa: #aaa;
-@gray-99: #999;
-@gray-93: rgba(147, 147, 147, 1); // #939393
-@gray-91: #929191;
-@gray-66: #666;
-@gray-55: #555;
-@black-33: #333;
-@black-22: #222;
-@black-a00: rgba(0, 0, 0, 0); // transparent
-@black-a30: rgba(0, 0, 0, 0.3);
-@black-a40: rgba(0, 0, 0, 0.4);
-@black-a50: rgba(0, 0, 0, 0.5);
-@black-a60: rgba(0, 0, 0, 0.6);
-@black-a70: rgba(0, 0, 0, 0.7);
-@black-a77: rgba(0, 0, 0, 0.77);
-@black-a80: rgba(0, 0, 0, 0.8);
-@black: #000;
-
-@red: red; // #ff0000
-@orange-red: orangered; // #ff4500
-
-@light-blue: lightBlue; // #add8e6
-@deep-sky-blue: deepskyblue; // #00bfbf
-@blue-bfff: rgba(0, 191, 255, 1); // #00bfff
-@blue-bfff-a70: rgba(0, 191, 255, 0.7);
-@blue-99e5ff: #99e5ff;
-@blue-005ebd: #005ebd;
-@blue-5edbff: rgba(94, 219, 255, 1); // #5edbff
-
-@transparent: rgba(255, 255, 255, 0);
diff --git a/css/less/theme/fonts.less b/css/less/theme/fonts.less
deleted file mode 100644
index 4a828bcb457d001899af5e7fe71024746754d652..0000000000000000000000000000000000000000
--- a/css/less/theme/fonts.less
+++ /dev/null
@@ -1,7 +0,0 @@
-.mirador-container {
-  .mirador-viewer,
-  .mirador-main-menu-bar,
-  .mirador-status-bar {
-    font-family: 'Open Sans', 'Lucida Grande', Verdana, Arial, sans-serif;
-  }
-}
diff --git a/css/less/views/gallery-view.less b/css/less/views/gallery-view.less
deleted file mode 100644
index cb1a26aedadbec2ae9ce1d5919d920eb3ad0fd3c..0000000000000000000000000000000000000000
--- a/css/less/views/gallery-view.less
+++ /dev/null
@@ -1,100 +0,0 @@
-.mirador-container {
-  .mirador-viewer ul.listing-thumbs {
-    clear: both;
-    list-style: none;
-    overflow: auto;
-    padding: 0;
-  }
-
-  .mirador-viewer ul.listing-thumbs li {
-    box-sizing:border-box;
-    float: left;
-    margin: 0 0 15px 0;
-    padding: 10px 10px 10px 10px;
-    /*transition: all 0.05s ease-out;*/
-  }
-
-  .mirador-viewer ul.listing-thumbs li img {
-    background-color: @gray-ee;
-    min-height: 25px;
-    min-width: 25px;
-    margin: 0 auto;
-    display: block;
-    box-sizing:border-box;
-    /*transition: all 0.2 ease-out;*/
-  }
-  .mirador-viewer ul.listing-thumbs li img:hover {
-    border:3px solid @blue-bfff-a70;
-    transform: scale(1.1);
-    cursor: pointer;
-    transition: all 0.2 ease-out;
-  }
-
-  .mirador-viewer ul.listing-thumbs li .thumb-label {
-    clear: both;
-    color: @gray-99;
-    font-size: 12px;
-    margin: 0 auto;
-    max-width: 125px;
-    text-align: left;
-    white-space:nowrap;
-    overflow:hidden;
-    text-overflow:ellipsis;
-    text-align: center;
-  }
-
-  .mirador-viewer .thumbnails-view-slider {
-    float: left;
-    margin: 10px 15px;
-    width: 60px;
-  }
-
-  .mirador-thumbnails-view-nav-toolbar {
-    float: right;
-    margin-right: 5px;
-  }
-
-  .mirador-widget-toolbar .ui-slider-horizontal {
-    height: .4em;
-  }
-
-  .mirador-widget-toolbar .ui-slider-handle {
-    top: -0.5em;
-  }
-
-  .hud-control .ui-slider-handle .percent {
-    position: absolute;
-    left: 17px;
-    top:-0.3em;
-    display:block;
-    color: white;
-    text-shadow: 0 0 3px @black;
-  }
-
-  .hud-control .ui-slider, .ui-slider-vertical {
-    width: 3px;
-    margin-left: 27px;
-    margin-bottom: 20px;
-    height:100px;
-  }
-
-  .hud-control .ui-slider-vertical .ui-slider-handle {
-    width: 0.7em;
-    height: 0.7em;
-    border-radius: 40px;
-    margin-bottom: -.35em;
-  }
-
-  .hud-control .ui-slider-vertical .ui-slider-handle:focus {
-    outline:0;
-  }
-
-  .hud-control .ui-slider-range {
-    background: @deep-sky-blue;
-  }
-
-  .thumbnail-rtl{
-    float: right !important;
-  }
-
-}
diff --git a/css/less/views/image-view.less b/css/less/views/image-view.less
deleted file mode 100644
index 7f0f6b106a9d3b9656b5e3b38d0736835f59d937..0000000000000000000000000000000000000000
--- a/css/less/views/image-view.less
+++ /dev/null
@@ -1,138 +0,0 @@
-.mirador-container {
-  .mirador-image-view-nav-toolbar {
-    position:relative;
-    float: right;
-    margin-right: 5px;
-  }
-
-  .mirador-image-view-bg {
-    background-color: @black;
-  }
-
-  .mirador-image-scale {
-    bottom:25px;
-    display:block;
-    position:absolute;
-    z-index:2;
-  }
-
-  .axis path, .axis line {
-    fill: none;
-    shape-rendering: crispEdges;
-    stroke: white;
-    stroke-width: 2px;
-  }
-
-  text {
-    fill: white;
-    text-shadow: 0px 0px 3px @black;
-  }
-
-  .mirador-image-dimensions {
-    margin-right:10px;
-    margin-top:7px;
-    position:absolute;
-    right:0;
-    top:0;
-  }
-
-  .mirador-image-view-physical-dimensions {
-    border: none;
-    font-weight: bold;
-    height: 16px;
-    margin:0;
-    outline: none;
-    overflow-wrap: normal;
-    overflow:hidden;
-    padding:0;
-    resize: none;
-    vertical-align: top;
-    width: 40px;
-    text-align: center;
-  }
-
-  .mirador-image-view-physical-dimensions:hover,
-  .mirador-image-view-physical-dimensions:focus,
-  .mirador-image-dimensions.noDimensionsSet .mirador-image-view-physical-dimensions {
-    border-bottom: 2px solid @orange-red;
-    height: 16px;
-    margin-bottom: -2px;
-    transition: all .2s ease-out;
-  }
-  .noDimensionsWarning {
-    display: none;
-    margin-right:10px;
-  }
-  .mirador-image-dimensions.noDimensionsSet .noDimensionsWarning {
-    color: @black-a50;
-    display: inline-block;
-  }
-
-  .mirador-image-view-physical-dimensions:focus {
-    background-color: @gray-c8-a70;
-    box-shadow: 0 0 4px @gray-c8-a70;
-    -webkit-transform: scale(1.2);
-    -moz-transform: scale(1.2);
-    transform: scale(1.2);
-  }
-
-  .mirador-image-dimensions .units {
-    cursor: context-menu;
-  }
-
-  .mirador-image-dimensions .units:hover {
-    height:16px;
-    border-bottom:2px solid @orange-red;
-    margin-bottom:-2px;
-    transition: all .2s ease-out;
-  }
-
-  .mirador-image-dimensions .unit-selector {
-    position:absolute;
-    display:none;
-  }
-
-  .mirador-image-dimensions .unit-selector.active {
-    display:block;
-  }
-
-  /* scale
-  ----------------*/
-  .mirador-image-scale.hidden {
-    display:none;
-  }
-
-  /* image choice controls
-  ------------------------*/
-
-  .mirador-image-view-choices {
-    list-style: none;
-    max-height: 350px;
-    overflow: auto;
-    padding: 0;
-  }
-
-  .mirador-image-view-choices li {
-    margin: 0;
-    padding: 0;
-  }
-
-  .mirador-image-view-choices li a {
-    padding-left: 12px;
-  }
-
-  .mirador-image-view-choice {
-    background-repeat: no-repeat;
-    height: 6px;
-    background-position: 0px 6px;
-    width: 6px;
-  }
-
-  .mirador-image-view-choice {
-    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0RUQ5OEI2ODFFMkIxMUUzOUExN0IyREY1RTI1MUQ0QiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0RUQ5OEI2OTFFMkIxMUUzOUExN0IyREY1RTI1MUQ0QiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRFRDk4QjY2MUUyQjExRTM5QTE3QjJERjVFMjUxRDRCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRFRDk4QjY3MUUyQjExRTM5QTE3QjJERjVFMjUxRDRCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+fRx/ZQAAAHRJREFUeNpi/P//P0NnZ2cNAwNDOgMEzCwvL29h5uTkrFFSUkqOiorSMjMzm/L27ds5W7Zs4WUCqfT09NTh4eH5BsIgNkiMiQENMDIy/gdRIImZO3bsuPL161fOz58/c23fvv0qSIwRankt1PK/UMvbAAIMALeqLWb/azLQAAAAAElFTkSuQmCC);
-  }
-
-  .mirador-image-view-choice-selected {
-    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0RUQ5OEI2QzFFMkIxMUUzOUExN0IyREY1RTI1MUQ0QiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0RUQ5OEI2RDFFMkIxMUUzOUExN0IyREY1RTI1MUQ0QiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRFRDk4QjZBMUUyQjExRTM5QTE3QjJERjVFMjUxRDRCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRFRDk4QjZCMUUyQjExRTM5QTE3QjJERjVFMjUxRDRCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+9DJqAgAAAF1JREFUeNpitLS0ZHj69GktAwNDJgMETJeWlm5mZmJiAgk2ATEvFDt+/vz5H6OcnNwzIEeSARU8Z2LADhiZ+fn5uUDa0SS6mbW0tA4BzfwP5GgC8Ucg7gJa3gIQYAChCRXFhBXUngAAAABJRU5ErkJggg==);
-  }
-}
diff --git a/css/less/views/scroll-view.less b/css/less/views/scroll-view.less
deleted file mode 100644
index 11bbbde1446324fea373c27b4f1458ff206f3aa6..0000000000000000000000000000000000000000
--- a/css/less/views/scroll-view.less
+++ /dev/null
@@ -1,37 +0,0 @@
-.mirador-container {
-  ul.scroll-listing-thumbs {
-    clear: both;
-    list-style: none;
-    padding: 0;
-    white-space: nowrap;
-  }
-
-  ul.scroll-listing-thumbs li {
-    box-sizing:border-box;
-    margin: 0 0 15px 0;
-    padding: 10px 10px 10px 10px;
-    /*transition: all 0.05s ease-out;*/
-    display: inline-block;
-  }
-
-  ul.scroll-listing-thumbs li img {
-    background-color: @gray-ee;
-    min-height: 25px;
-    min-width: 25px;
-    margin: 0 auto;
-    display: block;
-  }
-
-  ul.scroll-listing-thumbs li .thumb-label {
-    clear: both;
-    color: @gray-99;
-    font-size: 12px;
-    margin: 0 auto;
-    max-width: 200px;
-    text-align: left;
-    white-space:nowrap;
-    overflow:hidden;
-    text-overflow:ellipsis;
-    text-align: center;
-  }
-}
diff --git a/css/less/window.less b/css/less/window.less
deleted file mode 100644
index 6ce39067c1b1d0903304bfe01849e6c23cfe7e91..0000000000000000000000000000000000000000
--- a/css/less/window.less
+++ /dev/null
@@ -1,106 +0,0 @@
-.mirador-container {
-  .window {
-    position:absolute;
-    width:100%;
-    height:100%;
-    overflow: hidden;
-    background-color: @black-33;
-    top: 0%;
-    z-index: 1;
-  }
-
-  .manifest-info {
-    overflow: auto;
-    background: @white-fa;
-
-    .mirador-btn {
-      font-size: .8em;
-    }
-  }
-
-  .content-container {
-    position: absolute;
-    bottom:0;
-    left:0;
-    right:0;
-    top:0;
-    margin-top:34px;
-    box-sizing: border-box;
-  }
-
-  .view-container {
-    margin-left: 280px;
-    height: 100%;
-    position:relative;
-    transition:all 0s ease;
-
-    &.tranisition {
-    }
-
-    &.focus-max-width {
-      margin-left: 0px;
-    }
-
-    &.focus-side-panel-minimized {
-      margin-left: 0px;
-    }
-  }
-
-  .overlay {
-    display: none;
-    position: absolute;
-    right: 0;
-    top: 0;
-    box-sizing: border-box;
-    background-color: @white-a90;
-    z-index: 5;
-    width: 45%;
-    overflow-y: scroll;
-    height: 80%;
-    word-wrap: break-word;
-    font-size: 90%;
-  }
-
-  .thumbnail-view, .image-view, .book-view, .scroll-view {
-    height: 100%;
-    width: 100%;
-    background-color: black;
-    display: none;
-    overflow-y: scroll;
-  }
-
-  .image-view, .book-view {
-    overflow: hidden;
-  }
-
-  .scroll-view {
-    overflow-y: hidden;
-    overflow-x: scroll;
-  }
-
-  .focus-max-height {
-    height: 100%;
-  }
-
-  .focus-bottom-panel-minimized {
-    height: 95%;
-  }
-
-  .image-list {
-    right: 0;
-  }
-
-  .slot-controls {
-    left: 0;
-  }
-
-  .menu-divider {
-    color: @gray-b1;
-    margin: 0px;
-    height: 0px;
-  }
-
-  .v-direction-rtl {
-    direction: rtl;
-  }
-}
diff --git a/css/less/workspace.less b/css/less/workspace.less
deleted file mode 100644
index 8d297f604ed917e30eafdd1751c01ad28fba44b8..0000000000000000000000000000000000000000
--- a/css/less/workspace.less
+++ /dev/null
@@ -1,106 +0,0 @@
-.mirador-container {
-  .workspace-container {
-    position: absolute;
-    left:0;
-    right:0;
-    top:0;
-    bottom:0;
-    overflow: hidden;
-    box-sizing: border-box;
-    margin: 3px;
-  }
-
-  /* invisible layout slot styling */
-  .layout-slot {
-    position: absolute;
-    margin: 0;
-    padding: 0;
-    box-sizing: border-box;
-  }
-
-  /* Slot Scaffolding */
-  .slot {
-    width:100%;
-    height:100%;
-    box-shadow: inset 0 0 35px @black;
-    overflow: hidden;
-    box-sizing:border-box;
-
-    .remove-slot-option {
-      position: absolute;
-      top: 0;
-      left: 0;
-      z-index: 1;
-      margin: 10px;
-      color: @gray;
-      cursor: pointer;
-    }
-
-    .remove-slot-option:hover {
-      float: left;
-      margin: 10px;
-      color: @light-gray;
-    }
-
-    h1 {
-      color: @gray;
-      text-align: center;
-      font-weight: normal;
-      margin: 0px;
-    }
-
-    &:hover h1 {
-      color: @light-gray;
-    }
-  }
-
-  .plus {
-    font-size: 170px;
-    font-weight: bold;
-    margin-bottom: 2%;
-  }
-
-  .slotIconContainer {
-    position: relative;
-    top: 50%;
-    transform: translateY(-50%);
-    width: 100%;
-    overflow: hidden;
-    pointer-events: none;
-  }
-
-  .slot:hover, .slot.focused, .slot.draggedOver {
-    box-shadow: inset 0 0 35px @blue-5edbff;
-  }
-
-  .slot.draggedOver .dropMeMessage, .slot.draggedOver .dropIcon {
-    display: block;
-  }
-
-  .dropMeMessage, .dropIcon {
-    display: none;
-  }
-
-  .slot.draggedOver .addItemText, .slot.draggedOver .plus span {
-    display: none;
-  }
-
-  .addItemLink {
-    display: block;
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    right: 0;
-    left: 0;
-    cursor: pointer;
-  }
-
-  .dropMask {
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    right: 0;
-    left: 0;
-    display: none;
-  }
-}
\ No newline at end of file
diff --git a/css/material-icons.css b/css/material-icons.css
deleted file mode 100644
index f61a125f3881bedb6fb853bdd9502473029d4d51..0000000000000000000000000000000000000000
--- a/css/material-icons.css
+++ /dev/null
@@ -1,38 +0,0 @@
-@font-face {
-  font-family: 'Material Icons';
-  font-style: normal;
-  font-weight: 400;
-  src: url('../fonts/MaterialIcons-Regular.eot'); /* For IE6-8 */
-  src: local('Material Icons'),
-       local('MaterialIcons-Regular'),
-       url('../fonts/MaterialIcons-Regular.woff2') format('woff2'),
-       url('../fonts/MaterialIcons-Regular.woff') format('woff'),
-       url('../fonts/MaterialIcons-Regular.ttf') format('truetype');
-}
-
-.material-icons {
-  font-family: 'Material Icons';
-  font-weight: normal;
-  font-style: normal;
-  font-size: 24px;  /* Preferred icon size */
-  display: inline-block;
-  width: 1em;
-  height: 1em;
-  line-height: 1;
-  text-transform: none;
-  letter-spacing: normal;
-  word-wrap: normal;
-  white-space: nowrap;
-  direction: ltr;
-
-  /* Support for all WebKit browsers. */
-  -webkit-font-smoothing: antialiased;
-  /* Support for Safari and Chrome. */
-  text-rendering: optimizeLegibility;
-
-  /* Support for Firefox. */
-  -moz-osx-font-smoothing: grayscale;
-
-  /* Support for IE. */
-  font-feature-settings: 'liga';
-}
diff --git a/css/normalize.css b/css/normalize.css
deleted file mode 100644
index 2fa5c305a5173e5b0d1788b9b2c1783e848a0376..0000000000000000000000000000000000000000
--- a/css/normalize.css
+++ /dev/null
@@ -1,391 +0,0 @@
-/*! normalize.css v2.1.2 | MIT License | git.io/normalize */
-
-/* ==========================================================================
-   HTML5 display definitions
-   ========================================================================== */
-
-/**
- * Correct `block` display not defined in IE 8/9.
- */
-
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-main,
-nav,
-section,
-summary {
-    display: block;
-}
-
-/**
- * Correct `inline-block` display not defined in IE 8/9.
- */
-
-audio,
-canvas,
-video {
-    display: inline-block;
-}
-
-/**
- * Prevent modern browsers from displaying `audio` without controls.
- * Remove excess height in iOS 5 devices.
- */
-
-audio:not([controls]) {
-    display: none;
-    height: 0;
-}
-
-/**
- * Address styling not present in IE 8/9.
- */
-
-[hidden] {
-    display: none;
-}
-
-/* ==========================================================================
-   Base
-   ========================================================================== */
-
-/**
- * 1. Set default font family to sans-serif.
- * 2. Prevent iOS text size adjust after orientation change, without disabling
- *    user zoom.
- */
-
-html {
-    font-family: sans-serif; /* 1 */
-    -ms-text-size-adjust: 100%; /* 2 */
-    -webkit-text-size-adjust: 100%; /* 2 */
-}
-
-/**
- * Remove default margin.
- */
-
-body {
-    margin: 0;
-}
-
-/* ==========================================================================
-   Links
-   ========================================================================== */
-
-/**
- * Improve readability when focused and also mouse hovered in all browsers.
- */
-
-a:active,
-a:hover {
-    outline: 0;
-}
-
-/* ==========================================================================
-   Typography
-   ========================================================================== */
-
-/**
- * Address variable `h1` font-size and margin within `section` and `article`
- * contexts in Firefox 4+, Safari 5, and Chrome.
- */
-
-h1 {
-    font-size: 2em;
-    margin: 0.67em 0;
-}
-
-/**
- * Address styling not present in IE 8/9, Safari 5, and Chrome.
- */
-
-abbr[title] {
-    border-bottom: 1px dotted;
-}
-
-/**
- * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
- */
-
-b,
-strong {
-    font-weight: bold;
-}
-
-/**
- * Address styling not present in Safari 5 and Chrome.
- */
-
-dfn {
-    font-style: italic;
-}
-
-/**
- * Address differences between Firefox and other browsers.
- */
-
-hr {
-    -moz-box-sizing: content-box;
-    box-sizing: content-box;
-    height: 0;
-    border:0;
-    border-bottom:1px solid rgba(0,0,0,0.4);
-}
-
-/**
- * Address styling not present in IE 8/9.
- */
-
-mark {
-    background: #ff0;
-    color: #000;
-}
-
-/**
- * Correct font family set oddly in Safari 5 and Chrome.
- */
-
-code,
-kbd,
-pre,
-samp {
-    font-family: monospace, serif;
-    font-size: 1em;
-}
-
-/**
- * Improve readability of pre-formatted text in all browsers.
- */
-
-pre {
-    white-space: pre-wrap;
-}
-
-/**
- * Set consistent quote types.
- */
-
-q {
-    quotes: "\201C" "\201D" "\2018" "\2019";
-}
-
-/**
- * Address inconsistent and variable font size in all browsers.
- */
-
-small {
-    font-size: 80%;
-}
-
-/**
- * Prevent `sub` and `sup` affecting `line-height` in all browsers.
- */
-
-sub,
-sup {
-    font-size: 75%;
-    line-height: 0;
-    position: relative;
-    vertical-align: baseline;
-}
-
-sup {
-    top: -0.5em;
-}
-
-sub {
-    bottom: -0.25em;
-}
-
-/* ==========================================================================
-   Embedded content
-   ========================================================================== */
-
-/**
- * Remove border when inside `a` element in IE 8/9.
- */
-
-img {
-    border: 0;
-}
-
-/**
- * Correct overflow displayed oddly in IE 9.
- */
-
-svg:not(:root) {
-    overflow: hidden;
-}
-
-/* ==========================================================================
-   Figures
-   ========================================================================== */
-
-/**
- * Address margin not present in IE 8/9 and Safari 5.
- */
-
-figure {
-    margin: 0;
-}
-
-/* ==========================================================================
-   Forms
-   ========================================================================== */
-
-/**
- * Define consistent border, margin, and padding.
- */
-
-fieldset {
-    border: 1px solid #c0c0c0;
-    margin: 0 2px;
-    padding: 0.35em 0.625em 0.75em;
-}
-
-/**
- * 1. Correct `color` not being inherited in IE 8/9.
- * 2. Remove padding so people aren't caught out if they zero out fieldsets.
- */
-
-legend {
-    border: 0; /* 1 */
-    padding: 0; /* 2 */
-}
-
-/**
- * 1. Correct font family not being inherited in all browsers.
- * 2. Correct font size not being inherited in all browsers.
- * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.
- */
-
-button,
-input,
-select,
-textarea {
-    font-family: inherit; /* 1 */
-    font-size: 100%; /* 2 */
-    margin: 0; /* 3 */
-}
-
-/**
- * Address Firefox 4+ setting `line-height` on `input` using `!important` in
- * the UA stylesheet.
- */
-
-button,
-input {
-    line-height: normal;
-}
-
-/**
- * Address inconsistent `text-transform` inheritance for `button` and `select`.
- * All other form control elements do not inherit `text-transform` values.
- * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+.
- * Correct `select` style inheritance in Firefox 4+ and Opera.
- */
-
-button,
-select {
-    text-transform: none;
-}
-
-/**
- * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
- *    and `video` controls.
- * 2. Correct inability to style clickable `input` types in iOS.
- * 3. Improve usability and consistency of cursor style between image-type
- *    `input` and others.
- */
-
-button,
-html input[type="button"], /* 1 */
-input[type="reset"],
-input[type="submit"] {
-    -webkit-appearance: button; /* 2 */
-    cursor: pointer; /* 3 */
-}
-
-/**
- * Re-set default cursor for disabled elements.
- */
-
-button[disabled],
-html input[disabled] {
-    cursor: default;
-}
-
-/**
- * 1. Address box sizing set to `content-box` in IE 8/9.
- * 2. Remove excess padding in IE 8/9.
- */
-
-input[type="checkbox"],
-input[type="radio"] {
-    box-sizing: border-box; /* 1 */
-    padding: 0; /* 2 */
-}
-
-/**
- * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
- * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
- *    (include `-moz` to future-proof).
- */
-
-input[type="search"] {
-    -webkit-appearance: textfield; /* 1 */
-    -moz-box-sizing: content-box;
-    -webkit-box-sizing: content-box; /* 2 */
-    box-sizing: content-box;
-}
-
-/**
- * Remove inner padding and search cancel button in Safari 5 and Chrome
- * on OS X.
- */
-
-input[type="search"]::-webkit-search-cancel-button,
-input[type="search"]::-webkit-search-decoration {
-    -webkit-appearance: none;
-}
-
-/**
- * Remove inner padding and border in Firefox 4+.
- */
-
-button::-moz-focus-inner,
-input::-moz-focus-inner {
-    border: 0;
-    padding: 0;
-}
-
-/**
- * 1. Remove default vertical scrollbar in IE 8/9.
- * 2. Improve readability and alignment in all browsers.
- */
-
-textarea {
-    overflow: auto; /* 1 */
-    vertical-align: top; /* 2 */
-}
-
-/* ==========================================================================
-   Tables
-   ========================================================================== */
-
-/**
- * Remove most spacing between table cells.
- */
-
-table {
-    border-collapse: collapse;
-    border-spacing: 0;
-}
-
diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md
deleted file mode 100644
index 41d73af1dfa762be1f5cb4ee23ff27a91f278e11..0000000000000000000000000000000000000000
--- a/docs/SUMMARY.md
+++ /dev/null
@@ -1,4 +0,0 @@
-# Table of Contents
-* [Getting Started](docs/getting-started.md)
-* [API and Events reference](docs/api-reference.md)
-* [Source Code Tours](docs/code-tours.md)
diff --git a/docs/api-reference.md b/docs/api-reference.md
deleted file mode 100644
index 39bd17bcffb8c6f4dfa2cba405f2d7749c237f2e..0000000000000000000000000000000000000000
--- a/docs/api-reference.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# API Reference
-In Progress
diff --git a/docs/code-tours.md b/docs/code-tours.md
deleted file mode 100644
index 47ec0eecb72d5455ca3a9608f7e952d2421126e8..0000000000000000000000000000000000000000
--- a/docs/code-tours.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Source Code Tours
-
-In Progress
diff --git a/docs/events-reference.md b/docs/events-reference.md
deleted file mode 100644
index 339b84577aafb076fac758968a3fbbf649132eb6..0000000000000000000000000000000000000000
--- a/docs/events-reference.md
+++ /dev/null
@@ -1 +0,0 @@
-# Events Reference
diff --git a/docs/getting-started.md b/docs/getting-started.md
deleted file mode 100644
index f7ed08466ab284e2ba13379ce68b8c7f1ef2f10c..0000000000000000000000000000000000000000
--- a/docs/getting-started.md
+++ /dev/null
@@ -1,690 +0,0 @@
-## Getting Started Tutorials
-### **Simple Viewer Installation **
-
-One of the most common configurations is to create an HTML page in which Mirador takes up the full width and height of the page, with all of the default features activated. There are only a few configuration options that are required to get a fully featured Mirador instance: the [container](https://github.com/IIIF/mirador/wiki/Configuration-Guides#the-container) and the [manifests](https://github.com/IIIF/mirador/wiki/Configuration-Guides#manifests) to load into Mirador.
-
-#### The Container
-
-To initialize Mirador, it needs to be attached to an existing HTML **div** through that element's **id**. You also need to explicitly set that element's width and height. In this example, we are using the full width and height of the page.
-
-```` html
-<!DOCTYPE html>
-<html lang="en">
-  <head>
-    <title>Simple Viewer</title>
-    <meta charset="UTF-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <style>
-      #viewer {
-        width: 100%;
-        height: 100%;
-        position: fixed;
-      }
-    </style>
-    <link rel="stylesheet" type="text/css" href="build/mirador/css/mirador-combined.css">
-    <script src="build/mirador/mirador.min.js"></script>
-  </head>
-  <body>
-    <div id="viewer"></div>
-    <script type="text/javascript">
-      $(function() {
-        Mirador({
-          id: "viewer",
-          data: [/* Manifests and collections here */]
-        });
-      });
-    </script>
-  </body>
-</html>
-````
-
-![image alt text](image_0.png)
-
-
-Changing the height and width of Mirador's root element allows you to place it in an HTML page with other content.
-
-#### Manifests and Collections
-
-There are several different ways to add content to your Mirador instance.
-
-The first way is to pass an object into the data array that identifies the desired manifest URI:
-
-```` javascript
-Mirador({
-  id: "viewer",
-  data: [
-    { manifestUri: "http://iiif/id/and/uri/of/your/manifest.json", location: "My Repository" }
-  ]
-});
-````
-
-Second, you can pass in an object pointing to a collection URI, which contains a list of manifests that Mirador will parse:
-
-```` javascript
-Mirador({
-  id: "viewer",
-  data: [{
-  "collectionUri":
-  "http://iiif/id/and/uri/of/your/collection.json"
-}
-]);
-````
-
-The current version of Mirador supports collections of any nesting depth. Collections are displayed on the content tree as folder entries, which can be clicked on to display manifests filed under them. Sub-collections can also be accessed by clicking on the drop-down caret (if available).
-
-![Collection tree](image_collection_tree.png)
-
-Within the application itself, there are two other ways for end users to add manifests to Mirador:
-
-1. If showAddFromURLBox has not been disabled, an end user can add a known IIIF manifest or collection URL through the Add new object from URL box:
-
-![image alt text](image_add_object_box.png)
-
-2. Mirador can handle an end user dropping a IIIF manifest into a window using [IIIF Drag-and-drop](http://zimeon.github.io/iiif-dragndrop/):
-
-![image alt text](image_2.gif)
-
-Specifying Which Manifest Will Open
-
-By default, Mirador is configured to open with a single window. You can specify which manifest will be open in that window by using the windowObjects key. The windowObjects key expects an array of objects. Within the object you can name the manifest that will be opened with loadedManifest and even specify which canvas the viewer will focus on with canvasID. The default view is the ImageView viewType. If you want the viewer to open with a different view, you need specify this with "viewType" (e.g., "ThumbnailsView"). Other options that can be added to windowObjects can be found in the [Complete Configuration API](https://github.com/IIIF/mirador/wiki/Complete-Configuration-API#loaded-objects).
-
-```` javascript
-Mirador({  id: "viewer",
-  data: [{
-  manifestUri: "http://iiif/id/and/uri/of/your/manifest.json",
-  location: "My Repository"
-  }],  
-  windowObjects: [{
-  loadedManifest: "http://iiif/id/and/uri/of/your/manifest.json",
-  canvasID: "http://iiif/id/and/uri/of/your/canvas/canvas-id",
-  viewType: "ImageView"
-  }]
-  });
-````
-
-![image alt text](image_3.png)
-
-#### View Type
-
-There are four possible viewTypes in the current version of Mirador: ImageView (displayed above), BookView, ThumbnailsView, and ScrollView.  
-
-##### BookView
-
-Like the [previous ](https://github.com/IIIF/mirador/wiki/Configuration-Guides#specifying-which-manifest-will-open)viewType, this configuration provides a minimal, zooming reader, similar to the Internet Archive Bookreader. The instance is configured to show a specific book of the developer's choosing, displayed in a 2-page spread.
-
-```` javascript
-Mirador({
-id: "viewer",
-  data: [{
-  manifestUri: "http://iiif/id/and/uri/of/your/manifest.json",
-  location: "My Repository"
-  }],
-  windowObjects: [{
-  loadedManifest: "http://iiif/id/and/uri/of/your/manifest.json",
-  canvasID: "http://iiif/id/and/uri/of/your/canvas/canvas-id",
-  viewType: "BookView"
-  }]
-});
-````
-
-![image alt text](image_4.png)
-
-##### ThumbnailsView
-
-The ThumbnailsView viewType configuration displays thumbnail images of all of the pages of the designated book laid out in a grid pattern, from which the user can select and click on a page to view more closely. Unlike the previous viewTypes, the images in ThumbnailsView are not zoomable.
-
-![image alt text](image_5.png)
-
-##### ScrollView
-
-Like the previous viewType, ScrollView displays thumbnail images of the designated book, this time in a side-scrolling format, for the user to select from for closer viewing. As with ThumbnailsView, ScrollView does not display zoomable images.
-
-![image alt text](image_6.png)
-
-#### Describing Layouts
-
-By default, Mirador opens with a single viewing window. However, it is possible to configure Mirador to open up with any number of windows, positioned in a grid, using the layout option. If you want to specify which window a specific manifest loads into, use slotAddress in windowObjects. Otherwise, Mirador, will arbitrarily load objects into windows based on a first-come, first-served basis. To create an instance of Mirador that opens two windows side by side and places a manifest in each window use this:
-
-```` javascript
-Mirador({
-id: "viewer",
-layout: "1x2",
-data: [{
-manifestUri: "http://iiif.lib.harvard.edu/manifests/drs:5981093",
-location: "Harvard University"
-},
-{
-manifestUri: "http://iiif.biblissima.fr/manifests/ark:/12148/btv1b84539771/manifest.json",
-location: "BnF"
-}],
-windowObjects: [{
-loadedManifest: "http://iiif.lib.harvard.edu/manifests/drs:5981093",
-slotAddress: "row1.column1",
-viewType: "ImageView"
-},
-{
-loadedManifest: "http://iiif.biblissima.fr/manifests/ark:/12148/btv1b84539771/manifest.json",
-slotAddress: "row1.column2",
-viewType: "ImageView"
-}]
-);
-````
-
-![image alt text](image_7.png)
-
-It is also possible to have non-grid layouts in Mirador. You can create these custom layouts using a drop down menu in Mirador:
-
-![image alt text](image_8.png)
-
-![image alt text](image_9.png)
-
-### Configuring Mirador Path
-
-By default, Mirador looks for its associated images, translations and other associated files at the relative path ./build/mirador. If you wish to serve Mirador from another location, you can change this by setting the buildPath option:
-
-```` javascript
-Mirador({
-  id: "viewer",
-  buildPath: "http://cdn.yoursite.com/mirador",
-  data: [{
-  manifestUri: "http://iiif/id/and/uri/of/your/manifest.json",
-  location: "My Repository"
-  }]
-});
-````
-
-## **Zen Mode**
-
-A barebones version of the viewer can be created by turning off the top menu bar, the sidebar, and the bottom thumbnails bar. Doing so prevents the user from opening other objects, spawning more workspace slots or windows, and closing the current window.
-
-![image alt text](image_10.png)
-
-The configuration and initialisation for this mode looks like this:
-
-```` javascript
-Mirador({
-  id: "viewer",
-  buildPath: "",
-  data: [{
-  manifestUri: "http://iiif/id/and/uri/of/your/manifest.json",
-    location: "My Repository"
-    }
-    // For a working example, try:
-    // { manifestUri: "http://dms-data.stanford.edu/data/manifests/Walters/qm670kv1873/manifest.json", location: "Stanford University" }
-  ],
-  mainMenuSettings: {
-    show: false
-  }
-  windowObjects: [{
-    loadedManifest: "http://same/iiif/id/as/above/to/your/manifest.json",
-    canvasID: "http://iiif/id/and/uri/of/your/canvas/canvas-id",
-    // For a working example, try:
-    // loadedManifest: "http://dms-data.stanford.edu/data/manifests/Walters/qm670kv1873/manifest.json",
-    // canvasID: "http://dms-data.stanford.edu/data/manifests/Walters/qm670kv1873/canvas/canvas-8",
-    viewType: "ImageView",
-    displayLayout: false,
-    bottomPanel: false,
-    bottomPanelAvailable: false,
-    bottomPanelVisible: false,
-    sidePanel: false,
-    annotationLayer: false
-  }]
-});
-````
-
-## Embedding
-
-### Iframe
-
-To embed a Mirador instance in an iframe, create a [full-screen](https://github.com/IIIF/mirador/wiki/Configuration-Guides#full-screen-with-all-options) instance with any configuration options you need. Your iframe element will look something like this:
-
-```` html
-<iframe title="Mirador" src="*URL to Mirador instance*" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true"></iframe>
-````
-
-You can change the size and style of the iframe as you need to, and Mirador will exist within its bounds. Adding the allowfullscreen attributes allows the fullscreen option in Mirador to work. If you choose to disable this in Mirador, you do not need to have these attributes in your iframe.
-
-With the current version of Mirador, you can embed any number of viewers this way.
-
-![image alt text](image_11.png)
-
-### Inside a div on same web page
-
-You can also embed Mirador inside a div. To do this, embed both the mirador-combined.css and mirador.js, the fixed-size div and the call to Mirador() as you would do with a full-screen setup. If you have set a CSS margin attribute in your main body tag, you need to add !important to it to prevent the mirador-combined.css from overriding it.
-
-With the current version of Mirador, you can only embed one viewer this way. If you want to embed multiple viewers you must use iframes.
-
-```` html
-<!DOCTYPE html>
-<html lang="en">
-<head>
-  <title>Embedding in a div</title>
-  <style type="text/css">
-    html {
-      background-color: #999;
-    }
-    body {
-      background-color: #fff;
-      padding: 1em 0;
-      margin: 0 5% !important;
-      width: 90%;
-    }
-    #viewer {
-      display: block;
-      width: 90%;
-      height: 600px;
-      margin: 1em 5%;
-      position: relative;
-    }
-    h1, h2 {
-      text-align: center;
-    }
-  </style>
-  <link rel="stylesheet" type="text/css" href="build/mirador/css/mirador-combined.css">
-  <script src="build/mirador/mirador.min.js"></script>
-</head>
-<body>
-  <h1>Embedded Default Viewer</h1>
-  <h2>The following viewer has been added using default settings.</h2>
-  <div id="viewer" allowfullscreen="allowfullscreen"></div>
-  <script type="text/javascript">
-    $(function() {
-      Mirador({
-        id: "viewer",
-        data: [/* … */]
-      });
-    });
-  </script>
-</body>
-</html>
-````
-
-![image alt text](image_12.png)
-
-### Annotation Saving (Creating an endpoint adaptor)
-
-To build an endpoint adaptor, you can start with the template provided in js/src/annotations/endpoint.js. All endpoint adaptors must implement the following functions:
-
-<table>
-  <tr>
-    <td>Function</td>
-    <td>Description</td>
-    <td>Parameters</td>
-    <td>Success</td>
-    <td>Fail</td>
-  </tr>
-  <tr>
-    <td></td>
-    <td></td>
-    <td></td>
-    <td></td>
-    <td></td>
-  </tr>
-  <tr>
-    <td>Search</td>
-    <td>Search for annotations that satisfy the parameters specified in options</td>
-    <td>options
-successCallbackerrorCallback</td>
-    <td>successCallback</td>
-    <td>errorCallback</td>
-  </tr>
-  <tr>
-    <td>Delete</td>
-    <td>Delete the annotation with the given annotation ID</td>
-    <td>annotationID
-successCallback
-errorCallback</td>
-    <td>successCallback</td>
-    <td>errorCallback</td>
-  </tr>
-  <tr>
-    <td>Update</td>
-    <td>Submit the annotation as an edit</td>
-    <td>oaAnnotation
-successCallback
-errorCallback</td>
-    <td>successCallback</td>
-    <td>errorCallback</td>
-  </tr>
-  <tr>
-    <td>Create</td>
-    <td>Submit the annotation as a new annotation</td>
-    <td>oaAnnotation
-successCallback
-errorCallback</td>
-    <td>successCallback</td>
-    <td>errorCallback</td>
-  </tr>
-</table>
-
-
-Before calling JSON.stringify() on an annotationsList entry, remember to delete its endpoint key to avoid a circular reference to the endpoint. Afterwards, remember to add it back.
-
-#### Example implementation with local storage
-
-##### Search
-
-For simplicity, assume that you don't need additional parameters beyond the URI of the canvas to request.
-
-```` javascript
-search: function(options, successCallback, errorCallback) {
-  var _this = this;
-  this.annotationsList = []; //clear out current list
-  try {
-
-    //Load the list of annotations under the canvas URI from local storage (if entry exists)
-    var data = localStorage.getItem(options.uri);
-    if (data) {
-    	 _this.annotationsList = JSON.parse(data);
-    }
-
-    //Attach a reference to this endpoint to each entry
-    //Don't forget to do this or the annotation won't respond
-    jQuery.each(_this.annotationsList, function(index, value) {
-      value.endpoint = _this;
-    });
-
-    // Done
-    // Run the callback if specified, otherwise resolve the endpoint's data state
-    if (typeof successCallback === "function") {
-      successCallback(_this.annotationsList);
-    }
-    else {
-      _this.dfd.resolve(true);
-    }
-  }
-
-  // Catching errors
-  // Run the callback if specified, otherwise perform some default action or show an error log
-  catch (e) {
-    if (typeof errorCallback === "function") {
-      errorCallback();
-    }
-    else {
-      console.log("There was an error searching this endpoint");
-    }
-  }
-}
-````
-
-##### Delete
-
-Search for the deleted ID from the annotation list for the current canvas, remove its entry from the annotation list and overwrite the storage's copy of the annotation list with it.
-
-```` javascript
-deleteAnnotation: function(annotationID, successCallback, errorCallback) {
-  var _this = this,
-  key = _this.annotationsList[0].on.full; //Find current canvas URI from loaded annotation list
-
-  try {
-    // Create a new annotation list without the deleted ID
-    _this.annotationsList = jQuery.grep(_this.annotationsList, function(value, index) {
-      return value['@id'] !== annotationID;
-    });
-
-    // Remove endpoint reference before JSON.stringify
-    // IMPORTANT: Failure to do this would result in a circular reference error!
-    jQuery.each(_this.annotationsList, function(index, value) {
-      delete value.endpoint;
-    });
-
-    // Rewrite the local storage annotation list with updated version
-    localStorage.setItem(key, JSON.stringify(_this.annotationsList));
-
-    // Add back endpoint reference after JSON.stringify
-    jQuery.each(_this.annotationsList, function(index, value) {
-      value.endpoint = _this;
-    });
-
-    // Run success callback if specified
-    if (typeof successCallback === "function") {
-      successCallback();
-    }
-  }
-
-  // Unsuccessful, run error callback if specified
-  catch (e) {
-    if (typeof errorCallback === "function") {
-      errorCallback();
-    }
-  }
-}
-````
-
-##### Update
-
-From the given Open Annotation item, find its ID and canvas ID, then replace the corresponding entry in the annotation list with the same ID. Once done, overwrite the storage's copy of the annotation list.
-
-
-```` javascript
-update: function(oaAnnotation, successCallback, errorCallback) {
-  var _this = this,
-
-  // Find canvas ID and annotation ID
-  key = oaAnnotation.on.full,
-  annotationID = oaAnnotation['@id'];
-
-  try {
-    // If annotation list isn't loaded, reload
-    if (_this.annotationsList.length === 0) {
-      _this.annotationsList = _this.getAnnotationList(key);
-    }
-
-    // Find the matching annotation in the array and update it
-    jQuery.each(_this.annotationsList, function(index, value) {
-      if (value['@id'] === annotationID) {
-        _this.annotationsList[index] = oaAnnotation;
-        return false;
-      }
-    });
-
-    // Remove endpoint reference before JSON.stringify
-    jQuery.each(_this.annotationsList, function(index, value) {
-      delete value.endpoint;
-    });
-
-    // Overwrite storage with updated annotation list
-    localStorage.setItem(key, JSON.stringify(_this.annotationsList));
-
-    // Add back endpoint reference after JSON.stringify
-    jQuery.each(_this.annotationsList, function(index, value) {
-      value.endpoint = _this;
-    });
-
-    // Done, run success callback if specified
-    if (typeof successCallback === "function") {
-      successCallback(oaAnnotation);
-    }
-  }
-
-  // Failed, run error callback if specified
-  catch (e) {
-    if (typeof errorCallback === "function") {
-      errorCallback();
-    }
-  }
-
-}
-````
-
-##### Create
-
-From the given Open Annotation item, find its canvas ID, then add it to the annotation list under that canvas. Once done, overwrite the storage's copy of the annotation list and return the newly inserted annotation in Open Annotation form.
-
-```` javascript
-create: function(oaAnnotation, successCallback, errorCallback) {
-  var _this = this,
-
-  // Find the canvas to annotate on
-  key = oaAnnotation.on.full;
-
-  try {
-    // Reload the annotation list if empty
-    if (_this.annotationsList.length === 0) {
-      _this.annotationsList = _this.getAnnotationList(key);
-    }
-
-    // Generate a new annotation ID and insert into annotation list
-    oaAnnotation["@id"] = key + '/' + Date.now();
-    _this.annotationsList.push(oaAnnotation);
-
-    // Remove endpoint reference before JSON.stringify
-    jQuery.each(_this.annotationsList, function(index, value) {
-      delete value.endpoint;
-    });
-
-    // Overwrite the local storage with updated annotation list
-    localStorage.setItem(key, JSON.stringify(_this.annotationsList));
-
-    // Add endpoint reference after JSON.stringify
-    jQuery.each(_this.annotationsList, function(index, value) {
-      value.endpoint = _this;
-    });
-
-    // Done, run success callback if specified
-    if (typeof successCallback === "function") {
-      successCallback(oaAnnotation);
-    }
-  }
-
-  // Failed, run error callback if specified
-
-  catch (e) {
-    if (typeof errorCallback === "function") {
-      errorCallback();
-    }
-  }
-}
-````
-
-##### Using remote state endpoint
-
-To begin using your new remote state endpoint, add the key annotationStorageEndpoint to your setup, and enable annotationLayer and annotationCreation under windowObjects:
-
-```` javascript
-$(function() {
-  Mirador({
-    id: "viewer",
-    data: [/* Manifests and collections here *],
-    annotationEndpoint: {
-   	name: 'Local Storage Endpoint',
-   	module: 'LocalStorageEndpoint',
-   	options: { /* Options here */ }
-    },
-    windowObjects: [{
-      annotationLayer: true,
-   	annotationCreation: true,
-   	annotationState: 'annoOncreateOn'
-    }]
-  });
-});
-````
-
-![image alt text](image_13.png)
-
-For more example implementations involving annotation servers, see the following built-in endpoint adaptors:
-
-* js/src/annotations/catchEndpoint.js (CATCH)
-
-* js/src/annotations/simpleASEndpoint.js (Simple Annotation Server)
-
-### Remote State Saving
-
-To integrate with your own state storage for bookmarking and viewer state sharing, start with the following template (see Implementor comments below):
-
-```` javascript
-(function($) {
-
-  // IMPLEMENTOR: Rename RemoteStateEndpoint
-  $.RemoteStateEndpoint = function(opts) {
-    this.options = {
-      /* IMPLEMENTOR: Set up parameter defaults here (e.g. URLs, user credentials, etc.) */
-    };
-    jQuery.extend(this.options, opts);
-  };
-
-  // IMPLEMENTOR: Rename RemoteStateEndpoint
-
-  $.RemoteStateEndpoint.prototype = {
-    readSync: function(blobID) {
-      /* IMPLEMENTOR: Return the JSON object referenced by <blobID> here */
-    },
-    save: function(blob) {
-      var deferred = jQuery.Deferred(),
-      /* IMPLEMENTOR: Save the given JSON object <blob> and return a jQuery deferred promise that will resolve to the blob ID identifying it. */
-    }
-
-  };
-
-}(Mirador));
-````
-
-This can be added as an additional .js file in js/src/utils, or embedded on the page where Mirador is being run.
-
-All remote state endpoints must implement the following functions:
-
-* readSync(blobId): Return the JSON object stored under the specified blob ID.
-
-* save(blob): Save the given JSON object blob and return a jQuery deferred promise that resolves to the blob ID identifying it.
-
-##### Example implementation with local storage
-
-Default options: For this example, the integrator should have a choice between local storage or session storage, and an optional prefix before each entry.
-
-```` javascript
-$.MyLocalStateEndpoint = function(opts) {
-  this.options = {
-    storage: window.localStorage,
-    prefix: ""
-  };
-  jQuery.extend(this.options, opts);
-};
-````
-
-##### readSync: Read from the specified storage
-
-```` javascript
-readSync: function(blobId) {
-
-  return JSON.parse(this.options.storage.getItem(blobId));
-
-}
-
-##### save: Save to the specified storage under the current time
-
-```` javascript
-save: function(blob) {
-
-  var deferred = jQuery.Deferred(),
-      date = new Date,
-      _date = date.getFullYear() + "-" + date.getMonth() + "-" + date.getDay() + "-" + date.getHours() + "-" + date.getMinutes() + "-" + date.getSeconds();
-
-  this.options.storage.setItem(this.options.prefix + _date, JSON.stringify(blob));
-  deferred.resolve(this.options.prefix + _date);
-
-  return deferred.promise();
-}
-````
-
-To begin using your new remote state endpoint, add the key jsonStorageEndpoint to your setup, and enable saveSession and mainMenuSettings.buttons.bookmark:
-
-```` javascript
-$(function() {
-  Mirador({
-    id: "viewer",
-    data: [/* Manifests and collections here */],
-    mainMenuSettings: {
-      buttons: {
-        bookmark: true
-      }
-    },
-    jsonStorageEndpoint: {
-      name: "My local time state endpoint",
-      module: "MyLocalStateEndpoint",
-      options: { /* Set parameters here in key-value form */ }
-    },
-    saveSession: true
-  });
-});
-````
-![image alt text](image_14.png)
diff --git a/docs/image_0.png b/docs/image_0.png
deleted file mode 100644
index 4b354a50e7e6cbcb31ad3560e37f21f9d40ac199..0000000000000000000000000000000000000000
Binary files a/docs/image_0.png and /dev/null differ
diff --git a/docs/image_1.png b/docs/image_1.png
deleted file mode 100644
index 7cce41094ce20a7ff0b6a6a4d54a4679b7006ab8..0000000000000000000000000000000000000000
Binary files a/docs/image_1.png and /dev/null differ
diff --git a/docs/image_10.png b/docs/image_10.png
deleted file mode 100644
index 49d4eaf8247780ee4b6044cfc67aa64b460c61d5..0000000000000000000000000000000000000000
Binary files a/docs/image_10.png and /dev/null differ
diff --git a/docs/image_11.png b/docs/image_11.png
deleted file mode 100644
index 4dad6a90737f3f9d8f5cdd74f46ee11e7c4c92a4..0000000000000000000000000000000000000000
Binary files a/docs/image_11.png and /dev/null differ
diff --git a/docs/image_12.png b/docs/image_12.png
deleted file mode 100644
index 1674cd389cc1ebb4aae9ebeb9919e8b19ba5fc3a..0000000000000000000000000000000000000000
Binary files a/docs/image_12.png and /dev/null differ
diff --git a/docs/image_13.png b/docs/image_13.png
deleted file mode 100644
index 3c8c50cbe8130918db79b5c7b04adeb324146365..0000000000000000000000000000000000000000
Binary files a/docs/image_13.png and /dev/null differ
diff --git a/docs/image_14.png b/docs/image_14.png
deleted file mode 100644
index 974fd7237ce8581050958497bb3412eb2e838f23..0000000000000000000000000000000000000000
Binary files a/docs/image_14.png and /dev/null differ
diff --git a/docs/image_2.gif b/docs/image_2.gif
deleted file mode 100644
index 288a02686af90bd271d83952d09f7f7dbb68a645..0000000000000000000000000000000000000000
Binary files a/docs/image_2.gif and /dev/null differ
diff --git a/docs/image_3.png b/docs/image_3.png
deleted file mode 100644
index 655518a8573e9d771a919933e1cd6bf2f51567df..0000000000000000000000000000000000000000
Binary files a/docs/image_3.png and /dev/null differ
diff --git a/docs/image_4.png b/docs/image_4.png
deleted file mode 100644
index d5ff5c2492afc0d42f8505c42c1ab29726a28e23..0000000000000000000000000000000000000000
Binary files a/docs/image_4.png and /dev/null differ
diff --git a/docs/image_5.png b/docs/image_5.png
deleted file mode 100644
index 36e88a583de64afc34c5997f9606a8022fcca933..0000000000000000000000000000000000000000
Binary files a/docs/image_5.png and /dev/null differ
diff --git a/docs/image_6.png b/docs/image_6.png
deleted file mode 100644
index 40f88bf1f403fffd27a8380ac5c0874c3810e8df..0000000000000000000000000000000000000000
Binary files a/docs/image_6.png and /dev/null differ
diff --git a/docs/image_7.png b/docs/image_7.png
deleted file mode 100644
index 43f3f31336fa46e189b7cd2ce9e12c2959f12031..0000000000000000000000000000000000000000
Binary files a/docs/image_7.png and /dev/null differ
diff --git a/docs/image_8.png b/docs/image_8.png
deleted file mode 100644
index 6ea309bd910781ec1059ece9fe85d5f1fdfc0456..0000000000000000000000000000000000000000
Binary files a/docs/image_8.png and /dev/null differ
diff --git a/docs/image_9.png b/docs/image_9.png
deleted file mode 100644
index 89b7d1b6613a68d8c521924f00c7976e82cb9808..0000000000000000000000000000000000000000
Binary files a/docs/image_9.png and /dev/null differ
diff --git a/docs/image_add_object_box.png b/docs/image_add_object_box.png
deleted file mode 100644
index 8730389612b4ec204eb0b11480be05c0a3b9d2b9..0000000000000000000000000000000000000000
Binary files a/docs/image_add_object_box.png and /dev/null differ
diff --git a/docs/image_collection_tree.png b/docs/image_collection_tree.png
deleted file mode 100644
index d2528a2ef39b23a69e80a193efdf2e7d71d2e233..0000000000000000000000000000000000000000
Binary files a/docs/image_collection_tree.png and /dev/null differ
diff --git a/examples/configs/Zen1x1.html b/examples/configs/Zen1x1.html
deleted file mode 100644
index 5ff48944f1d997eb7d3b10d31a3579e173426de9..0000000000000000000000000000000000000000
--- a/examples/configs/Zen1x1.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE html>
-<head>
-  <meta charset="utf-8">
-  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-  <link rel="stylesheet" type="text/css" href="../../build/mirador/css/mirador-combined.css">
-  <title>Mirador Viewer</title>
-  <style type="text/css">
-    body { padding: 0; margin: 0; overflow: hidden; font-size: 70%; }
-    #viewer { background: #333 url(images/debut_dark.png) left top repeat; width: 100%; height: 100%; position: fixed; }
-  </style>
-</head>
-<body>
-  <div id="viewer"></div>
-
-  <script src="../../build/mirador/mirador.js"></script>
-  <script type="text/javascript">
-    $(function() {
-
-      Mirador({
-        "id": "viewer",
-        "mainMenuSettings" : {
-          'show' : false
-        },
-        "data": [
-          { "manifestUri": "http://dms-data.stanford.edu/data/manifests/Walters/qm670kv1873/manifest.json", "location": "Stanford University"},
-            ],
-            "windowObjects": [
-              {
-                "loadedManifest": "http://dms-data.stanford.edu/data/manifests/Walters/qm670kv1873/manifest.json",
-                "layoutOptions": {
-                  "close": false,
-                  "slotRight": false,
-                  "slotLeft": false,
-                  "slotAbove": false,
-                  "slotBelow": false
-                }
-              }
-            ]
-      });
-
-    });
-  </script>
-</body>
-</html>
diff --git a/examples/configs/blank.html b/examples/configs/blank.html
deleted file mode 100644
index f7a89ddd692ee2aae48162ae7ae78390bf6c532c..0000000000000000000000000000000000000000
--- a/examples/configs/blank.html
+++ /dev/null
@@ -1,70 +0,0 @@
-<!DOCTYPE html>
-<head>
-  <meta charset="utf-8">
-  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-  <link rel="stylesheet" type="text/css" href="../../build/mirador/css/mirador-combined.css">
-  <title>Mirador Viewer</title>
-  <style type="text/css">
-    body { padding: 0; margin: 0; overflow: hidden; font-size: 70%; }
-    #viewer { background: #333 url(images/debut_dark.png) left top repeat; width: 100%; height: 100%; position: fixed; }
-  </style>
-</head>
-<body>
-  <div id="viewer"></div>
-
-  <script src="../../build/mirador/mirador.js"></script>
-  <script type="text/javascript">
-    $(function() {
-
-      Mirador({
-        "id": "viewer",
-        "currentWorkspaceType": "none",
-        "data": [
-        { "manifestUri": "http://dms-data.stanford.edu/data/manifests/Walters/qm670kv1873/manifest.json", "location": "Stanford University"},
-        { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/Admont23", "location": "Yale University"},
-        { "manifestUri": "http://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093", "location": "Harvard University"},
-        { "manifestUri": "http://oculus-dev.harvardx.harvard.edu/manifests/via:olvwork576793", "location": "Harvard University"},
-        { "manifestUri": "http://oculus-dev.harvardx.harvard.edu/manifests/drs:14033171", "location": "Harvard University"},
-        { "manifestUri": "http://oculus-dev.harvardx.harvard.edu/manifests/drs:46909368", "location": "Harvard University"},
-        { "manifestUri": "http://oculus-dev.harvardx.harvard.edu/manifests/drs:18259372", "location": "Harvard University"},
-        { "manifestUri": "http://oculus-dev.harvardx.harvard.edu/manifests/drs:48331776", "location": "Harvard University"},
-        { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/Admont43", "location": "Yale University"},
-         { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BeineckeMS10", "location": "Yale University"},
-         { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BeineckeMS109", "location": "Yale University"},
-         { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BeineckeMS310", "location": "Yale University"},
-         { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BeineckeMS360", "location": "Yale University"},
-         { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BeineckeMS525", "location": "Yale University"},
-         { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BeineckeMS748", "location": "Yale University"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BeineckeMS758_5"},
-        { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMSBodley113", "location": "Yale University"},
-        // { "manifestUri": "http://www.shared-canvas.org/impl/demo1d/res/manifest.json" },
-         { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMSBodley850"},
-         { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMSDouce18"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMSGoughLiturg_3"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMSLaudMisc_204"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_Auct_D_inf_2_11"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_Bodley716"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_Bodley861"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_Bodley920"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_Douce231"},
-        { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_GoughLiturg_19"},
-        { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_Lat_Liturg_f_21"},
-        { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_Lat_liturg_f_2"},
-        {"manifestUri": "http://dms-data.stanford.edu/data/manifests/BnF/jr903ng8662/manifest.json"},
-        //{"manifestUri": "http://www.shared-canvas.org/impl/demo1d/res/manifest.json"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_LaudLat_4"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_LaudMisc_188"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMSliturg_e_17"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/CologneErzbischflicheDizesanundDombibliothek127Ka"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/CologneErzbischflicheDizesanundDombibliothek128Kb"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/MarstonMS22"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/Osborna44"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/Ripoll078"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/SanktGallenStiftsbibliothek673Sg"}
-        ],
-      });
-
-    });
-  </script>
-</body>
-</html>
diff --git a/examples/configs/bookReading.html b/examples/configs/bookReading.html
deleted file mode 100644
index 8047109433bc3f30b07fce047adbdd8b944a70b3..0000000000000000000000000000000000000000
--- a/examples/configs/bookReading.html
+++ /dev/null
@@ -1,81 +0,0 @@
-<!DOCTYPE html>
-<head>
-  <meta charset="utf-8">
-  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-  <link rel="stylesheet" type="text/css" href="../../build/mirador/css/mirador-combined.css">
-  <title>Mirador Viewer</title>
-  <style type="text/css">
-    body { padding: 0; margin: 0; overflow: hidden; font-size: 70%; }
-    #viewer { background: #333 url(images/debut_dark.png) left top repeat; width: 100%; height: 100%; position: fixed; }
-  </style>
-</head>
-<body>
-  <div id="viewer"></div>
-
-  <script src="../../build/mirador/mirador.js"></script>
-  <script type="text/javascript">
-    $(function() {
-
-      Mirador({
-        "id": "viewer",
-        "currentWorkspaceType": "bookReading",
-        "data": [
-        { "manifestUri": "http://dms-data.stanford.edu/data/manifests/Walters/qm670kv1873/manifest.json", "location": "Stanford University"},
-        { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/Admont23", "location": "Yale University"},
-        { "manifestUri": "http://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093", "location": "Harvard University"},
-        { "manifestUri": "http://oculus-dev.harvardx.harvard.edu/manifests/via:olvwork576793", "location": "Harvard University"},
-        { "manifestUri": "http://oculus-dev.harvardx.harvard.edu/manifests/drs:14033171", "location": "Harvard University"},
-        { "manifestUri": "http://oculus-dev.harvardx.harvard.edu/manifests/drs:46909368", "location": "Harvard University"},
-        { "manifestUri": "http://oculus-dev.harvardx.harvard.edu/manifests/drs:18259372", "location": "Harvard University"},
-        { "manifestUri": "http://oculus-dev.harvardx.harvard.edu/manifests/drs:48331776", "location": "Harvard University"},
-        { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/Admont43", "location": "Yale University"},
-         { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BeineckeMS10", "location": "Yale University"},
-         { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BeineckeMS109", "location": "Yale University"},
-         { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BeineckeMS310", "location": "Yale University"},
-         { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BeineckeMS360", "location": "Yale University"},
-         { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BeineckeMS525", "location": "Yale University"},
-         { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BeineckeMS748", "location": "Yale University"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BeineckeMS758_5"},
-        { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMSBodley113", "location": "Yale University"},
-        // { "manifestUri": "http://www.shared-canvas.org/impl/demo1d/res/manifest.json" },
-         { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMSBodley850"},
-         { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMSDouce18"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMSGoughLiturg_3"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMSLaudMisc_204"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_Auct_D_inf_2_11"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_Bodley716"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_Bodley861"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_Bodley920"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_Douce231"},
-        { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_GoughLiturg_19"},
-        { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_Lat_Liturg_f_21"},
-        { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_Lat_liturg_f_2"},
-        {"manifestUri": "http://dms-data.stanford.edu/data/manifests/BnF/jr903ng8662/manifest.json"},
-        //{"manifestUri": "http://www.shared-canvas.org/impl/demo1d/res/manifest.json"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_LaudLat_4"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_LaudMisc_188"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMSliturg_e_17"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/CologneErzbischflicheDizesanundDombibliothek127Ka"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/CologneErzbischflicheDizesanundDombibliothek128Kb"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/MarstonMS22"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/Osborna44"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/Ripoll078"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/SanktGallenStiftsbibliothek673Sg"}
-        ],
-        "windowObjects": [
-          {
-        	"loadedManifest": "http://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093",
-        	"viewType" : "BookView", 
-        	"canvasID": "http://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981104.json",
-        	//"bottomPanel" : false,
-        	"sidePanel" : false
-        	//"availableViews" : ['ThumbnailsView', 'ImageView', 'BookView']
-        	//"overlay" : false
-          }
-        ]
-      });
-
-    });
-  </script>
-</body>
-</html>
diff --git a/examples/configs/compare.html b/examples/configs/compare.html
deleted file mode 100644
index e4d15274cf58e614f5b9842e3415957a4c83ef15..0000000000000000000000000000000000000000
--- a/examples/configs/compare.html
+++ /dev/null
@@ -1,81 +0,0 @@
-<!DOCTYPE html>
-<head>
-  <meta charset="utf-8">
-  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-  <link rel="stylesheet" type="text/css" href="../../build/mirador/css/mirador-combined.css">
-  <title>Mirador Viewer</title>
-  <style type="text/css">
-    body { padding: 0; margin: 0; overflow: hidden; font-size: 70%; }
-    #viewer { background: #333 url(images/debut_dark.png) left top repeat; width: 100%; height: 100%; position: fixed; }
-  </style>
-</head>
-<body>
-  <div id="viewer"></div>
-
-  <script src="../../build/mirador/mirador.js"></script>
-  <script type="text/javascript">
-    $(function() {
-
-      Mirador({
-        "id": "viewer",
-        "currentWorkspaceType": "compare",
-        "data": [
-        { "manifestUri": "http://dms-data.stanford.edu/data/manifests/Walters/qm670kv1873/manifest.json", "location": "Stanford University"},
-        { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/Admont23", "location": "Yale University"},
-        { "manifestUri": "http://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093", "location": "Harvard University"},
-        { "manifestUri": "http://oculus-dev.harvardx.harvard.edu/manifests/via:olvwork576793", "location": "Harvard University"},
-        { "manifestUri": "http://oculus-dev.harvardx.harvard.edu/manifests/drs:14033171", "location": "Harvard University"},
-        { "manifestUri": "http://oculus-dev.harvardx.harvard.edu/manifests/drs:46909368", "location": "Harvard University"},
-        { "manifestUri": "http://oculus-dev.harvardx.harvard.edu/manifests/drs:18259372", "location": "Harvard University"},
-        { "manifestUri": "http://oculus-dev.harvardx.harvard.edu/manifests/drs:48331776", "location": "Harvard University"},
-        { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/Admont43", "location": "Yale University"},
-         { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BeineckeMS10", "location": "Yale University"},
-         { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BeineckeMS109", "location": "Yale University"},
-         { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BeineckeMS310", "location": "Yale University"},
-         { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BeineckeMS360", "location": "Yale University"},
-         { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BeineckeMS525", "location": "Yale University"},
-         { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BeineckeMS748", "location": "Yale University"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BeineckeMS758_5"},
-        { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMSBodley113", "location": "Yale University"},
-        // { "manifestUri": "http://www.shared-canvas.org/impl/demo1d/res/manifest.json" },
-         { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMSBodley850"},
-         { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMSDouce18"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMSGoughLiturg_3"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMSLaudMisc_204"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_Auct_D_inf_2_11"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_Bodley716"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_Bodley861"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_Bodley920"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_Douce231"},
-        { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_GoughLiturg_19"},
-        { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_Lat_Liturg_f_21"},
-        { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_Lat_liturg_f_2"},
-        {"manifestUri": "http://dms-data.stanford.edu/data/manifests/BnF/jr903ng8662/manifest.json"},
-        //{"manifestUri": "http://www.shared-canvas.org/impl/demo1d/res/manifest.json"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_LaudLat_4"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_LaudMisc_188"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMSliturg_e_17"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/CologneErzbischflicheDizesanundDombibliothek127Ka"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/CologneErzbischflicheDizesanundDombibliothek128Kb"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/MarstonMS22"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/Osborna44"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/Ripoll078"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/SanktGallenStiftsbibliothek673Sg"}
-        ],
-        "windowObjects": [
-          {
-        	"loadedManifest": "http://dms-data.stanford.edu/data/manifests/Walters/qm670kv1873/manifest.json",
-        	"viewType" : "ImageView", 
-        	"canvasID": "http://dms-data.stanford.edu/data/manifests/Walters/qm670kv1873/canvas/canvas-12"
-        	//"bottomPanel" : false,
-        	//"sidePanel" : false,
-        	//"availableViews" : ['ThumbnailsView', 'ImageView', 'BookView']
-        	//"overlay" : false
-          }
-        ]
-      });
-
-    });
-  </script>
-</body>
-</html>
diff --git a/examples/configs/images/debut_dark.png b/examples/configs/images/debut_dark.png
deleted file mode 100644
index 17a4d6b42defcc8ebbad993bc91a2030f6c690ed..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/debut_dark.png and /dev/null differ
diff --git a/examples/configs/images/harvard_logo.png b/examples/configs/images/harvard_logo.png
deleted file mode 100644
index fa299ee27a36910eab235ca0cb9772a125da719c..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/harvard_logo.png and /dev/null differ
diff --git a/examples/configs/images/iiif_logo.png b/examples/configs/images/iiif_logo.png
deleted file mode 100644
index a96001d6b926cc15cd8b213aa3efaddb844cce45..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/iiif_logo.png and /dev/null differ
diff --git a/examples/configs/images/loading.gif b/examples/configs/images/loading.gif
deleted file mode 100644
index ed63d0b65b0469a481cb48101a39f80f034326b3..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/loading.gif and /dev/null differ
diff --git a/examples/configs/images/mirador-icons.png b/examples/configs/images/mirador-icons.png
deleted file mode 100644
index a010ccc888530f312d7ffe43f6b89bad646a35e1..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/mirador-icons.png and /dev/null differ
diff --git a/examples/configs/images/noise.png b/examples/configs/images/noise.png
deleted file mode 100644
index 009dc4c3d6da2aba72f7e230daede88f350665d0..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/noise.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/fit-hover.png b/examples/configs/images/openseadragon/fit-hover.png
deleted file mode 100644
index 9a6c5e9f6affa16aa006eefbe104a48147d26278..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/fit-hover.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/fit.png b/examples/configs/images/openseadragon/fit.png
deleted file mode 100644
index 1796f8e37ac5c03e4c787d13f34be5799b1d1709..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/fit.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/full-screen-hover.png b/examples/configs/images/openseadragon/full-screen-hover.png
deleted file mode 100644
index cd7b0e79bf2b15cfdd8141d31d04a6e0463d2434..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/full-screen-hover.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/full-screen.png b/examples/configs/images/openseadragon/full-screen.png
deleted file mode 100644
index 9bbfc3267ad3be20f010729584be5602ca5b7b0b..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/full-screen.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/fullpage_grouphover.png b/examples/configs/images/openseadragon/fullpage_grouphover.png
deleted file mode 100644
index 3ca4e1e3c366d44e9dbbde415f6addaef941b129..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/fullpage_grouphover.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/fullpage_hover.png b/examples/configs/images/openseadragon/fullpage_hover.png
deleted file mode 100644
index d08eb2d0b077754ea9ad8906bf3c376f3fb178d4..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/fullpage_hover.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/fullpage_pressed.png b/examples/configs/images/openseadragon/fullpage_pressed.png
deleted file mode 100644
index 0ee45b5fc68aea79b511fa35b2a0be387aa35351..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/fullpage_pressed.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/fullpage_rest.png b/examples/configs/images/openseadragon/fullpage_rest.png
deleted file mode 100644
index 3172005c6e1f43e5183c589197112aa135320cc8..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/fullpage_rest.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/home_grouphover.png b/examples/configs/images/openseadragon/home_grouphover.png
deleted file mode 100644
index 204e1cc94b5057e04a42f0d4483ba0c96c05e7cc..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/home_grouphover.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/home_hover.png b/examples/configs/images/openseadragon/home_hover.png
deleted file mode 100644
index ec218a00a0b18b6997b37b5f3c1ddc4ec413ca6f..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/home_hover.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/home_pressed.png b/examples/configs/images/openseadragon/home_pressed.png
deleted file mode 100644
index 4439508bc6ebb6c3d9aee81ae8df4da592bd1cb6..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/home_pressed.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/home_rest.png b/examples/configs/images/openseadragon/home_rest.png
deleted file mode 100644
index 009d1bbf4c410ca89adb6bdb3e1fa8192db2ff41..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/home_rest.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/next-hover.png b/examples/configs/images/openseadragon/next-hover.png
deleted file mode 100644
index d8c8b28607c37f3b0601fcfee3aa7dd09eea8ef5..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/next-hover.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/next.png b/examples/configs/images/openseadragon/next.png
deleted file mode 100644
index 80dd7fc858607a6d8ea8d85f61bd011309e8dc6f..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/next.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/next_grouphover.png b/examples/configs/images/openseadragon/next_grouphover.png
deleted file mode 100644
index 8d83d8a142854fedbee4bccee591fafb5be7f179..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/next_grouphover.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/next_hover.png b/examples/configs/images/openseadragon/next_hover.png
deleted file mode 100644
index ba24ca988f1536d596c595fd0beef8b985a17c35..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/next_hover.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/next_pressed.png b/examples/configs/images/openseadragon/next_pressed.png
deleted file mode 100644
index 95f169d65150b1e5162585bd0695e4617363afbe..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/next_pressed.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/next_rest.png b/examples/configs/images/openseadragon/next_rest.png
deleted file mode 100644
index 5ead544b5d7ef6de16e83f9d28aee515666fcb89..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/next_rest.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/previous-hover.png b/examples/configs/images/openseadragon/previous-hover.png
deleted file mode 100644
index c74ea6f572c9c8c08ce4bac57360a930d3deefa1..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/previous-hover.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/previous.png b/examples/configs/images/openseadragon/previous.png
deleted file mode 100644
index 3c1e8c7d6fdbfbbab2c78ed1648fa8510ae2a3ba..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/previous.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/previous_grouphover.png b/examples/configs/images/openseadragon/previous_grouphover.png
deleted file mode 100644
index 016e63957a87778ba2562ec7a91dee22248590d8..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/previous_grouphover.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/previous_hover.png b/examples/configs/images/openseadragon/previous_hover.png
deleted file mode 100644
index d4a5c1552c7a8a5e7ddae0d2a94f235e00e44c62..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/previous_hover.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/previous_pressed.png b/examples/configs/images/openseadragon/previous_pressed.png
deleted file mode 100644
index f999fe498500de4f891f898be1fc09c368162864..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/previous_pressed.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/previous_rest.png b/examples/configs/images/openseadragon/previous_rest.png
deleted file mode 100644
index 9716dac67b7ccd4c68b427eeca7de3548eed0726..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/previous_rest.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/zoom-in-hover.png b/examples/configs/images/openseadragon/zoom-in-hover.png
deleted file mode 100644
index 290349bfb39f97b99715f471612b164ebaf63db0..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/zoom-in-hover.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/zoom-in.png b/examples/configs/images/openseadragon/zoom-in.png
deleted file mode 100644
index cac6a9b7ac12b5a5375a4db2bb323b8b8ea35c1b..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/zoom-in.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/zoom-out-hover.png b/examples/configs/images/openseadragon/zoom-out-hover.png
deleted file mode 100644
index 5ff751edaff941d9a0cacd66212e0c80ac6b5688..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/zoom-out-hover.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/zoom-out.png b/examples/configs/images/openseadragon/zoom-out.png
deleted file mode 100644
index ae60172c430c9a30be55fb824771c459683fa5e2..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/zoom-out.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/zoomin_grouphover.png b/examples/configs/images/openseadragon/zoomin_grouphover.png
deleted file mode 100644
index c985d0f958d78c8233c4fc3c3a48a240392c8ea8..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/zoomin_grouphover.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/zoomin_hover.png b/examples/configs/images/openseadragon/zoomin_hover.png
deleted file mode 100644
index 3cab721f1bd5b0360dd1eac094c36a409b517738..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/zoomin_hover.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/zoomin_pressed.png b/examples/configs/images/openseadragon/zoomin_pressed.png
deleted file mode 100644
index 9c3a75169cefbc031e7b1f0d0baf7472580552c3..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/zoomin_pressed.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/zoomin_rest.png b/examples/configs/images/openseadragon/zoomin_rest.png
deleted file mode 100644
index f4219a50aed7503f63e9b553cf6159e2cca36d11..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/zoomin_rest.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/zoomout_grouphover.png b/examples/configs/images/openseadragon/zoomout_grouphover.png
deleted file mode 100644
index 46d21b3e507e7363b4e8afd0e77343814ad63748..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/zoomout_grouphover.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/zoomout_hover.png b/examples/configs/images/openseadragon/zoomout_hover.png
deleted file mode 100644
index 7b924c26d8f587e030293036a7230d3faba88918..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/zoomout_hover.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/zoomout_pressed.png b/examples/configs/images/openseadragon/zoomout_pressed.png
deleted file mode 100644
index c028db72405a925425228819f7e348df331d9afd..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/zoomout_pressed.png and /dev/null differ
diff --git a/examples/configs/images/openseadragon/zoomout_rest.png b/examples/configs/images/openseadragon/zoomout_rest.png
deleted file mode 100644
index a13e07de798ec32c5bcbec32001427df6bade43b..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/openseadragon/zoomout_rest.png and /dev/null differ
diff --git a/examples/configs/images/sul_logo.jpeg b/examples/configs/images/sul_logo.jpeg
deleted file mode 100644
index 339af5625f2b8a423009fac4f88c992e0f2b1e59..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/sul_logo.jpeg and /dev/null differ
diff --git a/examples/configs/images/yale_logo.jpeg b/examples/configs/images/yale_logo.jpeg
deleted file mode 100644
index da9c2ebfc823d9268b18ca927c9bfddefeb43b5e..0000000000000000000000000000000000000000
Binary files a/examples/configs/images/yale_logo.jpeg and /dev/null differ
diff --git a/examples/configs/singleObject.html b/examples/configs/singleObject.html
deleted file mode 100644
index 855ef2f6d83bdc5262fd8d58b2e1c8f7e0c115a0..0000000000000000000000000000000000000000
--- a/examples/configs/singleObject.html
+++ /dev/null
@@ -1,81 +0,0 @@
-<!DOCTYPE html>
-<head>
-  <meta charset="utf-8">
-  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-  <link rel="stylesheet" type="text/css" href="../../build/mirador/css/mirador-combined.css">
-  <title>Mirador Viewer</title>
-  <style type="text/css">
-    body { padding: 0; margin: 0; overflow: hidden; font-size: 70%; }
-    #viewer { background: #333 url(images/debut_dark.png) left top repeat; width: 100%; height: 100%; position: fixed; }
-  </style>
-</head>
-<body>
-  <div id="viewer"></div>
-
-  <script src="../../build/mirador/mirador.js"></script>
-  <script type="text/javascript">
-    $(function() {
-
-      Mirador({
-        "id": "viewer",
-        "currentWorkspaceType": "singleObject",
-        "data": [
-        { "manifestUri": "http://dms-data.stanford.edu/data/manifests/Walters/qm670kv1873/manifest.json", "location": "Stanford University"},
-        { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/Admont23", "location": "Yale University"},
-        { "manifestUri": "http://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093", "location": "Harvard University"},
-        { "manifestUri": "http://oculus-dev.harvardx.harvard.edu/manifests/via:olvwork576793", "location": "Harvard University"},
-        { "manifestUri": "http://oculus-dev.harvardx.harvard.edu/manifests/drs:14033171", "location": "Harvard University"},
-        { "manifestUri": "http://oculus-dev.harvardx.harvard.edu/manifests/drs:46909368", "location": "Harvard University"},
-        { "manifestUri": "http://oculus-dev.harvardx.harvard.edu/manifests/drs:18259372", "location": "Harvard University"},
-        { "manifestUri": "http://oculus-dev.harvardx.harvard.edu/manifests/drs:48331776", "location": "Harvard University"},
-        { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/Admont43", "location": "Yale University"},
-         { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BeineckeMS10", "location": "Yale University"},
-         { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BeineckeMS109", "location": "Yale University"},
-         { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BeineckeMS310", "location": "Yale University"},
-         { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BeineckeMS360", "location": "Yale University"},
-         { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BeineckeMS525", "location": "Yale University"},
-         { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BeineckeMS748", "location": "Yale University"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BeineckeMS758_5"},
-        { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMSBodley113", "location": "Yale University"},
-        // { "manifestUri": "http://www.shared-canvas.org/impl/demo1d/res/manifest.json" },
-         { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMSBodley850"},
-         { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMSDouce18"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMSGoughLiturg_3"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMSLaudMisc_204"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_Auct_D_inf_2_11"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_Bodley716"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_Bodley861"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_Bodley920"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_Douce231"},
-        { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_GoughLiturg_19"},
-        { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_Lat_Liturg_f_21"},
-        { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_Lat_liturg_f_2"},
-        {"manifestUri": "http://dms-data.stanford.edu/data/manifests/BnF/jr903ng8662/manifest.json"},
-        //{"manifestUri": "http://www.shared-canvas.org/impl/demo1d/res/manifest.json"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_LaudLat_4"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMS_LaudMisc_188"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BodleianMSliturg_e_17"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/CologneErzbischflicheDizesanundDombibliothek127Ka"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/CologneErzbischflicheDizesanundDombibliothek128Kb"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/MarstonMS22"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/Osborna44"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/Ripoll078"},
-        // { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/SanktGallenStiftsbibliothek673Sg"}
-        ],
-        "windowObjects": [
-          {
-        	"loadedManifest": "http://dms-data.stanford.edu/data/manifests/Walters/qm670kv1873/manifest.json",
-        	"viewType" : "ImageView", 
-        	"canvasID": "http://dms-data.stanford.edu/data/manifests/Walters/qm670kv1873/canvas/canvas-12"
-        	//"bottomPanel" : false,
-        	//"sidePanel" : false,
-        	//"availableViews" : ['ThumbnailsView', 'ImageView', 'BookView']
-        	//"overlay" : false
-          }
-        ]
-      });
-
-    });
-  </script>
-</body>
-</html>
diff --git a/examples/configureDynamically.html b/examples/configureDynamically.html
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/examples/embedded-in-page/config-1.js b/examples/embedded-in-page/config-1.js
deleted file mode 100644
index 6116ca08c3f377d4feafe4aa7862a2ed2d4fea9a..0000000000000000000000000000000000000000
--- a/examples/embedded-in-page/config-1.js
+++ /dev/null
@@ -1,36 +0,0 @@
-(function ($) {
-  
-  $.config_1 = {
-    "id" : "mirador_viewer_1",
-    "saveSession" : false,
-    "layout" : "1x1",
-    "data" : [
-      { "manifestUri": "http://dms-data.stanford.edu/data/manifests/Walters/qm670kv1873/manifest.json", "location": "Stanford University" }
-    ],
-    "buildPath" : "/",
-    "i18nPath" : "mirador/locales/",
-    "imagesPath" : "mirador/images/",
-    "logosPath" : "mirador/images/logos/",
-    "mainMenuSettings" : {
-      "show" : true,
-      "buttons" : {
-        "bookmark" : false,
-        "fullScreenViewer": true,
-        "options": false
-      },
-      "userButtons" : [
-      ],
-      "userLogo" : {
-        "label" : "Example 1",
-        "attributes" : { "id" : "logo", "href" : "http://iiif.io", "target" : "_blank" }
-      }
-    },
-    "windowObjects" : [],
-    "annotationLayer" : true,
-    "annotationEndpoint" : { 
-      "name": "Local Storage", 
-      "module": "LocalStorageEndpoint"
-    }
-  };
-  
-})(MiradorExample);
diff --git a/examples/embedded-in-page/config-2.js b/examples/embedded-in-page/config-2.js
deleted file mode 100644
index 2c9f306d0ca2be4428ba81063903b23a641a8113..0000000000000000000000000000000000000000
--- a/examples/embedded-in-page/config-2.js
+++ /dev/null
@@ -1,33 +0,0 @@
-(function ($) {
-  
-  $.config_2 = {
-    "_comment" : "Zen mode",
-    "id" : "mirador_viewer_1",
-    "layout" : "1x1",
-    "mainMenuSettings" : {
-      "show" : false
-    },
-    "data" : [
-      {
-        "manifestUri" : "http://oculus-dev.harvardx.harvard.edu/manifests/huam:200515",
-        "location": "Harvard University"
-      }
-    ],
-    "windowObjects" : [
-      {
-        "loadedManifest" : "http://oculus-dev.harvardx.harvard.edu/manifests/huam:200515",
-        "canvasID" : "http://oculus-dev.harvardx.harvard.edu/manifests/huam:200515/canvas/canvas-43183641.json",
-        "viewType" : "ImageView",
-        "displayLayout" : false,
-        "bottomPanel" : false,
-        "sidePanel" : false,
-        "annotationLayer" : false
-      }
-    ],
-    "buildPath" : "/",
-    "i18nPath" : "mirador/locales/",
-    "imagesPath" : "mirador/images/",
-    "logosPath" : "mirador/images/logos/"
-  };
-  
-})(MiradorExample);
diff --git a/examples/embedded-in-page/config-3.js b/examples/embedded-in-page/config-3.js
deleted file mode 100644
index 0e3c43c9d95cd4d66da6bcafec44ec1f5e751a6c..0000000000000000000000000000000000000000
--- a/examples/embedded-in-page/config-3.js
+++ /dev/null
@@ -1,50 +0,0 @@
-(function ($) {
-  
-  $.config_3 = {
-    "_comment": "Multi-slot",
-    "id" : "mirador_viewer_1",
-    "saveSession" : false,
-    "layout" : "2x2",
-    "mainMenuSettings" : {
-      "show" : false
-    },
-    "data" : [
-      {
-        "manifestUri" : "http://dms-data.stanford.edu/data/manifests/Walters/qm670kv1873/manifest.json",
-        "location" : "Stanford University"
-      },
-      {
-        "manifestUri" : "http://oculus-dev.harvardx.harvard.edu/manifests/huam:200515",
-        "location": "Harvard University"
-      },
-      {
-        "manifestUri" : "http://iiif.biblissima.fr/manifests/ark:/12148/btv1b84539771/manifest.json",
-        "location": "BnF"
-      }
-    ],
-    "windowObjects" : [
-      {
-        "loadedManifest" : "http://iiif.biblissima.fr/manifests/ark:/12148/btv1b84539771/manifest.json",
-        "viewType" : "ThumbnailsView"
-      },
-      {
-        "loadedManifest" : "http://iiif.biblissima.fr/manifests/ark:/12148/btv1b84539771/manifest.json",
-        "viewType" : "ImageView"
-      },
-      {
-        "loadedManifest" : "http://iiif.biblissima.fr/manifests/ark:/12148/btv1b84539771/manifest.json",
-        "viewType" : "ScrollView"
-      },
-      {
-        "loadedManifest" : "http://iiif.biblissima.fr/manifests/ark:/12148/btv1b84539771/manifest.json",
-        "//1" : "slotAddress: row1.column2.row1",
-        "viewType" : "BookView"
-      }
-    ],
-    "buildPath" : "/",
-    "i18nPath" : "mirador/locales/",
-    "imagesPath" : "mirador/images/",
-    "logosPath" : "mirador/images/logos/"
-  }
-
-})(MiradorExample);
diff --git a/examples/embedded-in-page/embedded.css b/examples/embedded-in-page/embedded.css
deleted file mode 100644
index 33f1df2bc804f7d48da35023032b7930f4e1e06b..0000000000000000000000000000000000000000
--- a/examples/embedded-in-page/embedded.css
+++ /dev/null
@@ -1,27 +0,0 @@
-.mirador_container {
-  position: relative; /* Necessary when mirador viewer div's position is absolute */
-  border: 5px solid green;
-  margin: 10px;
-  width: 90%;
-  height: 600px;
-}
-
-.mirador_viewer {
-  /*display: block !important;*/
-
-  /* Position is "fixed" in mirador.css.
-   * We cannot confine it within a div with a fixed position.
-   */
-  position: absolute !important;
-  
-  /* width=100%, top=0, bottom=0: necessary to stretch Mirador to
-   * the containing div
-   */
-  width: 100%;
-  top: 0;
-  bottom: 0;
-}
-
-h1, p {
-  margin-left: 10px;
-}
diff --git a/examples/embedded-in-page/embedded.js b/examples/embedded-in-page/embedded.js
deleted file mode 100644
index 487ec47f2f38cfd7cd8686449f672514efac8eb6..0000000000000000000000000000000000000000
--- a/examples/embedded-in-page/embedded.js
+++ /dev/null
@@ -1,32 +0,0 @@
-window.MiradorExample = {};
-
-(function ($) {
-  
-  jQuery(document).ready(function () {
-    $.app = new $.App();
-  });
-  
-  $.App = function () {
-    this.configSelect = jQuery('#config_select');
-    
-    this.reloadMirador();
-    this.bindEvents();
-  };
-  
-  $.App.prototype = {
-    reloadMirador: function () {
-      console.log('config: ' + this.configSelect.val());
-      var config = $[this.configSelect.val()];
-      Mirador(config);
-    },
-    
-    bindEvents: function () {
-      var _this = this;
-      
-      this.configSelect.change(function () {
-        _this.reloadMirador();
-      });
-    }
-  }
-  
-})(MiradorExample);
diff --git a/examples/embedded-in-page/index.html b/examples/embedded-in-page/index.html
deleted file mode 100644
index 093f63182da0ed4383c4fd1973f990f237228c88..0000000000000000000000000000000000000000
--- a/examples/embedded-in-page/index.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html>
-<head>
-  <meta charset="utf-8"/>
-  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
-  <link rel="stylesheet" type="text/css" href="../../build/mirador/css/mirador-combined.css"/>
-  <link rel="stylesheet" type="text/css" href="embedded.css"/>
-  <script type="text/javascript" src="../../build/mirador/mirador.js"></script>
-  <script type="text/javascript" src="embedded.js"></script>
-  <script type="text/javascript" src="config-1.js"></script>
-  <script type="text/javascript" src="config-2.js"></script>
-  <script type="text/javascript" src="config-3.js"></script>
-  <title>Embedded Mirador Viewers</title>
-</head>
-<body>
-  <h1>Mirador Embedded</h1>
-  <p>
-    Change config: 
-    <select id="config_select">
-      <option value="config_1">Single slot</option>
-      <option value="config_2">Zen mode</option>
-      <option value="config_3" selected>Multi Slot</option>
-    </select>
-  </p>
-  <div class="mirador_container">
-    <div id="mirador_viewer_1" class="mirador_viewer"></div>
-  </div>
-</body>
-</html>
diff --git a/examples/embedded-multiple-instances/config-1.js b/examples/embedded-multiple-instances/config-1.js
deleted file mode 100644
index 9d5bacd29e75a846814d9fd16fe634a085115de8..0000000000000000000000000000000000000000
--- a/examples/embedded-multiple-instances/config-1.js
+++ /dev/null
@@ -1,31 +0,0 @@
-(function ($) {
-
-  $.config_1 = {
-    "id" : "mirador_viewer_1",
-    "saveSession" : false,
-    "layout" : "1x1",
-    "data" : [
-      { "manifestUri": "http://dms-data.stanford.edu/data/manifests/Walters/qm670kv1873/manifest.json", "location": "Stanford University" }
-    ],
-    "buildPath" : "/build/mirador/",
-    "mainMenuSettings" : {
-      "show" : true,
-      "buttons" : {
-        "bookmark" : false,
-        "fullScreenViewer": true,
-        "options": false
-      },
-      "userButtons" : [
-      ],
-      "userLogo" : {
-        "label" : "Example 1",
-        "attributes" : { "id" : "logo", "href" : "http://iiif.io", "target" : "_blank" }
-      }
-    },
-    "annotationEndpoint" : {
-      "name": "Local Storage",
-      "module": "LocalStorageEndpoint"
-    }
-  };
-
-})(MiradorExample);
diff --git a/examples/embedded-multiple-instances/config-2.js b/examples/embedded-multiple-instances/config-2.js
deleted file mode 100644
index 442ce7df41a29e7a7282762ac2cced1b5e42a2e7..0000000000000000000000000000000000000000
--- a/examples/embedded-multiple-instances/config-2.js
+++ /dev/null
@@ -1,31 +0,0 @@
-(function ($) {
-
-  $.config_2 = {
-    "id" : "mirador_viewer_2",
-    "saveSession" : false,
-    "layout" : "1x1",
-    "data" : [
-      { "manifestUri": "http://iiif.biblissima.fr/manifests/ark:/12148/btv1b10500687r/manifest.json", "location": 'BnF' }
-    ],
-    "buildPath" : "/build/mirador/",
-    "mainMenuSettings" : {
-      "show" : true,
-      "buttons" : {
-        "bookmark" : false,
-        "fullScreenViewer": true,
-        "options": false
-      },
-      "userButtons" : [
-      ],
-      "userLogo" : {
-        "label" : "Example 2",
-        "attributes" : { "id" : "logo", "href" : "http://iiif.io", "target" : "_blank" }
-      }
-    },
-    "annotationEndpoint" : {
-      "name": "Local Storage",
-      "module": "LocalStorageEndpoint"
-    }
-  };
-
-})(MiradorExample);
diff --git a/examples/embedded-multiple-instances/embedded.css b/examples/embedded-multiple-instances/embedded.css
deleted file mode 100644
index a50701ab8c5cdb1b5886c8e193036828151a9ef9..0000000000000000000000000000000000000000
--- a/examples/embedded-multiple-instances/embedded.css
+++ /dev/null
@@ -1,19 +0,0 @@
-.mirador_container {
-  position: relative;
-  display: inline-block;
-  border: 5px solid green;
-  margin: 10px;
-  width: 45%;
-  height: 500px;
-}
-
-.mirador_viewer {
-  position: absolute;
-  width: 100%;
-  top: 0;
-  bottom: 0;
-}
-
-h1 {
-  margin-left: 10px;
-}
diff --git a/examples/embedded-multiple-instances/embedded.js b/examples/embedded-multiple-instances/embedded.js
deleted file mode 100644
index 078ce63950408b187bcd683f6454a1b458584407..0000000000000000000000000000000000000000
--- a/examples/embedded-multiple-instances/embedded.js
+++ /dev/null
@@ -1,10 +0,0 @@
-window.MiradorExample = {};
-
-(function ($) {
-
-  jQuery(document).ready(function () {
-    Mirador($.config_1);
-    Mirador($.config_2);
-  });
-
-})(MiradorExample);
diff --git a/examples/embedded-multiple-instances/index.html b/examples/embedded-multiple-instances/index.html
deleted file mode 100644
index bda98756c74aff4ee4b7dac30be76ad572d7d4f3..0000000000000000000000000000000000000000
--- a/examples/embedded-multiple-instances/index.html
+++ /dev/null
@@ -1,53 +0,0 @@
-<!DOCTYPE html>
-<head>
-  <meta charset="utf-8"/>
-  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
-  <link rel="stylesheet" type="text/css" href="../../build/mirador/css/mirador-combined.css"/>
-  <link rel="stylesheet" type="text/css" href="embedded.css"/>
-  <script type="text/javascript" src="../../build/mirador/mirador.js"></script>
-  <script type="text/javascript" src="embedded.js"></script>
-  <script type="text/javascript" src="config-1.js"></script>
-  <script type="text/javascript" src="config-2.js"></script>
-  <title>Embedded Mirador Viewers</title>
-</head>
-<body>
-  <h1>Mirador Embedded</h1>
-
-  <div class="mirador_container">
-    <div id="mirador_viewer_1" class="mirador_viewer"></div>
-  </div>
-
-  <h1>HTML Ipsum Presents</h1>
-
-  <p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>
-
-  <h2>Header Level 2</h2>
-
-  <ol>
-     <li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
-     <li>Aliquam tincidunt mauris eu risus.</li>
-  </ol>
-
-  <blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote>
-
-  <h3>Header Level 3</h3>
-
-  <ul>
-     <li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
-     <li>Aliquam tincidunt mauris eu risus.</li>
-  </ul>
-
-  <pre><code>
-  #header h1 a {
-  	display: block;
-  	width: 300px;
-  	height: 80px;
-  }
-  </code></pre>
-
-  <div class="mirador_container">
-    <div id="mirador_viewer_2" class="mirador_viewer"></div>
-  </div>
-
-</body>
-</html>
diff --git a/examples/embedded.html b/examples/embedded.html
deleted file mode 100644
index d9023e3b34a1d5f64e1e15087965a9d78438a7e8..0000000000000000000000000000000000000000
--- a/examples/embedded.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<!DOCTYPE html>
-<head>
-  <meta charset="utf-8">
-  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-  <link rel="stylesheet" type="text/css" href="../../build/mirador/css/mirador-combined.css">
-  <title>Mirador Viewer</title>
-  <style type="text/css">
-    body {text-align: center;  padding: 0; margin: 0; overflow: hidden; font-size: 70%; }
-    #frame { margin: 0 auto};
-  </style>
-</head>
-<body>
-  <h1>Embedded Zen Mode - 1 x 1</h1>
-  <h2>layout controls, side panel, and new object controls disabled.</h2>
-  <p><iframe src="configs/Zen1x1.html" width="800" height="600" marginwidth="0" marginheight="0" frameborder="10" scrolling="no" id="frame" allowfullscreen="">You need an iFrame capable browser to view this.</iframe></p>
-</body>
-</html>
diff --git a/examples/example.html b/examples/example.html
deleted file mode 100644
index e4014ec050283ddb7261a045cc9e7910f9b0ba82..0000000000000000000000000000000000000000
--- a/examples/example.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-    <link rel="stylesheet" type="text/css" href="mirador/css/mirador-combined.css">
-    <title>Mirador Viewer</title>
-    <style type="text/css">
-     #viewer {
-       width: 100%;
-       height: 100%;
-       position: fixed;
-     }
-    </style>
-  </head>
-  <body>
-    <div id="viewer"></div>
-
-    <script src="mirador/mirador.min.js"></script>
-    <script type="text/javascript">
-
-     $(function() {
-       myMiradorInstance = Mirador({
-         id: "viewer",
-         layout: "1x1",
-         buildPath: "mirador/",
-         data: [
-           { manifestUri: "https://iiif.lib.harvard.edu/manifests/drs:48309543", location: "Harvard University"},
-           { manifestUri: "https://iiif.lib.harvard.edu/manifests/drs:5981093", location: "Harvard University"},
-           { manifestUri: "https://iiif.lib.harvard.edu/manifests/via:olvwork576793", location: "Harvard University"},
-           { manifestUri: "https://iiif.lib.harvard.edu/manifests/drs:14033171", location: "Harvard University"},
-           { manifestUri: "https://iiif.lib.harvard.edu/manifests/drs:46909368", location: "Harvard University"},
-           { manifestUri: "https://iiif.lib.harvard.edu/manifests/drs:48331776", location: "Harvard University"},
-           { manifestUri: "http://iiif.harvardartmuseums.org/manifests/object/299843", location: "Harvard University"},
-           { manifestUri: "http://iiif.harvardartmuseums.org/manifests/object/304136", location: "Harvard University"},
-           { manifestUri: "http://iiif.harvardartmuseums.org/manifests/object/198021", location: "Harvard University"},
-           { manifestUri: "http://iiif.harvardartmuseums.org/manifests/object/320567", location: "Harvard University"},
-           { manifestUri: "https://purl.stanford.edu/qm670kv1873/iiif/manifest.json", location: "Stanford University"},
-           { manifestUri: "https://purl.stanford.edu/jr903ng8662/iiif/manifest.json", location: "Stanford University"},
-           { manifestUri: "https://purl.stanford.edu/ch264fq0568/iiif/manifest.json", location: "Stanford University"},
-           { manifestUri: "https://purl.stanford.edu/wh234bz9013/iiif/manifest.json", location: "Stanford University"},
-           { manifestUri: "https://purl.stanford.edu/rd447dz7630/iiif/manifest.json", location: "Stanford University"},
-           { manifestUri: "http://dms-data.stanford.edu/data/manifests/Stanford/ege1/manifest.json", location: "Stanford University"},
-           { manifestUri: "http://dams.llgc.org.uk/iiif/4574752/manifest.json", location: "National Library of Wales"},
-           { manifestUri: "http://dev.llgc.org.uk/iiif/ww1posters.json", location: "National Library of Wales"},
-           { manifestUri: "http://dams.llgc.org.uk/iiif/newspaper/issue/3320640/manifest.json", location: "National Library of Wales"},
-           { manifestUri: "http://dams.llgc.org.uk/iiif/2.0/1465298/manifest.json", location: "National Library of Wales"},
-           { manifestUri: "http://manifests.ydc2.yale.edu/manifest/Admont23", location: "Yale University"},
-           { manifestUri: "http://manifests.ydc2.yale.edu/manifest/Admont43", location: "Yale University"},
-           { manifestUri: "http://manifests.ydc2.yale.edu/manifest/BeineckeMS10", location: "Yale University"},
-           { manifestUri: "http://manifests.britishart.yale.edu/manifest/5005", location: "Yale Center For British Art"},
-           { manifestUri: "http://manifests.britishart.yale.edu/manifest/1474", location: "Yale Center For British Art"},
-           { manifestUri: "http://iiif.bodleian.ox.ac.uk/iiif/manifest/51a65464-6408-4a78-9fd1-93e1fa995b9c.json", location: "Bodleian Libraries"},
-           { manifestUri: "http://iiif.bodleian.ox.ac.uk/iiif/manifest/f19aeaf9-5aba-4cee-be32-584663ff1ef1.json", location: "Bodleian Libraries"},
-           { manifestUri: "http://iiif.bodleian.ox.ac.uk/iiif/manifest/3b31c0a9-3dab-4801-b3dc-f2a3e3786d34.json", location: "Bodleian Libraries"},
-           { manifestUri: "http://iiif.bodleian.ox.ac.uk/iiif/manifest/e32a277e-91e2-4a6d-8ba6-cc4bad230410.json", location: "Bodleian Libraries"},
-           { manifestUri: "http://gallica.bnf.fr/iiif/ark:/12148/btv1b84539771/manifest.json", location: 'BnF'},
-           { manifestUri: "http://gallica.bnf.fr/iiif/ark:/12148/btv1b10500687r/manifest.json", location: 'BnF'},
-           { manifestUri: "http://gallica.bnf.fr/iiif/ark:/12148/btv1b55002605w/manifest.json", location: 'BnF'},
-           { manifestUri: "http://gallica.bnf.fr/iiif/ark:/12148/btv1b55002481n/manifest.json", location: 'BnF'},
-           { manifestUri: "http://www.e-codices.unifr.ch/metadata/iiif/sl-0002/manifest.json", location: 'e-codices'},
-           { manifestUri: "http://www.e-codices.unifr.ch/metadata/iiif/bge-cl0015/manifest.json", location: 'e-codices'},
-           { manifestUri: "http://www.e-codices.unifr.ch/metadata/iiif/fmb-cb-0600a/manifest.json", location: 'e-codices'},
-           { manifestUri: "https://data.ucd.ie/api/img/manifests/ucdlib:33064", location: "University College Dublin"},
-           { manifestUri: "https://data.ucd.ie/api/img/manifests/ucdlib:40851", location: "University College Dublin"},
-           { manifestUri: "https://data.ucd.ie/api/img/manifests/ucdlib:30708", location: "University College Dublin"},
-           { manifestUri: "http://dzkimgs.l.u-tokyo.ac.jp/iiif/zuzoubu/12b02/manifest.json", location: "University of Tokyo"},
-           { manifestUri: "http://www2.dhii.jp/nijl/NIJL0018/099-0014/manifest_tags.json", location: "NIJL"},
-           { manifestUri: "http://digi.vatlib.it/iiif/MSS_Vat.lat.3225/manifest.json", location: "Vatican Library"},
-           { manifestUri: "http://media.nga.gov/public/manifests/nga_highlights.json", location: "National Gallery of Art"}
-         ],
-         windowObjects: [],
-         annotationEndpoint: {
-           name:"Local Storage",
-           module: "LocalStorageEndpoint" }
-       });
-     });
-    </script>
-  </body>
-</html>
diff --git a/examples/fullScreen.html b/examples/fullScreen.html
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/examples/imageLayers.html b/examples/imageLayers.html
deleted file mode 100644
index c502d5eaf72ebf5e544eff23baa588c543df87c9..0000000000000000000000000000000000000000
--- a/examples/imageLayers.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-    <link rel="stylesheet" type="text/css" href="../build/mirador/css/mirador-combined.css">
-    <title>Mirador Viewer</title>
-    <style type="text/css">
-     #viewer {
-       width: 100%;
-       height: 100%;
-       position: fixed;
-     }
-    </style>
-  </head>
-  <body>
-    <div id="viewer"></div>
-
-    <script src="../build/mirador/mirador.js"></script>
-    <script type="text/javascript">
-
-     $(function() {
-       // Called without "let" or "var"
-       // so we can play with it in the browser
-       myMiradorInstance = Mirador({
-         "id": "viewer",
-         "buildPath" : "/",
-         "layout": "1x1",
-         "data": [
-           { "manifestUri": "http://demos.biblissima-condorcet.fr/iiif/metadata/BVMM/chateauroux/manifest.json", "location": "Biblissima"},
-           { "manifestUri": "https://manifests.britishart.yale.edu/Osbornfa1", "location": "Yale Beinecke"}
-         ],
-         "windowObjects": [],
-         "sidePanelOptions" : {
-           "layersTabAvailable": true,
-         },
-         "annotationEndpoint": { "name":"Local Storage", "module": "LocalStorageEndpoint" }
-       });
-     });
-    </script>
-    <!-- This enables live reloading of assets for improved developer experience. -->
-    <!-- Remove if copying this page as a basis for another project. -->
-    <script src="//localhost:35729/livereload.js"></script>
-  </body>
-</html>
diff --git a/examples/interactiveFrame.html b/examples/interactiveFrame.html
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/examples/layersAndSearchWithinPanels.html b/examples/layersAndSearchWithinPanels.html
deleted file mode 100644
index 49886117a27100a448afccf2170b8949a7b73a43..0000000000000000000000000000000000000000
--- a/examples/layersAndSearchWithinPanels.html
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-    <link rel="stylesheet" type="text/css" href="../build/mirador/css/mirador-combined.css">
-    <title>Mirador Viewer</title>
-    <style type="text/css">
-     #viewer {
-       width: 100%;
-       height: 100%;
-       position: fixed;
-     }
-    </style>
-  </head>
-  <body>
-    <div id="viewer"></div>
-
-    <script src="../build/mirador/mirador.js"></script>
-    <script type="text/javascript">
-
-     $(function() {
-       // Called without "let" or "var"
-       // so we can play with it in the browser
-       myMiradorInstance = Mirador({
-         "id": "viewer",
-         "buildPath" : "/",
-         "layout": "1x1",
-         "data": [
-           { "manifestUri": "http://demos.biblissima-condorcet.fr/iiif/metadata/BVMM/chateauroux/manifest.json", "location": "Biblissima"},
-           { "manifestUri": "https://manifests.britishart.yale.edu/Osbornfa1", "location": "Yale Beinecke"},
-           { "manifestUri": "https://wellcomelibrary.org/iiif/b18035978/manifest", "location": "Harvard University"}
-         ],
-         "windowObjects": [],
-         "annotationEndpoint": { "name":"Local Storage", "module": "LocalStorageEndpoint" },
-         "sidePanelOptions" : {
-           "tocTabAvailable": true,
-           "layersTabAvailable": true,
-           "searchTabAvailable": true
-         },
-       });
-     });
-    </script>
-    <!-- This enables live reloading of assets for improved developer experience. -->
-    <!-- Remove if copying this page as a basis for another project. -->
-    <script src="//localhost:35729/livereload.js"></script>
-  </body>
-</html>
diff --git a/examples/searchWithin.html b/examples/searchWithin.html
deleted file mode 100644
index 409b7507a78443bff37cf0c86931c412459cd56c..0000000000000000000000000000000000000000
--- a/examples/searchWithin.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-    <link rel="stylesheet" type="text/css" href="../build/mirador/css/mirador-combined.css">
-    <title>Mirador Viewer</title>
-    <style type="text/css">
-     #viewer {
-       width: 100%;
-       height: 100%;
-       position: fixed;
-     }
-    </style>
-  </head>
-  <body>
-    <div id="viewer"></div>
-
-    <script src="../build/mirador/mirador.js"></script>
-    <script type="text/javascript">
-
-     $(function() {
-       // Called without "let" or "var"
-       // so we can play with it in the browser
-       myMiradorInstance = Mirador({
-         "id": "viewer",
-         "buildPath" : "/",
-         "layout": "1x1",
-         "data": [
-           { "manifestUri": "https://wellcomelibrary.org/iiif/b18035978/manifest", "location": "Harvard University"}
-         ],
-         "windowObjects": [],
-         "sidePanelOptions" : {
-           "searchTabAvailable": true
-         },
-         "annotationEndpoint": { "name":"Local Storage", "module": "LocalStorageEndpoint" }
-       });
-     });
-    </script>
-    <!-- This enables live reloading of assets for improved developer experience. -->
-    <!-- Remove if copying this page as a basis for another project. -->
-    <script src="//localhost:35729/livereload.js"></script>
-  </body>
-</html>
diff --git a/images/border_type_1.png b/images/border_type_1.png
deleted file mode 100644
index f1818325b8cd7fe419fca8318d0e8c1e8ec80c55..0000000000000000000000000000000000000000
Binary files a/images/border_type_1.png and /dev/null differ
diff --git a/images/border_type_2.png b/images/border_type_2.png
deleted file mode 100644
index 60992c9425226d40d9e9724888ebe7cd063b11be..0000000000000000000000000000000000000000
Binary files a/images/border_type_2.png and /dev/null differ
diff --git a/images/border_type_3.png b/images/border_type_3.png
deleted file mode 100644
index 7e0f8e235b95c1ca5803bc5800bdd047034ae9b7..0000000000000000000000000000000000000000
Binary files a/images/border_type_3.png and /dev/null differ
diff --git a/images/border_type_4.png b/images/border_type_4.png
deleted file mode 100644
index 4a581bb46b0610f4555dd8d8cabc364f6eaf33fb..0000000000000000000000000000000000000000
Binary files a/images/border_type_4.png and /dev/null differ
diff --git a/images/border_type_5.png b/images/border_type_5.png
deleted file mode 100644
index 544e018cdc474a32e5d646e1a74a89bc77687fe2..0000000000000000000000000000000000000000
Binary files a/images/border_type_5.png and /dev/null differ
diff --git a/images/debut_dark.png b/images/debut_dark.png
deleted file mode 100644
index 17a4d6b42defcc8ebbad993bc91a2030f6c690ed..0000000000000000000000000000000000000000
Binary files a/images/debut_dark.png and /dev/null differ
diff --git a/index.html b/index.html
deleted file mode 100644
index 2b9cc81f0147227aedfbf2a71763009f62630384..0000000000000000000000000000000000000000
--- a/index.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-    <link rel="stylesheet" type="text/css" href="build/mirador/css/mirador-combined.css">
-    <title>Mirador Viewer</title>
-    <style type="text/css">
-     #viewer {
-       width: 100%;
-       height: 100%;
-       position: fixed;
-     }
-    </style>
-  </head>
-  <body>
-    <div id="viewer"></div>
-
-    <script src="build/mirador/mirador.js"></script>
-    <script type="text/javascript">
-
-     $(function() {
-       // Called without "let" or "var"
-       // so we can play with it in the browser
-       myMiradorInstance = Mirador({
-         "id": "viewer",
-         "layout": "1x1",
-         "data": [
-           { "manifestUri": "https://iiif.lib.harvard.edu/manifests/drs:48309543", "location": "Harvard University"},
-           { "manifestUri": "https://iiif.lib.harvard.edu/manifests/drs:5981093", "location": "Harvard University"},
-           { "manifestUri": "https://iiif.lib.harvard.edu/manifests/via:olvwork576793", "location": "Harvard University"},
-           { "manifestUri": "https://iiif.lib.harvard.edu/manifests/drs:14033171", "location": "Harvard University"},
-           { "manifestUri": "https://iiif.lib.harvard.edu/manifests/drs:46909368", "location": "Harvard University"},
-           { "manifestUri": "https://iiif.lib.harvard.edu/manifests/drs:48331776", "location": "Harvard University"},
-           { "manifestUri": "http://iiif.harvardartmuseums.org/manifests/object/299843", "location": "Harvard University"},
-           { "manifestUri": "http://iiif.harvardartmuseums.org/manifests/object/304136", "location": "Harvard University"},
-           { "manifestUri": "http://iiif.harvardartmuseums.org/manifests/object/198021", "location": "Harvard University"},
-           { "manifestUri": "http://iiif.harvardartmuseums.org/manifests/object/320567", "location": "Harvard University"},
-           { "manifestUri": "https://purl.stanford.edu/qm670kv1873/iiif/manifest", "location": "Stanford University"},
-           { "manifestUri": "https://purl.stanford.edu/jr903ng8662/iiif/manifest", "location": "Stanford University"},
-           { "manifestUri": "https://purl.stanford.edu/ch264fq0568/iiif/manifest", "location": "Stanford University"},
-           { "manifestUri": "https://purl.stanford.edu/wh234bz9013/iiif/manifest", "location": "Stanford University"},
-           { "manifestUri": "https://purl.stanford.edu/rd447dz7630/iiif/manifest", "location": "Stanford University"},
-           { "manifestUri": "http://dms-data.stanford.edu/data/manifests/Stanford/ege1/manifest.json", "location": "Stanford University"},
-           { "manifestUri": "http://dams.llgc.org.uk/iiif/4574752/manifest.json", "location": "National Library of Wales"},
-           { "manifestUri": "http://dev.llgc.org.uk/iiif/ww1posters.json", "location": "National Library of Wales"},
-           { "manifestUri": "http://dams.llgc.org.uk/iiif/newspaper/issue/3320640/manifest.json", "location": "National Library of Wales"},
-           { "manifestUri": "http://dams.llgc.org.uk/iiif/2.0/1465298/manifest.json", "location": "National Library of Wales"},
-           { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/Admont23", "location": "Yale University"},
-           { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/Admont43", "location": "Yale University"},
-           { "manifestUri": "http://manifests.ydc2.yale.edu/manifest/BeineckeMS10", "location": "Yale University"},
-           { "manifestUri": "https://manifests.britishart.yale.edu/manifest/5005", "location": "Yale Center For British Art"},
-           { "manifestUri": "https://manifests.britishart.yale.edu/manifest/1474", "location": "Yale Center For British Art"},
-           { "manifestUri": "http://iiif.bodleian.ox.ac.uk/iiif/manifest/51a65464-6408-4a78-9fd1-93e1fa995b9c.json", "location": "Bodleian Libraries"},
-           { "manifestUri": "http://iiif.bodleian.ox.ac.uk/iiif/manifest/f19aeaf9-5aba-4cee-be32-584663ff1ef1.json", "location": "Bodleian Libraries"},
-           { "manifestUri": "http://iiif.bodleian.ox.ac.uk/iiif/manifest/3b31c0a9-3dab-4801-b3dc-f2a3e3786d34.json", "location": "Bodleian Libraries"},
-           { "manifestUri": "http://iiif.bodleian.ox.ac.uk/iiif/manifest/e32a277e-91e2-4a6d-8ba6-cc4bad230410.json", "location": "Bodleian Libraries"},
-           { "manifestUri": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b84539771/manifest.json", "location": 'BnF'},
-           { "manifestUri": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b10500687r/manifest.json", "location": 'BnF'},
-           { "manifestUri": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b55002605w/manifest.json", "location": 'BnF'},
-           { "manifestUri": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b55002481n/manifest.json", "location": 'BnF'},
-           { "manifestUri": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0002/manifest.json", "location": 'e-codices'},
-           { "manifestUri": "http://www.e-codices.unifr.ch/metadata/iiif/bge-cl0015/manifest.json", "location": 'e-codices'},
-           { "manifestUri": "http://www.e-codices.unifr.ch/metadata/iiif/fmb-cb-0600a/manifest.json", "location": 'e-codices'},
-           { "manifestUri": "https://data.ucd.ie/api/img/manifests/ucdlib:33064", "location": "University College Dublin"},
-           { "manifestUri": "https://data.ucd.ie/api/img/manifests/ucdlib:40851", "location": "University College Dublin"},
-           { "manifestUri": "https://data.ucd.ie/api/img/manifests/ucdlib:30708", "location": "University College Dublin"},
-           { "manifestUri": "http://dzkimgs.l.u-tokyo.ac.jp/iiif/zuzoubu/12b02/manifest.json", "location": "University of Tokyo"},
-           { "manifestUri": "http://www2.dhii.jp/nijl/NIJL0018/099-0014/manifest_tags.json", "location": "NIJL"},
-           { "manifestUri": "https://digi.vatlib.it/iiif/MSS_Vat.lat.3225/manifest.json", "location": "Vatican Library"},
-           { "manifestUri": "http://media.nga.gov/public/manifests/nga_highlights.json", "location": "National Gallery of Art"},
-           { "manifestUri": "http://demos.biblissima-condorcet.fr/iiif/metadata/BVMM/chateauroux/manifest.json", "location": "Biblissima"},
-           { "manifestUri": "https://manifests.britishart.yale.edu/Osbornfa1", "location": "Yale Beinecke"},
-           /* { "manifestUri": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/manifest.json", "location": "Biblissima"}*/
-           { "manifestUri": "https://media.nga.gov/public/manifests/multispectral_demo.json", "location": "National Gallery of Art"},
-           { "manifestUri": "https://scta.info/iiif/codex/sorb/manifest"},
-           { "manifestUri": "https://scta.info/iiif/graciliscommentary/lon/manifest"},
-           { "manifestUri": "https://scta.info/iiif/plaoulcommentary/sorb/manifest"}
-         ],
-         "windowObjects": [],
-         "annotationEndpoint": { "name":"Local Storage", "module": "LocalStorageEndpoint" },
-         "sidePanelOptions" : {
-           "tocTabAvailable": true,
-           "layersTabAvailable": true,
-           "searchTabAvailable": true,
-           "annotations" : true
-         },
-      });
-     });
-    </script>
-    <!-- This enables live reloading of assets for improved developer experience. -->
-    <!-- Remove if copying this page as a basis for another project. -->
-    <script src="//localhost:35729/livereload.js"></script>
-  </body>
-</html>
diff --git a/jest-puppeteer.config.js b/jest-puppeteer.config.js
new file mode 100644
index 0000000000000000000000000000000000000000..e8fa2f0c870485fc52504f2d9988144620d6cb1c
--- /dev/null
+++ b/jest-puppeteer.config.js
@@ -0,0 +1,9 @@
+module.exports = {
+  launch: {
+    headless: process.env.CI === 'true',
+  },
+  server: {
+    command: 'npm run server -- -p 4488',
+    port: 4488,
+  },
+};
diff --git a/jest.json b/jest.json
new file mode 100644
index 0000000000000000000000000000000000000000..433054597fb59f8bb7db77770ec184b049572868
--- /dev/null
+++ b/jest.json
@@ -0,0 +1,15 @@
+{
+  "collectCoverageFrom": [
+    "src/**/*.{js,jsx}"
+  ],
+  "coverageDirectory": "<rootDir>/coverage",
+  "coverageReporters": ["html"],
+  "setupFiles": [
+    "<rootDir>/setupJest.js"
+  ],
+  "testMatch": [
+    "<rootDir>/**/__tests__/**/*.{js,jsx}",
+    "<rootDir>/src/**/?(*.)(spec|test|unit).{js,jsx}"
+  ],
+  "preset": "jest-puppeteer"
+}
diff --git a/js/lib/isfahan.js b/js/lib/isfahan.js
deleted file mode 100644
index 0ea81c7a2012b741584fd553f18c3df53d7ca95e..0000000000000000000000000000000000000000
--- a/js/lib/isfahan.js
+++ /dev/null
@@ -1,209 +0,0 @@
-var Isfahan = function(configObject) {
-  var _this = this,
-
-  containerSize = function(containerId) {
-    return [document.getElementById(containerId).offsetWidth,
-      document.getElementById(containerId).offsetHeight]
-  },
-  containerId = configObject.containerId,
-  pad = d3_layout_cellPadNull,
-  round = Math.round,
-  padding = configObject.padding,
-  hierarchy = d3.layout.hierarchy(),
-  layoutDescription = configObject.layoutDescription;
-
-  function calculateLayout(node) {
-    var children = node.children;
-
-    if (children && children.length) {
-      var rect = pad(node),
-      type = node.type,
-      group = [],
-      remaining = children.slice(), // copy-on-write
-      child,
-      n;
-
-      while ((n = remaining.length) > 0) {
-        group.push(child = remaining[n - 1]);
-        remaining.pop();
-      }
-
-      position(group, node.type, rect);
-      children.forEach(function(child, index) {
-        child.address = node.address.concat("." + child.type + (index + 1));
-      })
-      children.forEach(calculateLayout);
-    }
-  }
-
-  // Positions the specified row of nodes. Modifies `rect`.
-  function position(group, groupType, rect) {
-    // console.log('%c\n'+' parent ' + groupType + ' rect is: ', 'background: #222; color: #EFEFEF; font-family: helvetica neue; font-size:20px; padding: 0 7px 3px 0;');
-    // console.log(rect);
-    var i = -1,
-    row = (groupType === "row") ? false : true, // for ternary statements later, specifies whether that particular child is a row or not. Allows easy, centralised description of the parameter calculations that can be switched from row to column.
-    n = group.length,
-    x = rect.x,
-    y = rect.y,
-    d,
-    o;
-    var offset = 0;
-    while (++i < n) {
-      o = group[n-(i+1)],
-      d = divisor(o, row, rect, group, n),
-      o.id = typeof o.id !== 'undefined' ? o.id : genUuid(),
-      o.x = row ?  x : x + offset,
-      o.y = row ? y + offset : y,
-      o.dx = row ? rect.dx : rect.dx/d,
-      o.dy = row ? rect.dy/d : rect.dy,
-      offset += row ? o.dy : o.dx;
-      // console.log({x:o.x, y: o.y, width:o.dx, height: o.dy});
-    }
-  }
-
-  function divisor(node, row, rect, group, n) {
-
-    var old = false,
-    dimension = row ? 'dy' : 'dx',
-    total = rect[dimension],
-    divisor;
-    // if not already set, divide equally.
-    group.forEach(function(item) {
-      if (!item[dimension] === undefined) { 
-        old = true;
-      }
-    });
-
-    if (old) {
-      console.log('preserved');
-      var sum = group.reduce(
-        function(previousValue, currentValue, index, array) {
-        return previousValue[dimension] + currentValue[dimension];
-      });
-      console.log('sum: ' + sum);
-      
-      divisor = (node[dimension]/sum)*total;
-      console.log("divisor: "+divisor);
-      return divisor;
-    } else {
-      return n;
-    }
-  }
-
-  function isfahan(configObject) {
-    var nodes = hierarchy(configObject.layoutDescription),
-    root = nodes[0];
-    size = (function(containerSelector) {
-      var width = jQuery(containerSelector).width();
-      var height = jQuery(containerSelector).height();
-
-      return [width, height];
-    })(configObject.containerSelector);
-    root.x = 0;
-    root.y = 0;
-    root.dx = containerSize(containerId)[0];
-    root.dy = containerSize(containerId)[1];
-    root.address = root.type + "1";
-    root.id = root.id || genUuid();
-
-    calculateLayout(root);
-    isfahan.padding(padding);
-    nodes = nodes.map(function(node) {
-      return merge(node, pad(node));
-    });
-
-    return nodes;
-  } 
-
-  isfahan.size = function(x) {
-    if (!arguments.length) return containerSize;
-    containerSize = x;
-    return isfahan;
-  };
-
-  isfahan.round = function(x) {
-    if (!arguments.length) return round != Number;
-    round = x ? Math.round : Number;
-    return isfahan;
-  };
-
-  isfahan.padding = function(x) {
-    if (!arguments.length) return padding;
-
-    function padFunction(node) {
-      var p = x.call(isfahan, node, node.depth);
-      console.log(p);
-      return p == null
-      ? d3_layout_cellPadNull(node)
-      : d3_layout_cellPad(node, typeof p === "number" ? [p, p, p, p] : p);
-    }
-
-    function padConstant(node) {
-      return d3_layout_cellPad(node, x);
-    }
-
-    var type;
-    pad = (padding = x) == null ? d3_layout_cellPadNull
-    : (type = typeof x) === "function" ? padFunction
-    : type === "number" ? (x = [x, x, x, x], padConstant)
-    : padConstant;
-    return isfahan;
-  };
-
-  function genUuid() {
-    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
-      var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
-      return v.toString(16);
-    });
-  }
-
-  function d3_layout_cellPadNull(node) {
-    return {x: node.x, y: node.y, dx: node.dx, dy: node.dy};
-  }
-
-  function d3_layout_cellPad(node, padding) {
-    var x = node.x + padding[3],
-    y = node.y + padding[0],
-    dx = node.dx - padding[1] - padding[3],
-    dy = node.dy - padding[0] - padding[2];
-    if (dx < 0) { x += dx / 2; dx = 0; }
-    if (dy < 0) { y += dy / 2; dy = 0; }
-    return {x: x, y: y, dx: dx, dy: dy};
-  }
-  
-  function merge(target, source) {
-
-    /* Merges two (or more) objects,
-       giving the last one precedence */
-
-    if ( typeof target !== 'object' ) {
-      target = {};
-    }
-
-    for (var property in source) {
-
-      if ( source.hasOwnProperty(property) ) {
-
-        var sourceProperty = source[ property ];
-
-        if ( typeof sourceProperty === 'object' ) {
-          target[ property ] = util.merge( target[ property ], sourceProperty );
-          continue;
-        }
-
-        target[ property ] = sourceProperty;
-
-      }
-
-    }
-
-    for (var a = 2, l = arguments.length; a < l; a++) {
-      merge(target, arguments[a]);
-    }
-
-    return target;
-  };
-
-  // return d3.rebind(isfahan, hierarchy,"sort", "children", "value");
-  return isfahan(configObject);
-};
diff --git a/js/lib/modernizr.custom.js b/js/lib/modernizr.custom.js
deleted file mode 100644
index e823210c35480500dbae8babe1e362891fa87f7c..0000000000000000000000000000000000000000
--- a/js/lib/modernizr.custom.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! modernizr 3.3.1 (Custom Build) | MIT *
- * https://modernizr.com/download/?-cssfilters-printshiv-setclasses !*/
-!function(e,t,n){function r(e,t){return typeof e===t}function o(){var e,t,n,o,i,a,s;for(var l in E)if(E.hasOwnProperty(l)){if(e=[],t=E[l],t.name&&(e.push(t.name.toLowerCase()),t.options&&t.options.aliases&&t.options.aliases.length))for(n=0;n<t.options.aliases.length;n++)e.push(t.options.aliases[n].toLowerCase());for(o=r(t.fn,"function")?t.fn():t.fn,i=0;i<e.length;i++)a=e[i],s=a.split("."),1===s.length?Modernizr[s[0]]=o:(!Modernizr[s[0]]||Modernizr[s[0]]instanceof Boolean||(Modernizr[s[0]]=new Boolean(Modernizr[s[0]])),Modernizr[s[0]][s[1]]=o),y.push((o?"":"no-")+s.join("-"))}}function i(e){var t=C.className,n=Modernizr._config.classPrefix||"";if(b&&(t=t.baseVal),Modernizr._config.enableJSClass){var r=new RegExp("(^|\\s)"+n+"no-js(\\s|$)");t=t.replace(r,"$1"+n+"js$2")}Modernizr._config.enableClasses&&(t+=" "+n+e.join(" "+n),b?C.className.baseVal=t:C.className=t)}function a(){return"function"!=typeof t.createElement?t.createElement(arguments[0]):b?t.createElementNS.call(t,"http://www.w3.org/2000/svg",arguments[0]):t.createElement.apply(t,arguments)}function s(e,t){return!!~(""+e).indexOf(t)}function l(e){return e.replace(/([a-z])-([a-z])/g,function(e,t,n){return t+n.toUpperCase()}).replace(/^-/,"")}function u(e,t){return function(){return e.apply(t,arguments)}}function c(e,t,n){var o;for(var i in e)if(e[i]in t)return n===!1?e[i]:(o=t[e[i]],r(o,"function")?u(o,n||t):o);return!1}function f(e){return e.replace(/([A-Z])/g,function(e,t){return"-"+t.toLowerCase()}).replace(/^ms-/,"-ms-")}function d(){var e=t.body;return e||(e=a(b?"svg":"body"),e.fake=!0),e}function p(e,n,r,o){var i,s,l,u,c="modernizr",f=a("div"),p=d();if(parseInt(r,10))for(;r--;)l=a("div"),l.id=o?o[r]:c+(r+1),f.appendChild(l);return i=a("style"),i.type="text/css",i.id="s"+c,(p.fake?p:f).appendChild(i),p.appendChild(f),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(t.createTextNode(e)),f.id=c,p.fake&&(p.style.background="",p.style.overflow="hidden",u=C.style.overflow,C.style.overflow="hidden",C.appendChild(p)),s=n(f,e),p.fake?(p.parentNode.removeChild(p),C.style.overflow=u,C.offsetHeight):f.parentNode.removeChild(f),!!s}function m(t,r){var o=t.length;if("CSS"in e&&"supports"in e.CSS){for(;o--;)if(e.CSS.supports(f(t[o]),r))return!0;return!1}if("CSSSupportsRule"in e){for(var i=[];o--;)i.push("("+f(t[o])+":"+r+")");return i=i.join(" or "),p("@supports ("+i+") { #modernizr { position: absolute; } }",function(e){return"absolute"==getComputedStyle(e,null).position})}return n}function h(e,t,o,i){function u(){f&&(delete z.style,delete z.modElem)}if(i=r(i,"undefined")?!1:i,!r(o,"undefined")){var c=m(e,o);if(!r(c,"undefined"))return c}for(var f,d,p,h,v,g=["modernizr","tspan","samp"];!z.style&&g.length;)f=!0,z.modElem=a(g.shift()),z.style=z.modElem.style;for(p=e.length,d=0;p>d;d++)if(h=e[d],v=z.style[h],s(h,"-")&&(h=l(h)),z.style[h]!==n){if(i||r(o,"undefined"))return u(),"pfx"==t?h:!0;try{z.style[h]=o}catch(y){}if(z.style[h]!=v)return u(),"pfx"==t?h:!0}return u(),!1}function v(e,t,n,o,i){var a=e.charAt(0).toUpperCase()+e.slice(1),s=(e+" "+T.join(a+" ")+a).split(" ");return r(t,"string")||r(t,"undefined")?h(s,t,o,i):(s=(e+" "+j.join(a+" ")+a).split(" "),c(s,t,n))}function g(e,t,r){return v(e,n,n,t,r)}var y=[],E=[],S={_version:"3.3.1",_config:{classPrefix:"",enableClasses:!0,enableJSClass:!0,usePrefixes:!0},_q:[],on:function(e,t){var n=this;setTimeout(function(){t(n[e])},0)},addTest:function(e,t,n){E.push({name:e,fn:t,options:n})},addAsyncTest:function(e){E.push({name:null,fn:e})}},Modernizr=function(){};Modernizr.prototype=S,Modernizr=new Modernizr;var C=t.documentElement,b="svg"===C.nodeName.toLowerCase(),x=S._config.usePrefixes?" -webkit- -moz- -o- -ms- ".split(" "):["",""];S._prefixes=x;var w="CSS"in e&&"supports"in e.CSS,_="supportsCSS"in e;Modernizr.addTest("supports",w||_);b||!function(e,t){function n(e,t){var n=e.createElement("p"),r=e.getElementsByTagName("head")[0]||e.documentElement;return n.innerHTML="x<style>"+t+"</style>",r.insertBefore(n.lastChild,r.firstChild)}function r(){var e=w.elements;return"string"==typeof e?e.split(" "):e}function o(e,t){var n=w.elements;"string"!=typeof n&&(n=n.join(" ")),"string"!=typeof e&&(e=e.join(" ")),w.elements=n+" "+e,u(t)}function i(e){var t=x[e[C]];return t||(t={},b++,e[C]=b,x[b]=t),t}function a(e,n,r){if(n||(n=t),v)return n.createElement(e);r||(r=i(n));var o;return o=r.cache[e]?r.cache[e].cloneNode():S.test(e)?(r.cache[e]=r.createElem(e)).cloneNode():r.createElem(e),!o.canHaveChildren||E.test(e)||o.tagUrn?o:r.frag.appendChild(o)}function s(e,n){if(e||(e=t),v)return e.createDocumentFragment();n=n||i(e);for(var o=n.frag.cloneNode(),a=0,s=r(),l=s.length;l>a;a++)o.createElement(s[a]);return o}function l(e,t){t.cache||(t.cache={},t.createElem=e.createElement,t.createFrag=e.createDocumentFragment,t.frag=t.createFrag()),e.createElement=function(n){return w.shivMethods?a(n,e,t):t.createElem(n)},e.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+r().join().replace(/[\w\-:]+/g,function(e){return t.createElem(e),t.frag.createElement(e),'c("'+e+'")'})+");return n}")(w,t.frag)}function u(e){e||(e=t);var r=i(e);return!w.shivCSS||h||r.hasCSS||(r.hasCSS=!!n(e,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),v||l(e,r),e}function c(e){for(var t,n=e.getElementsByTagName("*"),o=n.length,i=RegExp("^(?:"+r().join("|")+")$","i"),a=[];o--;)t=n[o],i.test(t.nodeName)&&a.push(t.applyElement(f(t)));return a}function f(e){for(var t,n=e.attributes,r=n.length,o=e.ownerDocument.createElement(N+":"+e.nodeName);r--;)t=n[r],t.specified&&o.setAttribute(t.nodeName,t.nodeValue);return o.style.cssText=e.style.cssText,o}function d(e){for(var t,n=e.split("{"),o=n.length,i=RegExp("(^|[\\s,>+~])("+r().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),a="$1"+N+"\\:$2";o--;)t=n[o]=n[o].split("}"),t[t.length-1]=t[t.length-1].replace(i,a),n[o]=t.join("}");return n.join("{")}function p(e){for(var t=e.length;t--;)e[t].removeNode()}function m(e){function t(){clearTimeout(a._removeSheetTimer),r&&r.removeNode(!0),r=null}var r,o,a=i(e),s=e.namespaces,l=e.parentWindow;return!T||e.printShived?e:("undefined"==typeof s[N]&&s.add(N),l.attachEvent("onbeforeprint",function(){t();for(var i,a,s,l=e.styleSheets,u=[],f=l.length,p=Array(f);f--;)p[f]=l[f];for(;s=p.pop();)if(!s.disabled&&_.test(s.media)){try{i=s.imports,a=i.length}catch(m){a=0}for(f=0;a>f;f++)p.push(i[f]);try{u.push(s.cssText)}catch(m){}}u=d(u.reverse().join("")),o=c(e),r=n(e,u)}),l.attachEvent("onafterprint",function(){p(o),clearTimeout(a._removeSheetTimer),a._removeSheetTimer=setTimeout(t,500)}),e.printShived=!0,e)}var h,v,g="3.7.3",y=e.html5||{},E=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,S=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,C="_html5shiv",b=0,x={};!function(){try{var e=t.createElement("a");e.innerHTML="<xyz></xyz>",h="hidden"in e,v=1==e.childNodes.length||function(){t.createElement("a");var e=t.createDocumentFragment();return"undefined"==typeof e.cloneNode||"undefined"==typeof e.createDocumentFragment||"undefined"==typeof e.createElement}()}catch(n){h=!0,v=!0}}();var w={elements:y.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:g,shivCSS:y.shivCSS!==!1,supportsUnknownElements:v,shivMethods:y.shivMethods!==!1,type:"default",shivDocument:u,createElement:a,createDocumentFragment:s,addElements:o};e.html5=w,u(t);var _=/^$|\b(?:all|print)\b/,N="html5shiv",T=!v&&function(){var n=t.documentElement;return!("undefined"==typeof t.namespaces||"undefined"==typeof t.parentWindow||"undefined"==typeof n.applyElement||"undefined"==typeof n.removeNode||"undefined"==typeof e.attachEvent)}();w.type+=" print",w.shivPrint=m,m(t),"object"==typeof module&&module.exports&&(module.exports=w)}("undefined"!=typeof e?e:this,t);var N="Moz O ms Webkit",T=S._config.usePrefixes?N.split(" "):[];S._cssomPrefixes=T;var j=S._config.usePrefixes?N.toLowerCase().split(" "):[];S._domPrefixes=j;var k={elem:a("modernizr")};Modernizr._q.push(function(){delete k.elem});var z={style:k.elem.style};Modernizr._q.unshift(function(){delete z.style}),S.testAllProps=v,S.testAllProps=g,Modernizr.addTest("cssfilters",function(){if(Modernizr.supports)return g("filter","blur(2px)");var e=a("a");return e.style.cssText=x.join("filter:blur(2px); "),!!e.style.length&&(t.documentMode===n||t.documentMode>9)}),o(),i(y),delete S.addTest,delete S.addAsyncTest;for(var P=0;P<Modernizr._q.length;P++)Modernizr._q[P]();e.Modernizr=Modernizr}(window,document);
\ No newline at end of file
diff --git a/js/src/annotations/annotation-utils.js b/js/src/annotations/annotation-utils.js
deleted file mode 100644
index f2ad47a077e40dcada1b461787f86581e0f923fe..0000000000000000000000000000000000000000
--- a/js/src/annotations/annotation-utils.js
+++ /dev/null
@@ -1,195 +0,0 @@
-(function($) {
-
-  $.AnnotationUtils = function(){
-
-  };
-
-  function PaperItem(item){
-    this.item = item;
-  }
-
-  PaperItem.prototype  = {
-    getItem:function(){
-      return this.item;
-    },
-    translateByXY: function(x,y){
-      this.item.position.x +=x;
-      this.item.position.y +=y;
-    },
-
-    translateByPoint:function(point){
-      this.item.position = this.item.position.add(point);
-    },
-
-    setOnMouseDownListener:function(callback){
-      this.mouseDown = callback;
-    },
-
-    onMouseDown:function(){
-      this.mouseDown.call(this,this.item);
-    },
-
-    remove:function(){
-      this.item.remove();
-    },
-
-    rotate:function(angle,pivot){
-      pivot?this.item.rotate(angle,pivot):this.item.rotate(angle);
-    },
-
-    setPosition:function(point){
-      this.item.position = point;
-    },
-
-    getWidth:function(){
-      return this.item.width;
-    },
-
-    getHeight:function(){
-      return this.item.height;
-    },
-
-    addData:function(key,data){
-      this.item.data[key] = data;
-    },
-
-    getData: function(key){
-      return this.item.data[key];
-    },
-
-    resize:function(size){
-      this.item.size = size;
-    }
-  };
-
-  function Group(paperScope,opts){
-    var item = new paperScope.Group(opts);
-    PaperItem.call(this,item);
-  }
-
-  Group.prototype = Object.create(PaperItem.prototype,{});
-  Group.constructor = Group;
-
-  var Icon = function(paperScope,opts){
-    this.paperScope = paperScope;
-    var item = new paperScope.Raster(opts);
-    PaperItem.call(this,item);
-    if(opts && opts.onLoad){
-      this.item.onLoad = opts.onLoad;
-    }
-  };
-
-  Icon.prototype = Object.create(PaperItem.prototype, {});
-
-  Icon.constructor = Icon;
-
-
-  function PointText(paperScope,opts) {
-    var text = new paperScope.PointText(opts);
-    PaperItem.call(this,text);
-  }
-
-  PointText.prototype = Object.create(PaperItem.prototype);
-
-  PointText.prototype.resize = function(newSize){
-    this.item.fontSize = newSize;
-  };
-
-  PointText.constructor = PointText;
-
-  function PointTextIcon(paperScope,opts){
-    this.paperScope = paperScope;
-    opts.justification = 'center';
-    opts.font = 'FontAwesome';
-    this.content = opts.content;
-    PointText.call(this,paperScope,opts);
-
-    this.rasterMask.addData('self',this);
-  }
-
-  PointTextIcon.prototype = Object.create(PointText.prototype, {});
-
-  PointTextIcon.prototype.setPosition = function(point){
-    this.rasterMask.setPosition(point);
-    PointText.prototype.setPosition.call(this,point);
-  };
-
-  PointTextIcon.prototype.rotate = function(angle,pivot){
-    this.rasterMask.rotate(angle,pivot);
-    PointText.prototype.rotate.call(this,angle,pivot);
-  };
-  PointTextIcon.prototype.translateByPoint = function (point) {
-    this.rasterMask.translateByPoint(point);
-    PointText.prototype.translateByPoint.call(this,point);
-  };
-  PointTextIcon.prototype.translateByXY = function (x,y){
-    this.rasterMask.translateByXY(x,y);
-    PointText.prototype.translateByXY.call(this,x,y);
-  };
-  PointTextIcon.prototype.remove = function () {
-    this.rasterMask.remove();
-    PointText.prototype.remove.call(this);
-  };
-  PointTextIcon.prototype.resize = function (size) {
-    this.rasterMask.resize(new this.paperScope.Size(size,size));
-    PointText.prototype.resize.call(this,size);
-  };
-
-  PointTextIcon.prototype.getMask = function () {
-    return this.rasterMask;
-  };
-
-  PointTextIcon.prototype.constructor = PointTextIcon;
-
-  function DeleteActionIcon(paperScope,opts){
-    this.paperScope = paperScope;
-    opts.fillColor = opts.fillColor || 'black';
-    opts.fontSize = opts.size || (24 * 1 / paperScope.view.zoom);
-    opts.content = '\uf014';
-    this.rasterMask = new Icon(paperScope,{
-      name: opts.name.replace('delete','Delete_mask'),
-      size: new paperScope.Size(opts.fontSize ,opts.fontSize)
-    });
-    PointTextIcon.call(this,paperScope,opts);
-  }
-
-  DeleteActionIcon.prototype = Object.create(PointTextIcon.prototype, {});
-
-  DeleteActionIcon.prototype.setOnMouseDownListener = function (overlay) {
-    this.mouseDown = function () {
-      overlay.eventEmitter.publish('deleteShape.' + overlay.windowId, [this.getData('parent')]);
-      overlay.mode = 'delete';
-    };
-  };
-
-  function RotationIcon(paperScope,opts){
-    this.paperScope = paperScope;
-    opts.justification = 'center';
-    opts.fillColor = opts.fillColor || 'black';
-    opts.fontSize = opts.size || (16 * 1 / paperScope.view.zoom);
-    opts.content = '\uf01e';
-    this.rasterMask = new Icon(paperScope,{
-      name: opts.name.replace('rotation','Rotation_mask'),
-      size: new paperScope.Size(opts.fontSize ,opts.fontSize)
-    });
-    PointTextIcon.call(this,paperScope,opts);
-  }
-
-  RotationIcon.prototype = Object.create(PointTextIcon.prototype, {});
-
-  RotationIcon.prototype.setOnMouseDownListener = function (overlay) {
-    this.mouseDown = function () {
-      overlay.mode = 'rotate';
-    };
-  };
-
-
-  $.AnnotationUtils.prototype = {
-    Icon:Icon,
-    PointText:PointText,
-    DeleteActionIcon:DeleteActionIcon,
-    RotationIcon:RotationIcon,
-    Group:Group
-  };
-
-}(Mirador));
\ No newline at end of file
diff --git a/js/src/annotations/annotationTooltip.js b/js/src/annotations/annotationTooltip.js
deleted file mode 100644
index 9a1815f8943e8b6deb9ef684a90edf1799cd6d4e..0000000000000000000000000000000000000000
--- a/js/src/annotations/annotationTooltip.js
+++ /dev/null
@@ -1,472 +0,0 @@
-(function($) {
-
-  $.AnnotationTooltip = function(options) {
-    jQuery.extend(this, {
-      targetElement: null,
-      annotations: [],
-      windowId: "",
-      eventEmitter: null
-    }, options);
-
-    this.init();
-  };
-
-  $.AnnotationTooltip.prototype = {
-
-    init: function() {
-      this.editor = $[this.state.currentConfig.annotationBodyEditor.module];
-      this.editorOptions = this.state.currentConfig.annotationBodyEditor.options;
-
-      this.activeEditor = null;
-      this.activeEditorTip = null;
-      this.inEditOrCreateMode = false;
-    },
-
-    /**
-     * @param params: {
-     *   annotation: any -- annotation JSON
-     *   onAnnotationCreated: (annotation) => void
-     *   onCompleted: () => void
-     *   onCancel: () => void
-     * }
-     */
-    showEditor: function(params) {
-      var _this = this;
-      if (_this.activeEditor) { return; }
-
-      var editorContainer = _this.editorTemplate({
-        id : jQuery.isEmptyObject(params.annotation) ? "" : params.annotation['@id'],
-        windowId : _this.windowId
-      });
-      var selector = '#annotation-editor-' + _this.windowId;
-
-      _this.activeEditor = new _this.editor(
-        jQuery.extend({}, _this.editorOptions, {
-          annotation: params.annotation,
-          windowId: _this.windowId
-        }));
-      _this.activeEditorTip = _this.targetElement.qtip({
-        content: {
-          text: editorContainer
-        },
-        position: {
-          my: 'center',
-          at: 'center',
-          container: _this.targetElement,
-          viewport: _this.targetElement
-        },
-        style: {
-          classes: 'qtip-bootstrap qtip' + _this.windowId
-        },
-        show: {
-          event: false
-        },
-        hide: {
-          fixed: true,
-          delay: 300,
-          event: false
-        },
-        events: {
-          render: function(event, api) {
-            _this.eventEmitter.publish('disableTooltips.' + _this.windowId);
-
-            api.elements.tooltip.draggable();
-
-            jQuery(selector).on("submit", function(event) {
-              event.preventDefault();
-              jQuery(selector + ' a.save').click();
-            });
-
-            jQuery(selector + ' a.cancel').on("click", function(event) {
-              event.preventDefault();
-
-              var cancelCallback = function(){
-                api.destroy();
-              };
-
-              _this.eventEmitter.publish('onAnnotationCreatedCanceled.'+_this.windowId,[cancelCallback,!_this.activeEditor.isDirty()]);
-
-            });
-
-            jQuery(selector + ' a.save').on("click", function(event) {
-              event.preventDefault();
-              if(!params.onSaveClickCheck()){
-                return;
-              }
-              var annotation = _this.activeEditor.createAnnotation();
-              if (params.onAnnotationCreated) { params.onAnnotationCreated(annotation); }
-
-              api.destroy();
-              _this.activeEditor = null;
-              _this.activeEditorTip = null;
-            });
-
-            _this.activeEditor.show(selector);
-            _this.eventEmitter.publish('annotationEditorAvailable.' + _this.windowId);
-          }
-
-        }
-      });
-      _this.activeEditorTip.qtip('show');
-    },
-
-    /**
-     * @param params: {
-     *   container: HTMLElement
-     *   viewport: HTMLElement
-     *   getAnnoFromRegion: (regionId: string) => any[]
-     *   onTooltipShown: (event: QTipShowEvent, api: QTipAPI) => void
-     *   onTooltipHidden: (event: QTipShowEvent, api: QTipAPI) => void
-     *   onEnterEditMode: (api: QTipAPI, oaAnno: any) => void
-     *   onExitEditMode: (api: QTipAPI, oaAnno: any) => void
-     *   onAnnotationSaved: (annotation) => void
-     * }
-     */
-    initializeViewerUpgradableToEditor: function(params) {
-      var _this = this;
-      _this.activeEditorTip = jQuery(_this.targetElement).qtip({
-        overwrite: true,
-        content: {
-          text: ''
-        },
-        position: {
-          target: 'mouse',
-          my: 'bottom left',
-          at: 'top right',
-          adjust: {
-            mouse: false,
-            method: 'shift'
-          },
-          container: params.container,
-          viewport: params.viewport
-        },
-        style: {
-          classes: 'qtip-bootstrap qtip-viewer',
-          tip: false
-        },
-        show: {
-          event: false
-        },
-        hide: {
-          fixed: true,
-          delay: 300,
-          event: false
-        },
-        events: {
-          show: function(event, api) {
-            if (params.onTooltipShown) { params.onTooltipShown(event, api); }
-            api.cache.hidden = false;
-          },
-          hidden: function(event, api) {
-            if (params.onTooltipHidden) { params.onTooltipHidden(event, api); }
-            _this.removeAllEvents(api, params);
-            api.cache.hidden = true;
-          },
-          visible: function (event, api) {
-
-          },
-          move: function (event, api) {
-
-          }
-        }
-      });
-      var api = jQuery(_this.targetElement).qtip('api');
-      api.cache.annotations = [];
-      api.cache.hidden = true;
-      api.cache.params = params;
-    },
-
-    removeAllEvents: function(api, viewerParams) {
-      var _this = this;
-      var editorSelector = '#annotation-editor-' + _this.windowId;
-      var viewerSelector = '#annotation-viewer-' + _this.windowId;
-      jQuery(viewerSelector + ' a.delete').off("click");
-      jQuery(viewerSelector + ' a.edit').off("click");
-      jQuery(editorSelector + ' a.save').off("click");
-      jQuery(editorSelector + ' a.cancel').off("click");
-    },
-
-    addViewerEvents: function(api, viewerParams) {
-      var _this = this;
-      var selector = '#annotation-viewer-' + _this.windowId;
-
-      jQuery(selector + ' a.delete').on("click", function(event) {
-        event.preventDefault();
-        var elem = this;
-        new $.DialogBuilder(viewerParams.container).dialog({
-          message: i18next.t('deleteAnnotation'),
-          closeButton: false,
-          buttons: {
-            'no': {
-              label: i18next.t('no'),
-              className: 'btn-default',
-              callback: function() {
-                return;
-              }
-            },
-            'yes': {
-              label: i18next.t('yes'),
-              className: 'btn-primary',
-              callback: function() {
-                var display = jQuery(elem).parents('.annotation-display');
-                var id = display.attr('data-anno-id');
-                var callback = function(){
-                  _this.removeAllEvents();
-                  api.hide();
-                  display.remove();
-                };
-
-                _this.eventEmitter.publish('onAnnotationDeleted.' + _this.windowId, [id,callback]);
-              }
-            }
-          }
-        });
-      });
-
-      jQuery(selector + ' a.edit').on("click", function(event) {
-        event.preventDefault();
-        var display = jQuery(this).parents('.annotation-display');
-        var id = display.attr('data-anno-id');
-        var oaAnno = viewerParams.getAnnoFromRegion(id)[0];
-        // Don't show built in editor if external is available
-        if (!_this.state.getStateProperty('availableExternalCommentsPanel')) {
-           _this.freezeQtip(api, oaAnno, viewerParams);
-           _this.removeAllEvents(api, viewerParams);
-           _this.addEditorEvents(api, viewerParams);
-        } else {
-          _this.eventEmitter.publish('annotationInEditMode.' + _this.windowId,[oaAnno]);
-          _this.removeAllEvents(viewerParams);
-          api.destroy();
-          jQuery(api.tooltip).remove();
-        }
-
-        _this.eventEmitter.publish('SET_ANNOTATION_EDITING.' + _this.windowId, {
-          "annotationId" : id,
-          "isEditable" : true,
-          "tooltip" : _this
-        });
-        _this.eventEmitter.publish('modeChange.' + _this.windowId, 'editingAnnotation');
-      });
-    },
-
-    addEditorEvents: function(api, viewerParams) {
-      var _this = this;
-      var selector = '#annotation-editor-' + _this.windowId;
-
-      jQuery(selector).on("submit", function(event) {
-        event.preventDefault();
-        jQuery(selector + ' a.save').click();
-      });
-
-      jQuery(selector + ' a.save').on("click", function(event) {
-        event.preventDefault();
-        var display = jQuery(this).parents('.annotation-editor');
-        var id = display.attr('data-anno-id');
-        var oaAnno = viewerParams.getAnnoFromRegion(id)[0];
-
-        _this.activeEditor.updateAnnotation(oaAnno);
-        _this.eventEmitter.publish('annotationEditSave.'+_this.windowId,[oaAnno]);
-      });
-
-      jQuery(selector + ' a.cancel').on("click", function(event) {
-        event.preventDefault();
-        var display = jQuery(this).parents('.annotation-editor');
-        var id = display.attr('data-anno-id');
-        var oaAnno = viewerParams.getAnnoFromRegion(id)[0];
-        _this.removeAllEvents();
-        _this.unFreezeQtip(api, oaAnno, viewerParams);
-        _this.eventEmitter.publish('annotationEditCancel.' + _this.windowId,[id]);
-
-      });
-    },
-
-    /**
-     * Shows annotation tooltip initialized with
-     * <code>initializeViewerUpgradableToEditor()</code>
-     *
-     * @param params: {
-     *   annotations: any[]
-     *   triggerEvent: MouseEvent
-     *   shouldDisplayTooltip: (api: QTipAPI) => boolean
-     * }
-     */
-    showViewer: function(params) {
-      var _this = this;
-      var api = jQuery(_this.targetElement).qtip('api');
-      if (!api) { return; }
-      if (params.shouldDisplayTooltip && !params.shouldDisplayTooltip(api)) {
-        return;
-      }
-      if (params.annotations.length === 0) {
-        if (!api.cache.hidden) {
-          api.disable(false);
-          api.hide(params.triggerEvent);
-          api.cache.annotations = [];
-          api.cache.hidden = true;
-          api.disable(true);
-        }
-      } else {
-        var oldAnnotations = api.cache.annotations;
-        var isTheSame = oldAnnotations.length == params.annotations.length;
-        if (isTheSame) {
-          for (var i = 0; i < params.annotations.length; i++) {
-            if (oldAnnotations[i] != params.annotations[i]) {
-              isTheSame = false;
-              break;
-            }
-          }
-        }
-        if (api.cache.hidden || !isTheSame) {
-          api.disable(false);
-          _this.setTooltipContent(params.annotations);
-          api.cache.origin = params.triggerEvent;
-          api.reposition(params.triggerEvent, true);
-          api.show(params.triggerEvent);
-          api.cache.annotations = params.annotations;
-          api.cache.hidden = false;
-          _this.removeAllEvents();
-          _this.addViewerEvents(api,api.cache.params);
-        }
-      }
-    },
-
-    setTooltipContent: function(annotations) {
-      var _this = this;
-      var api = jQuery(this.targetElement).qtip('api');
-      if (api) {
-        api.set({'content.text': this.getViewerContent(annotations)});
-        _this.eventEmitter.publish('tooltipViewerSet.' + this.windowId);
-      }
-    },
-
-    getViewerContent: function(annotations) {
-      var annoText,
-        tags = [],
-        htmlAnnotations = [],
-        id;
-
-      jQuery.each(annotations, function(index, annotation) {
-        tags = [];
-        if (jQuery.isArray(annotation.resource)) {
-          jQuery.each(annotation.resource, function(index, value) {
-            if (value['@type'] === "oa:Tag") {
-              tags.push(value.chars);
-            } else {
-              annoText = value.chars;
-            }
-          });
-        } else {
-          annoText = annotation.resource.chars;
-        }
-        var username = "";
-        if (annotation.annotatedBy && annotation.annotatedBy.name) {
-          username = annotation.annotatedBy.name;
-        }
-        //if it is a manifest annotation, don't allow editing or deletion
-        //otherwise, check annotation in endpoint
-        var showUpdate = false;
-        if (annotation.endpoint !== 'manifest') {
-          showUpdate = annotation.endpoint.userAuthorize('update', annotation);
-        }
-        var showDelete = false;
-        if (annotation.endpoint !== 'manifest') {
-          showDelete = annotation.endpoint.userAuthorize('delete', annotation);
-        }
-        htmlAnnotations.push({
-          annoText : $.sanitizeHtml(annoText),
-          tags : tags,
-          id : annotation['@id'],
-          username : username,
-          showUpdate : showUpdate,
-          showDelete : showDelete
-        });
-      });
-
-      var template = this.viewerTemplate({
-        annotations : htmlAnnotations,
-        windowId : this.windowId
-      });
-      return template;
-      //return combination of all of them
-    },
-
-    freezeQtip: function(api, oaAnno, viewerParams) {
-      var _this = this;
-      if (this.inEditOrCreateMode) { throw 'AnnotationTooltip already in edit mode'; }
-      this.inEditOrCreateMode = true;
-      _this.eventEmitter.publish('disableRectTool.' + this.windowId);
-      var editorContainer = this.editorTemplate({
-        id: jQuery.isEmptyObject(oaAnno) ? "" : oaAnno['@id'],
-        windowId: this.windowId
-      });
-      api.set({
-        'content.text': editorContainer,
-        'hide.event': false
-      });
-      //add rich text editor
-      this.activeEditor = new this.editor(
-        jQuery.extend({}, this.editorOptions, {
-          annotation: oaAnno,
-          windowId: this.windowId
-        }));
-      this.activeEditor.show('form#annotation-editor-'+this.windowId);
-      _this.eventEmitter.publish('annotationEditorAvailable.' + this.windowId);
-      jQuery(api.elements.tooltip).removeClass("qtip-viewer");
-      api.elements.tooltip.draggable();
-      if (viewerParams.onEnterEditMode) {
-        viewerParams.onEnterEditMode(api, oaAnno);
-      }
-    },
-
-    unFreezeQtip: function(api, oaAnno, viewerParams) {
-      var _this = this;
-      if (!this.inEditOrCreateMode) { throw 'AnnotationTooltip not in edit mode'; }
-      this.inEditOrCreateMode = false;
-      _this.eventEmitter.publish('enableRectTool.' + this.windowId);
-      api.set({
-        'content.text': this.getViewerContent([oaAnno]),
-        'hide.event': 'mouseleave'
-      }).hide();
-      jQuery(api.elements.tooltip).addClass("qtip-viewer");
-      if (viewerParams.onExitEditMode) {
-        viewerParams.onExitEditMode(api, oaAnno);
-      }
-    },
-
-    //when this is being used to edit an existing annotation, insert them into the inputs
-    editorTemplate: $.Handlebars.compile([
-      '<form id="annotation-editor-{{windowId}}" class="annotation-editor annotation-tooltip" {{#if id}}data-anno-id="{{id}}"{{/if}}>',
-      '<div>',
-      // need to add a delete, if permissions allow
-      '<div class="button-container">',
-      '<a href="#cancel" class="cancel"><i class="fa fa-times-circle-o fa-fw"></i>{{t "cancel"}}</a>',
-      '<a href="#save" class="save"><i class="fa fa-database fa-fw"></i>{{t "save"}}</a>',
-      '</div>',
-      '</div>',
-      '</form>'
-    ].join('')),
-
-    viewerTemplate: $.Handlebars.compile([
-      '<div class="all-annotations" id="annotation-viewer-{{windowId}}">',
-      '{{#each annotations}}',
-      '<div class="annotation-display annotation-tooltip" data-anno-id="{{id}}">',
-      '<div class="button-container">',
-        '{{#if showUpdate}}<a href="#edit" class="edit"><i class="fa fa-pencil-square-o fa-fw"></i>{{t "edit"}}</a>{{/if}}',
-        '{{#if showDelete}}<a href="#delete" class="delete"><i class="fa fa-trash-o fa-fw"></i>{{t "delete"}}</a>{{/if}}',
-      '</div>',
-      '<div class="text-viewer">',
-      '{{#if username}}<p class="user">{{username}}:</p>{{/if}}',
-      '<p>{{{annoText}}}</p>',
-      '</div>',
-      '<div id="tags-viewer-{{windowId}}" class="tags-viewer">',
-      '{{#each tags}}',
-      '<span class="tag">{{this}}</span>',
-      '{{/each}}',
-      '</div>',
-      '</div>',
-      '{{/each}}',
-      '</div>'
-    ].join(''))
-  };
-
-}(Mirador));
\ No newline at end of file
diff --git a/js/src/annotations/catchEndpoint.js b/js/src/annotations/catchEndpoint.js
deleted file mode 100644
index 7f4fbc90d5d0048825f842d1a1b96b4c2c69d9e1..0000000000000000000000000000000000000000
--- a/js/src/annotations/catchEndpoint.js
+++ /dev/null
@@ -1,391 +0,0 @@
-/*
- * All Endpoints need to have at least the following:
- * annotationsList - current list of OA Annotations
- * dfd - Deferred Object
- * init()
- * search(options, successCallback, errorCallback)
- * create(oaAnnotation, successCallback, errorCallback)
- * update(oaAnnotation, successCallback, errorCallback)
- * deleteAnnotation(annotationID, successCallback, errorCallback) (delete is a reserved word)
- * TODO:
- * read() //not currently used
- *
- * Optional, if endpoint is not OA compliant:
- * getAnnotationInOA(endpointAnnotation)
- * getAnnotationInEndpoint(oaAnnotation)
- */
-(function($){
-
-  $.CatchEndpoint = function(options) {
-
-    jQuery.extend(this, {
-      token:     null,
-      prefix:    null,
-      params:    "",
-      dfd:       null,
-      context_id: "None",
-      collection_id: "None",
-      userid:    "test@mirador.org",
-      username:  "mirador-test",
-      annotationsList: [],        //OA list for Mirador use
-      annotationsListCatch: null,  //internal list for module use
-      windowID: null,
-      eventEmitter: null
-    }, options);
-
-    this.init();
-  };
-
-  $.CatchEndpoint.prototype = {
-    //Set up some options for catch
-    init: function() {
-      this.catchOptions = {
-        user: {
-          id: this.userid,
-          name: this.username
-        },
-        permissions: {
-          'read':   [],
-          'update': [this.userid],
-          'delete': [this.userid],
-          'admin':  [this.userid]
-        }
-      };
-    },
-
-    set: function(prop, value, options) {
-      if (options) {
-        this[options.parent][prop] = value;
-      } else {
-        this[prop] = value;
-      }
-    },
-
-    //Search endpoint for all annotations with a given URI
-    search: function(options, successCallback, errorCallback) {
-      var _this = this;
-      this.annotationsList = []; //clear out current list
-
-      jQuery.ajax({
-        url: this.prefix+"/search" + this.params,
-        type: 'GET',
-        dataType: 'json',
-        headers: {
-          "x-annotator-auth-token": this.token
-        },
-        data: {
-          uri: options.uri,
-          userid : options.userid ? options.userid : undefined,
-          username : options.username ? options.username : undefined,
-          text : options.text ? options.text : undefined,
-          tag : options.tag ? options.tag : undefined,
-          parentid : options.parentid ? options.parentid : undefined,
-          contextId: _this.context_id,
-          collectionId: _this.collection_id,
-          media: options.media ? options.media : "image",
-          limit: options.limit ? options.limit : -1
-        },
-
-        contentType: "application/json; charset=utf-8",
-        success: function(data) {
-          //check if a function has been passed in, otherwise, treat it as a normal search
-          if (typeof successCallback === "function") {
-            successCallback(data);
-          } else {
-            _this.annotationsListCatch = data.rows;
-            jQuery.each(_this.annotationsListCatch, function(index, value) {
-              _this.annotationsList.push(_this.getAnnotationInOA(value));
-            });
-            _this.dfd.resolve(true);
-            _this.eventEmitter.publish('catchAnnotationsLoaded.'+_this.windowID, _this.annotationsListCatch);
-          }
-        },
-        error: function() {
-          if (typeof errorCallback === "function") {
-            errorCallback();
-          } else {
-            console.log("There was an error searching this endpoint");
-          }
-        }
-
-      });
-    },
-
-    deleteAnnotation: function(annotationID, successCallback, errorCallback) {
-      var _this = this;
-      jQuery.ajax({
-       url: this.prefix+"/destroy/"+annotationID + this.params,
-       type: 'DELETE',
-       dataType: 'json',
-       headers: {
-         "x-annotator-auth-token": this.token
-       },
-       contentType: "application/json; charset=utf-8",
-       success: function(data) {
-        if (typeof successCallback === "function") {
-          successCallback();
-        }
-        _this.eventEmitter.publish('catchAnnotationDeleted.'+_this.windowID, annotationID);
-      },
-      error: function() {
-        if (typeof errorCallback === "function") {
-          errorCallback();
-        }
-      }
-
-    });
-    },
-
-    update: function(oaAnnotation, successCallback, errorCallback) {
-      var annotations = this.getAnnotationInEndpoint(oaAnnotation),
-      _this = this;
-
-      annotations.forEach(function(annotation) {
-        var annotationID = annotation.id;
-
-        jQuery.ajax({
-          url: _this.prefix+"/update/"+annotationID + _this.params,
-          type: 'POST',
-          dataType: 'json',
-          headers: {
-            "x-annotator-auth-token": _this.token
-          },
-          data: JSON.stringify(annotation),
-          contentType: "application/json; charset=utf-8",
-          success: function(data) {
-            if (typeof successCallback === "function") {
-              successCallback(_this.getAnnotationInOA(data));
-            }
-            _this.eventEmitter.publish('catchAnnotationUpdated.'+_this.windowID, annotation);
-          },
-          error: function() {
-            if (typeof errorCallback === "function") {
-              errorCallback();
-            }
-          }
-        });
-      });
-    },
-
-    //takes OA Annotation, gets Endpoint Annotation, and saves
-    //if successful, MUST return the OA rendering of the annotation
-    create: function(oaAnnotation, successCallback, errorCallback) {
-      var _this = this,
-      annotations = this.getAnnotationInEndpoint(oaAnnotation);
-      annotations.forEach(function(annotation) {
-        _this.createCatchAnnotation(annotation, successCallback, errorCallback);
-      });
-    },
-
-    createCatchAnnotation: function(catchAnnotation, successCallback, errorCallback) {
-      var _this = this;
-
-      jQuery.ajax({
-        url: this.prefix+"/create" + this.params,
-        type: 'POST',
-        dataType: 'json',
-        headers: {
-          "x-annotator-auth-token": this.token
-        },
-        data: JSON.stringify(catchAnnotation),
-        contentType: "application/json; charset=utf-8",
-        success: function(data) {
-          if (typeof successCallback === "function") {
-            successCallback(_this.getAnnotationInOA(data));
-          }
-          _this.eventEmitter.publish('catchAnnotationCreated.'+_this.windowID, data);
-        },
-        error: function() {
-          if (typeof errorCallback === "function") {
-            errorCallback();
-          }
-        }
-      });
-    },
-
-    userAuthorize: function(action, annotation) {
-      var token, tokens, _i, _len;
-      //if this is an instructor, they have access to student annotations
-      if (this.roles && (this.roles.indexOf('Instructor') !== -1 || this.roles.indexOf('Administrator') !== -1)){
-          return true;
-      }
-      //otherwise check annotation permissions
-      if (annotation.permissions) {
-        var permissionUserIds = annotation.permissions[action] || [];
-        //if no userids set for a permission, it is open to everyone
-        if (permissionUserIds.length === 0) {
-          return true;
-        }
-        //otherwise compare userid of annotation to current userid
-        if (permissionUserIds.indexOf(this.userid) !== -1) {
-          return true;
-        }
-        return false;
-      } else if (annotation.user) {
-        //if no permissions, just check userids
-        return this.userid === annotation.user.userid;
-      }
-      //otherwise, just return true
-      return true;
-    },
-
-    //Convert Endpoint annotation to OA
-    getAnnotationInOA: function(annotation) {
-      var id,
-      motivation = [],
-      resource = [],
-      on,
-      annotatedBy;
-      //convert annotation to OA format
-
-      id = annotation.id;  //need to make URI
-
-      if (annotation.tags.length > 0) {
-        motivation.push("oa:tagging");
-        jQuery.each(annotation.tags, function(index, value) {
-          resource.push({
-            "@type":"oa:Tag",
-            "chars":value
-          });
-        });
-      }
-      if (annotation.parent && annotation.parent !== "0") {
-        motivation.push("oa:replying");
-        on = annotation.parent;  //need to make URI
-      } else {
-        var value;
-        motivation.push("oa:commenting");
-        if (jQuery.isArray(annotation.rangePosition)) {
-          //dual strategy
-          on  = annotation.rangePosition;
-        } else if (typeof annotation.rangePosition === 'object') {
-          //legacy strategy
-          value = "xywh="+annotation.rangePosition.x+","+annotation.rangePosition.y+","+annotation.rangePosition.width+","+annotation.rangePosition.height;
-          on = { "@type" : "oa:SpecificResource",
-            "full" : annotation.uri,
-            "selector": {
-                "@type": "oa:FragmentSelector",
-                "value": value
-            }
-          };
-        } else {
-          //2.1 strategy
-          value = annotation.rangePosition;
-          on = { "@type" : "oa:SpecificResource",
-            "full" : annotation.uri,
-            "selector": {
-              "@type": "oa:SvgSelector",
-              "value": value
-            }
-          };
-        }
-      }
-      resource.push( {
-        "@type" : "dctypes:Text",
-        "format" : "text/html",
-        "chars" : annotation.text
-      });
-
-      annotatedBy = { "@id" : annotation.user.id,
-        "name" : annotation.user.name};
-
-        var oaAnnotation = {
-          "@context" : "http://iiif.io/api/presentation/2/context.json",
-          "@id" : String(id),
-          "@type" : "oa:Annotation",
-          "motivation" : motivation,
-          "resource" : resource,
-          "on" : on,
-          "annotatedBy" : annotatedBy,
-          "annotatedAt" : annotation.created,
-          "serializedAt" : annotation.updated,
-          "permissions" : annotation.permissions,
-          "endpoint" : this
-        };
-        return oaAnnotation;
-    },
-
-    // Converts OA Annotation to endpoint format
-    getAnnotationInEndpoint: function(oaAnnotation) {
-      var _this = this,
-      uris = [];
-      oaAnnotation.on.forEach(function(value) {
-        if (jQuery.inArray(value.full, uris) === -1) {
-          uris.push(value.full);
-        }
-      });
-      var annotations = [];
-
-      uris.forEach(function(uri) {
-        var annotation = {},
-        tags = [],
-        text;
-
-        if (oaAnnotation["@id"]) {
-          annotation.id = oaAnnotation["@id"];
-        }
-
-        annotation.media = "image";
-        jQuery.each(oaAnnotation.resource, function(index, value) {
-          if (value['@type'] === 'oa:Tag') {
-            tags.push(value.chars);
-          } else if (value['@type'] === 'dctypes:Text') {
-            text = value.chars;
-          }
-        });
-        annotation.tags = tags;
-        annotation.text = text;
-
-        annotation.uri = uri;
-        annotation.contextId = _this.context_id;
-        annotation.collectionId = _this.collection_id;
-        annotation.rangePosition = oaAnnotation.on;
-
-        var coordsArray = [];
-        oaAnnotation.on.forEach(function(value) {
-          var xywh = value.selector.default.value.split('=')[1].split(',');
-          coordsArray.push(xywh.map(function(i) {return parseInt(i);}));
-        });
-        var left = coordsArray.map(function(i) {return i[0];});
-        var top = coordsArray.map(function(i) {return i[1];});
-        var right = coordsArray.map(function(i) {return i[0] + i[2];});
-        var bottom = coordsArray.map(function(i) {return i[1] + i[3];});
-
-        var newRect = {
-          "x" : Math.min.apply(null, left),
-          "y" : Math.min.apply(null, top),
-          "width" : Math.max.apply(null, right) - Math.min.apply(null, left),
-          "height" : Math.max.apply(null, bottom) - Math.min.apply(null, top)
-        };
-
-        var canvas = _this.imagesList[$.getImageIndexById(_this.imagesList, uri)];
-        var imageUrl = $.getThumbnailForCanvas(canvas, 300);
-        imageUrl = imageUrl.replace('full', newRect.x+','+newRect.y+','+newRect.width+','+newRect.height);
-        annotation.thumb = imageUrl;
-        annotation.bounds = {"x":newRect.x, "y":newRect.y, "width":newRect.width, "height":newRect.height};
-
-        annotation.updated = new Date().toISOString();
-        if (oaAnnotation.annotatedAt) {
-          annotation.created = oaAnnotation.annotatedAt;
-        } else {
-          annotation.created = annotation.updated;
-        }
-        // this needs to come from LTI annotation.user.id, annotation.user.name
-        annotation.user = {};
-        if (oaAnnotation.annotatedBy) {
-          annotation.user.name = oaAnnotation.annotatedBy.name;
-          annotation.user.id = oaAnnotation.annotatedBy['@id'];
-        } else {
-          annotation.user = _this.catchOptions.user;
-        }
-        annotation.permissions = _this.catchOptions.permissions;
-        annotation.archived = false;
-        annotation.ranges = [];
-        annotation.parent = "0";
-        annotations.push(annotation);
-      });
-      return annotations;
-    }
-  };
-
-}(Mirador));
diff --git a/js/src/annotations/endpoint.js b/js/src/annotations/endpoint.js
deleted file mode 100644
index ed0310461b2faf59aec738f86c2b7b0c1f69a13d..0000000000000000000000000000000000000000
--- a/js/src/annotations/endpoint.js
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * All Endpoints need to have at least the following:
- * annotationsList - current list of OA Annotations
- * dfd - Deferred Object
- * init()
- * search(options, successCallback, errorCallback)
- * create(oaAnnotation, successCallback, errorCallback)
- * update(oaAnnotation, successCallback, errorCallback)
- * deleteAnnotation(annotationID, successCallback, errorCallback) (delete is a reserved word)
- * TODO:
- * read() //not currently used
- *
- * Optional, if endpoint is not OA compliant:
- * getAnnotationInOA(endpointAnnotation)
- * getAnnotationInEndpoint(oaAnnotation)
- */
-(function($){
-
-  $.Endpoint = function(options) {
-
-    jQuery.extend(this, {
-      dfd:             null,
-      annotationsList: [],        //OA list for Mirador use
-      windowID:        null,
-      eventEmitter:    null
-    }, options);
-
-    this.init();
-  };
-
-  $.Endpoint.prototype = {
-    init: function() {
-      //whatever initialization your endpoint needs       
-    },
-
-    //Search endpoint for all annotations with a given URI in options
-    search: function(options, successCallback, errorCallback) {
-      var _this = this;
-
-      //use options.uri
-      jQuery.ajax({
-        url: '',
-        type: 'GET',
-        dataType: 'json',
-        headers: { },
-        data: { },
-        contentType: "application/json; charset=utf-8",
-        success: function(data) {
-          //check if a function has been passed in, otherwise, treat it as a normal search
-          if (typeof successCallback === "function") {
-            successCallback(data);
-          } else {
-            jQuery.each(data, function(index, value) {
-              _this.annotationsList.push(_this.getAnnotationInOA(value));
-            });
-            _this.dfd.resolve(true);
-          }
-        },
-        error: function() {
-          if (typeof errorCallback === "function") {
-            errorCallback();
-          }
-        }
-      });
-    },
-    
-    //Delete an annotation by endpoint identifier
-    deleteAnnotation: function(annotationID, successCallback, errorCallback) {
-      var _this = this;        
-      jQuery.ajax({
-        url: '',
-        type: 'DELETE',
-        dataType: 'json',
-        headers: { },
-        contentType: "application/json; charset=utf-8",
-        success: function(data) {
-          if (typeof successCallback === "function") {
-            successCallback();
-          }
-        },
-        error: function() {
-          if (typeof errorCallback === "function") {
-            errorCallback();
-          }
-        }
-      });
-    },
-    
-    //Update an annotation given the OA version
-    update: function(oaAnnotation, successCallback, errorCallback) {
-      var annotation = this.getAnnotationInEndpoint(oaAnnotation),
-      _this = this;
-      
-      jQuery.ajax({
-        url: '',
-        type: 'POST',
-        dataType: 'json',
-        headers: { },
-        data: '',
-        contentType: "application/json; charset=utf-8",
-        success: function(data) {
-          if (typeof successCallback === "function") {
-            successCallback();
-          }
-        },
-        error: function() {
-          if (typeof errorCallback === "function") {
-            errorCallback();
-          }
-        }
-      });
-    },
-
-    //takes OA Annotation, gets Endpoint Annotation, and saves
-    //if successful, MUST return the OA rendering of the annotation
-    create: function(oaAnnotation, successCallback, errorCallback) {
-      var _this = this;
-      
-      jQuery.ajax({
-        url: '',
-        type: 'POST',
-        dataType: 'json',
-        headers: { },
-        data: '',
-        contentType: "application/json; charset=utf-8",
-        success: function(data) {
-          if (typeof successCallback === "function") {
-            successCallback(_this.getAnnotationInOA(data));
-          }
-        },
-        error: function() {
-          if (typeof errorCallback === "function") {
-            errorCallback();
-          }
-        }
-      });
-    },
-
-    set: function(prop, value, options) {
-      if (options) {
-        this[options.parent][prop] = value;
-      } else {
-        this[prop] = value;
-      }
-    },
-
-    //Convert Endpoint annotation to OA
-    getAnnotationInOA: function(annotation) {
-    },
-
-    // Converts OA Annotation to endpoint format
-    getAnnotationInEndpoint: function(oaAnnotation) {
-    }
-  };
-
-}(Mirador));
diff --git a/js/src/annotations/legacyOpenAnnotationStrategy.js b/js/src/annotations/legacyOpenAnnotationStrategy.js
deleted file mode 100644
index a1d7b906576eb79b3ba85d7c2205b9cac3ea562a..0000000000000000000000000000000000000000
--- a/js/src/annotations/legacyOpenAnnotationStrategy.js
+++ /dev/null
@@ -1,41 +0,0 @@
-(function($) {
-
-  $.LegacyOpenAnnotationStrategy = function(options) {
-    jQuery.extend(this, {
-      
-    }, options);
-    this.init();
-  };
-  
-  $.LegacyOpenAnnotationStrategy.prototype = {
-    init: function() {
-      
-    },
-    
-    // Check whether an annotation is supported under this formatting strategy
-    isThisType: function(annotation) {
-      if (annotation.on && typeof annotation.on === 'string') {
-        return annotation.on.indexOf('xywh=') !== -1;
-      }
-      return false;
-    },
-    
-    // Build the selector into a bare annotation, given a Window and an OsdSvgOverlay
-    buildAnnotation: function(options) {
-      var oaAnno = options.annotation,
-          win = options.window,
-          overlay = options.overlay,
-          bounds = overlay.draftPaths[0].bounds;
-      oaAnno.on = win.canvasID + "#xywh=" + Math.round(bounds.x) + "," + Math.round(bounds.y) + "," + Math.round(bounds.width) + "," + Math.round(bounds.height);
-      return oaAnno;
-    },
-    
-    // Parse the annotation into the OsdRegionDrawTool instance (only if its format is supported by this strategy)
-    parseRegion: function(annotation, osdRegionDrawTool) {
-      if (this.isThisType(annotation)) {
-        return osdRegionDrawTool.parseRectangle(annotation.on, annotation);
-      }
-    },
-  };
-  
-}(Mirador));
\ No newline at end of file
diff --git a/js/src/annotations/localStorageEndpoint.js b/js/src/annotations/localStorageEndpoint.js
deleted file mode 100644
index b4cac53547a56c35cde0412cf071ac71979c3c2f..0000000000000000000000000000000000000000
--- a/js/src/annotations/localStorageEndpoint.js
+++ /dev/null
@@ -1,226 +0,0 @@
-/*
- * All Endpoints need to have at least the following:
- * annotationsList - current list of OA Annotations
- * dfd - Deferred Object
- * init()
- * search(options, successCallback, errorCallback)
- * create(oaAnnotation, successCallback, errorCallback)
- * update(oaAnnotation, successCallback, errorCallback)
- * deleteAnnotation(annotationID, successCallback, errorCallback) (delete is a reserved word)
- * TODO:
- * read() //not currently used
- *
- * Optional, if endpoint is not OA compliant:
- * getAnnotationInOA(endpointAnnotation)
- * getAnnotationInEndpoint(oaAnnotation)
- */
-(function($){
-
-  $.LocalStorageEndpoint = function(options) {
-
-    jQuery.extend(this, {
-      token:     null,
-      prefix:    null,
-      dfd:       null,
-      annotationsList: [],
-      windowID: null,
-      eventEmitter: null
-    }, options);
-
-    this.init();
-  };
-
-  $.LocalStorageEndpoint.prototype = {
-    //Set up some options for catch
-    init: function() {
-    },
-
-    set: function(prop, value, options) {
-      if (options) {
-        this[options.parent][prop] = value;
-      } else {
-        this[prop] = value;
-      }
-    },
-
-    //Search endpoint for all annotations with a given URI
-    search: function(options, successCallback, errorCallback) {
-      var _this = this;
-      this.annotationsList = []; //clear out current list
-
-      try {
-        _this.annotationsList = _this.getAnnotationList(options.uri);
-        jQuery.each(_this.annotationsList, function(index, value) {
-          value.endpoint = _this;
-        });
-        if (typeof successCallback === "function") {
-          successCallback(_this.annotationsList);
-        } else {
-          _this.dfd.resolve(true);
-        }
-      } catch (e) {
-        if (typeof errorCallback === "function") {
-          errorCallback();
-        } else {
-          console.log("There was an error searching this endpoint");
-        }
-      }
-    },
-
-    deleteAnnotation: function(annotationID, successCallback, errorCallback) {
-      var _this = this,
-      keys = [];
-      jQuery.each(_this.annotationsList[0].on, function(index, value) {
-        if (jQuery.inArray(value.full, keys) === -1) {
-          keys.push(value.full);
-        }
-      });
-
-      if (keys.length === 0) {
-        if (typeof errorCallback === "function") {
-          errorCallback();
-        }
-      }
-      jQuery.each(keys, function(index, key) {
-        try {
-          //find the matching annotation in the array and update it
-          _this.annotationsList = jQuery.grep(_this.annotationsList, function(value, index) {
-            return value['@id'] !== annotationID;
-          });
-
-          //remove endpoint reference before JSON.stringify
-          jQuery.each(_this.annotationsList, function(index, value) {
-            delete value.endpoint;
-          });
-
-          localStorage.setItem(key, JSON.stringify(_this.annotationsList));
-
-          //add endpoint reference after JSON.stringify
-          jQuery.each(_this.annotationsList, function(index, value) {
-            value.endpoint = _this;
-          });
-
-          if (typeof successCallback === "function") {
-            successCallback();
-          }
-        } catch (e) {
-          if (typeof errorCallback === "function") {
-            errorCallback();
-          }
-        }
-      });
-    },
-
-    update: function(oaAnnotation, successCallback, errorCallback) {
-      var _this = this,
-      annotationID = oaAnnotation['@id'],
-      keys = [];
-      jQuery.each(oaAnnotation.on, function(index, value) {
-        if (jQuery.inArray(value.full, keys) === -1) {
-          keys.push(value.full);
-        }
-      });
-
-      if (keys.length === 0) {
-        if (typeof errorCallback === "function") {
-          errorCallback();
-        }
-      }
-      jQuery.each(keys, function(index, key) {
-        try {
-          if (_this.annotationsList.length === 0) {
-            _this.annotationsList = _this.getAnnotationList(key);
-          }
-          //find the matching annotation in the array and update it
-          jQuery.each(_this.annotationsList, function(index, value) {
-            if (value['@id'] === annotationID) {
-              _this.annotationsList[index] = oaAnnotation;
-              return false;
-            }
-          });
-
-          //remove endpoint reference before JSON.stringify
-          jQuery.each(_this.annotationsList, function(index, value) {
-            delete value.endpoint;
-          });
-
-          localStorage.setItem(key, JSON.stringify(_this.annotationsList));
-
-          //add endpoint reference after JSON.stringify
-          jQuery.each(_this.annotationsList, function(index, value) {
-            value.endpoint = _this;
-          });
-
-          if (typeof successCallback === "function") {
-            successCallback(oaAnnotation);
-          }
-        } catch (e) {
-          if (typeof errorCallback === "function") {
-            errorCallback();
-          }
-        }
-      });
-    },
-
-    //takes OA Annotation, gets Endpoint Annotation, and saves
-    //if successful, MUST return the OA rendering of the annotation
-    create: function(oaAnnotation, successCallback, errorCallback) {
-      var _this = this,
-      keys = [];
-      jQuery.each(oaAnnotation.on, function(index, value) {
-        if (jQuery.inArray(value.full, keys) === -1) {
-          keys.push(value.full);
-        }
-      });
-
-      if (keys.length === 0) {
-        if (typeof errorCallback === "function") {
-          errorCallback();
-        }
-      }
-      jQuery.each(keys, function(index, key) {
-        try {
-          if (_this.annotationsList.length === 0) {
-            _this.annotationsList = _this.getAnnotationList(key);
-          }
-          oaAnnotation["@id"] = $.genUUID();
-          _this.annotationsList.push(oaAnnotation);
-
-          //remove endpoint reference before JSON.stringify
-          jQuery.each(_this.annotationsList, function(index, value) {
-            delete value.endpoint;
-          });
-
-          localStorage.setItem(key, JSON.stringify(_this.annotationsList));
-
-          //add endpoint reference after JSON.stringify
-          jQuery.each(_this.annotationsList, function(index, value) {
-            value.endpoint = _this;
-          });
-
-          if (typeof successCallback === "function") {
-            successCallback(oaAnnotation);
-          }
-        } catch (e) {
-          if (typeof errorCallback === "function") {
-            errorCallback();
-          }
-        }
-      });
-    },
-
-    getAnnotationList: function(key) {
-      var data = localStorage.getItem(key);
-      if (data) {
-        return JSON.parse(data);
-      } else {
-        return [];
-      }
-    },
-
-    userAuthorize: function(action, annotation) {
-      return true;
-    }
-  };
-
-}(Mirador));
diff --git a/js/src/annotations/mirador21Strategy.js b/js/src/annotations/mirador21Strategy.js
deleted file mode 100644
index 77a6c772048c8d5bf5b110bf96bee6314947f90b..0000000000000000000000000000000000000000
--- a/js/src/annotations/mirador21Strategy.js
+++ /dev/null
@@ -1,55 +0,0 @@
-(function($) {
-
-  $.Mirador21Strategy = function(options) {
-    jQuery.extend(this, {
-      
-    }, options);
-    this.init();
-  };
-  
-  $.Mirador21Strategy.prototype = {
-    init: function() {
-      
-    },
-    
-    // Check whether an annotation is supported under this formatting strategy
-    isThisType: function(annotation) {
-      if (annotation.on && typeof annotation.on === 'object' &&
-          annotation.on.selector && typeof annotation.on.selector === 'object' &&
-          annotation.on.selector.value && typeof annotation.on.selector.value === 'string' &&
-          annotation.on.selector['@type'] === 'oa:SvgSelector') {
-        return true;
-      }
-      return false;
-    },
-    
-    // Build the selector into a bare annotation, given a Window and an OsdSvgOverlay
-    buildAnnotation: function(options) {
-      var oaAnno = options.annotation,
-          win = options.window,
-          overlay = options.overlay,
-          svg = overlay.getSVGString(overlay.draftPaths);
-      oaAnno.on = {
-          "@type": "oa:SpecificResource",
-          "full": win.canvasID,
-          "selector": {
-            "@type": "oa:SvgSelector",
-            "value": svg
-          },
-          "within": {
-            "@id": win.loadedManifest,
-            "@type": "sc:Manifest"
-          }
-        };
-      return oaAnno;
-    },
-    
-    // Parse the annotation into the OsdRegionDrawTool instance (only if its format is supported by this strategy)
-    parseRegion: function(annotation, osdRegionDrawTool) {
-      if (this.isThisType(annotation)) {
-        return osdRegionDrawTool.svgOverlay.parseSVG(annotation.on.selector.value, annotation);
-      }
-    },
-  };
-  
-}(Mirador));
\ No newline at end of file
diff --git a/js/src/annotations/miradorDualStrategy.js b/js/src/annotations/miradorDualStrategy.js
deleted file mode 100644
index 581c4381f00d9f9687828fbf7c482b6e3eadab78..0000000000000000000000000000000000000000
--- a/js/src/annotations/miradorDualStrategy.js
+++ /dev/null
@@ -1,75 +0,0 @@
-(function($) {
-
-  $.MiradorDualStrategy = function(options) {
-    jQuery.extend(this, {
-
-    }, options);
-    this.init();
-  };
-
-  $.MiradorDualStrategy.prototype = {
-    init: function() {
-
-    },
-
-    // Check whether an annotation is supported under this formatting strategy
-    isThisType: function(annotation) {
-      if (annotation.on && jQuery.isArray(annotation.on) && annotation.on.length > 0 && typeof annotation.on[0] === 'object' &&
-          annotation.on[0].selector && typeof annotation.on[0].selector === 'object' &&
-          annotation.on[0].selector['@type'] === 'oa:Choice' &&
-          annotation.on[0].selector.default && typeof annotation.on[0].selector.default === 'object' &&
-          annotation.on[0].selector.default.value && typeof annotation.on[0].selector.default.value === 'string' &&
-          annotation.on[0].selector.item && typeof annotation.on[0].selector.item === 'object' &&
-          annotation.on[0].selector.item.value && typeof annotation.on[0].selector.item.value === 'string'
-        ) {
-        return annotation.on[0].selector.default.value.indexOf('xywh=') === 0 && annotation.on[0].selector.item.value.indexOf('<svg') === 0;
-      }
-      return false;
-    },
-
-    // Build the selector into a bare annotation, given a Window and an OsdSvgOverlay
-    buildAnnotation: function(options) {
-      var oaAnno = options.annotation,
-          win = options.window,
-          overlay = options.overlay;
-      oaAnno.on = [];
-      jQuery.each(overlay.draftPaths, function(index, path) {
-        // getSVGString expects an array, so insert each path into a new array
-        var svg = overlay.getSVGString([path]),
-        bounds = path.bounds;
-        oaAnno.on.push({
-          "@type": "oa:SpecificResource",
-          "full": win.canvasID,
-          "selector": {
-            "@type": "oa:Choice",
-            "default": {
-              "@type": "oa:FragmentSelector",
-              "value": "xywh=" + Math.round(bounds.x) + "," + Math.round(bounds.y) + "," + Math.round(bounds.width) + "," + Math.round(bounds.height)
-            },
-            "item": {
-              "@type": "oa:SvgSelector",
-              "value": svg
-            }
-          },
-          "within": {
-            "@id": win.loadedManifest,
-            "@type": "sc:Manifest"
-          }
-        });
-      });
-      return oaAnno;
-    },
-
-    // Parse the annotation into the OsdRegionDrawTool instance (only if its format is supported by this strategy)
-    parseRegion: function(annotation, osdRegionDrawTool) {
-      if (this.isThisType(annotation)) {
-        var regionArray = [];
-        jQuery.each(annotation.on, function(index, target) {
-          regionArray = regionArray.concat(osdRegionDrawTool.svgOverlay.parseSVG(target.selector.item.value, annotation));
-        });
-        return regionArray;
-      }
-    },
-  };
-
-}(Mirador));
diff --git a/js/src/annotations/miradorLegacyStrategy.js b/js/src/annotations/miradorLegacyStrategy.js
deleted file mode 100644
index d7ad06b369e0cde3ad7965dfa1a5d606a85dfd14..0000000000000000000000000000000000000000
--- a/js/src/annotations/miradorLegacyStrategy.js
+++ /dev/null
@@ -1,51 +0,0 @@
-(function($) {
-
-  $.MiradorLegacyStrategy = function(options) {
-    jQuery.extend(this, {
-      
-    }, options);
-    this.init();
-  };
-  
-  $.MiradorLegacyStrategy.prototype = {
-    init: function() {
-      
-    },
-    
-    // Check whether an annotation is supported under this formatting strategy
-    isThisType: function(annotation) {
-      if (annotation.on && typeof annotation.on === 'object' &&
-          annotation.on.selector && typeof annotation.on.selector === 'object' &&
-          annotation.on.selector.value && typeof annotation.on.selector.value === 'string' &&
-          annotation.on.selector['@type'] === 'oa:FragmentSelector') {
-        return annotation.on.selector.value.indexOf('xywh=') === 0;
-      }
-      return false;
-    },
-    
-    // Build the selector into a bare annotation, given a Window and an OsdSvgOverlay
-    buildAnnotation: function(options) {
-      var oaAnno = options.annotation,
-          win = options.window,
-          overlay = options.overlay,
-          bounds = overlay.draftPaths[0].bounds;
-      oaAnno.on = {
-        "@type": "oa:SpecificResource",
-        "full": win.canvasID,
-        "selector": {
-          "@type": "oa:FragmentSelector",
-          "value": "xywh=" + Math.round(bounds.x) + "," + Math.round(bounds.y) + "," + Math.round(bounds.width) + "," + Math.round(bounds.height)
-        }
-      };
-      return oaAnno;
-    },
-    
-    // Parse the annotation into the OsdRegionDrawTool instance (only if its format is supported by this strategy)
-    parseRegion: function(annotation, osdRegionDrawTool) {
-      if (this.isThisType(annotation)) {
-        return osdRegionDrawTool.parseRectangle(annotation.on.full + "#" + annotation.on.selector.value, annotation);
-      }
-    },
-  };
-  
-}(Mirador));
\ No newline at end of file
diff --git a/js/src/annotations/osd-region-draw-tool.js b/js/src/annotations/osd-region-draw-tool.js
deleted file mode 100644
index 4c19af40a66f07d930ff4c3a5b8cafb8ea27408f..0000000000000000000000000000000000000000
--- a/js/src/annotations/osd-region-draw-tool.js
+++ /dev/null
@@ -1,322 +0,0 @@
-(function($) {
-  $.OsdRegionDrawTool = function(options) {
-    jQuery.extend(this, {
-      osdViewer: null,
-      parent: null,
-      osd: null,
-      list: null,
-      annotationsToShapesMap: {},
-      eventEmitter: null
-    }, options);
-
-    this.eventsSubscriptions = [];
-
-    this.init();
-  };
-
-  $.OsdRegionDrawTool.prototype = {
-
-    init: function() {
-      this.svgOverlay = this.osdViewer.svgOverlay(this.osdViewer.id, this.windowId, this.state, this.eventEmitter);
-      this.svgOverlay.show();
-      this.svgOverlay.disable();
-
-      this.horizontallyFlipped = false;
-
-      this.listenForActions();
-    },
-
-    enterDisplayAnnotations: function() {
-      this.svgOverlay.setMouseTool();
-
-      // if a user selected the pointer mode but is still actively
-      // working on an annotation, don't re-render
-      if (!this.svgOverlay.inEditOrCreateMode) {
-        this.exitEditMode(true);
-        this.render();
-      } else {
-        this.svgOverlay.checkToRemoveFocus();
-      }
-    },
-
-    enterCreateAnnotation: function() {
-      // if a user selected went from pointer to a shape but is still actively
-      // working on an annotation, don't re-render
-      if (!this.svgOverlay.inEditOrCreateMode) {
-        this.osdViewer.setMouseNavEnabled(false);
-        this.svgOverlay.show();
-        this.svgOverlay.enable();
-        this.render();
-      } else {
-        this.svgOverlay.checkToRemoveFocus();
-      }
-    },
-
-    enterCreateShape: function() {
-      if (!this.svgOverlay.inEditOrCreateMode) {
-        this.osdViewer.setMouseNavEnabled(false);
-        this.svgOverlay.show();
-        this.svgOverlay.enable();
-      } else {
-        this.svgOverlay.checkToRemoveFocus();
-      }
-    },
-
-    enterEditAnnotation: function() {
-      this.osdViewer.setMouseNavEnabled(false);
-      this.svgOverlay.show();
-      this.svgOverlay.enableEdit();
-    },
-
-    enterDefault: function() {
-      // Removing the Tool explicitly because otherwise mouse events keep
-      // firing in default mode where they shouldn't.
-      this.svgOverlay.removeMouseTool();
-
-      this.exitEditMode(false);
-    },
-
-    exitEditMode: function(showAnnotations) {
-      this.osdViewer.setMouseNavEnabled(true);
-      this.svgOverlay.disable();
-      if (showAnnotations) {
-        this.svgOverlay.show();
-      } else {
-        this.svgOverlay.hide();
-      }
-    },
-
-    render: function () {
-      if(this.parent.mode !== $.AnnotationsLayer.DISPLAY_ANNOTATIONS){
-        return ;
-      }
-      this.svgOverlay.restoreEditedShapes();
-      this.svgOverlay.paperScope.activate();
-      this.svgOverlay.paperScope.project.clear();
-      var _this = this;
-      _this.annotationsToShapesMap = {};
-      var strategies = [
-        new $.Mirador21Strategy(),
-        new $.LegacyOpenAnnotationStrategy(),
-        new $.MiradorLegacyStrategy(),
-        new $.MiradorDualStrategy()
-      ];
-
-      for (var i = 0; i < this.list.length; i++) {
-        var annotation = this.list[i];
-        try {
-          var shapeArray = this.prepareShapeArray(annotation, strategies);
-          if (shapeArray.length > 0) {
-            _this.svgOverlay.restoreLastView(shapeArray);
-            _this.annotationsToShapesMap[annotation['@id']] = shapeArray;
-          } else {
-            console.log("ERROR couldn't find a strategy for " + annotation["@id"]);
-          }
-        } catch(e) {
-          console.log('ERROR OsdRegionDrawTool#render anno:', annotation, 'error:', e);
-        }
-      }
-
-      var windowElement = _this.state.getWindowElement(_this.windowId);
-      this.annoTooltip = new $.AnnotationTooltip({
-        targetElement: jQuery(this.osdViewer.element),
-        state: _this.state,
-        eventEmitter: _this.eventEmitter,
-        windowId: _this.windowId
-      });
-      this.annoTooltip.initializeViewerUpgradableToEditor({
-        container: windowElement,
-        viewport: windowElement,
-        getAnnoFromRegion: _this.getAnnoFromRegion.bind(this)
-      });
-      this.svgOverlay.paperScope.view.draw();
-      _this.eventEmitter.publish('annotationsRendered.' + _this.windowId);
-    },
-
-    prepareShapeArray: function(annotation, strategies) {
-      if (typeof annotation === 'object' && annotation.on) {
-        for (var i = 0; i < strategies.length; i++) {
-          if (strategies[i].isThisType(annotation)) {
-            var shapeArray = strategies[i].parseRegion(annotation, this);
-            return shapeArray;
-          }
-        }
-      }
-      return [];
-    },
-
-    parseRectangle: function(rectString, annotation) {
-      var shapeArray = rectString.split('=')[1].split(','),
-      shape = {
-        'x': parseInt(shapeArray[0]),
-        'y': parseInt(shapeArray[1]),
-        'width': parseInt(shapeArray[2]),
-        'height': parseInt(shapeArray[3])
-      };
-
-      return this.svgOverlay.createRectangle(shape, annotation);
-    },
-
-    showTooltipsFromMousePosition: function(event, location, absoluteLocation) {
-      var _this = this;
-      var originWindow = this.state.getWindowObjectById(this.windowId);
-      var currentCanvasModel = originWindow.canvases[originWindow.canvasID];
-
-      var hitOptions = {
-        fill: true,
-        stroke: true,
-        segments: true
-      };
-      var hoverColor = this.state.getStateProperty('drawingToolsSettings').hoverColor;
-      var annotations = [];
-      if (this.horizontallyFlipped) {
-        location.x = currentCanvasModel.getBounds().width - location.x;
-      }
-      for (var key in _this.annotationsToShapesMap) {
-        if (_this.annotationsToShapesMap.hasOwnProperty(key)) {
-          var shapeArray = _this.annotationsToShapesMap[key];
-          for (var idx = 0; idx < shapeArray.length; idx++) {
-            var shapeTool = this.svgOverlay.getTool(shapeArray[idx]);
-            var hoverWidth = shapeArray[idx].data.strokeWidth / this.svgOverlay.paperScope.view.zoom;
-            if (shapeArray[idx].hitTest(location, hitOptions)) {
-              annotations.push(shapeArray[idx].data.annotation);
-              if(shapeTool.onHover){
-                for(var k=0;k<shapeArray.length;k++){
-                  shapeTool.onHover(true,shapeArray[k],hoverWidth,hoverColor);
-                }
-              }
-              break;
-            }else{
-              if(shapeTool.onHover){
-                shapeTool.onHover(false,shapeArray[idx],hoverWidth);
-              }
-            }
-          }
-        }
-      }
-      this.svgOverlay.paperScope.view.draw();
-      //if (_this.svgOverlay.availableExternalCommentsPanel) {
-     //   _this.eventEmitter.publish('annotationMousePosition.' + _this.windowId, [annotations]);
-      //  return;
-      //}
-      _this.annoTooltip.showViewer({
-        annotations: annotations,
-        triggerEvent: event,
-        shouldDisplayTooltip: function(api) {
-          //track whether the cursor is within the tooltip (with the specified tolerance) and disables show/hide/update functionality.
-          if (api.elements.tooltip) {
-            var cursorWithinTooltip = true;
-            var leftSide = api.elements.tooltip.offset().left - _this.svgOverlay.hitOptions.tolerance;
-            var rightSide = api.elements.tooltip.offset().left + api.elements.tooltip.width() + _this.svgOverlay.hitOptions.tolerance;
-            if (absoluteLocation.x < leftSide || rightSide < absoluteLocation.x) {
-              cursorWithinTooltip = false;
-            }
-            var topSide = api.elements.tooltip.offset().top - _this.svgOverlay.hitOptions.tolerance;
-            var bottomSide = api.elements.tooltip.offset().top + api.elements.tooltip.height() + _this.svgOverlay.hitOptions.tolerance;
-            if (absoluteLocation.y < topSide || bottomSide < absoluteLocation.y) {
-              cursorWithinTooltip = false;
-            }
-            return !cursorWithinTooltip;
-          }
-          return true;
-        }
-      });
-    },
-
-    listenForActions: function() {
-      var _this = this;
-
-      this._thisDestroy = function(){
-        _this.destroy();
-      };
-
-      _this.osdViewer.addHandler('close', this._thisDestroy);
-
-      this.eventsSubscriptions.push(this.eventEmitter.subscribe('DESTROY_EVENTS.'+this.windowId, function(event) {
-        _this.destroy();
-      }));
-
-      this.eventsSubscriptions.push(_this.eventEmitter.subscribe('updateTooltips.' + _this.windowId, function(event, location, absoluteLocation) {
-        if (_this.annoTooltip && !_this.annoTooltip.inEditOrCreateMode) {
-          _this.showTooltipsFromMousePosition(event, location, absoluteLocation);
-        }
-      }));
-
-      this.eventsSubscriptions.push(_this.eventEmitter.subscribe('removeTooltips.' + _this.windowId, function() {
-        jQuery(_this.osdViewer.element).qtip('destroy', true);
-      }));
-
-      this.eventsSubscriptions.push(_this.eventEmitter.subscribe('disableTooltips.' + _this.windowId, function() {
-        if (_this.annoTooltip) {
-          _this.annoTooltip.inEditOrCreateMode = true;
-        }
-      }));
-
-      this.eventsSubscriptions.push(_this.eventEmitter.subscribe('enableTooltips.' + _this.windowId, function() {
-        if (_this.annoTooltip) {
-          _this.annoTooltip.inEditOrCreateMode = false;
-        }
-        _this.svgOverlay.restoreDraftShapes();
-      }));
-
-      this.eventsSubscriptions.push(_this.eventEmitter.subscribe('SET_ANNOTATION_EDITING.' + _this.windowId, function(event, options) {
-        jQuery.each(_this.annotationsToShapesMap, function(key, paths) {
-          // if we have a matching annotationId, pass the boolean value on for each path, otherwise, always pass false
-          if (key === options.annotationId) {
-            if (options.isEditable) {
-              _this.eventEmitter.publish('SET_OVERLAY_TOOLTIP.' + _this.windowId, {"tooltip" : options.tooltip, "visible" : true, "paths" : paths});
-            } else {
-              _this.eventEmitter.publish('SET_OVERLAY_TOOLTIP.' + _this.windowId, {"tooltip" : null, "visible" : false, "paths" : []});
-            }
-            jQuery.each(paths, function(index, path) {
-              path.data.editable = options.isEditable;
-              if (options.isEditable) {
-                path.strokeWidth = (path.data.strokeWidth + 5) / _this.svgOverlay.paperScope.view.zoom;
-              } else {
-                path.strokeWidth = path.data.strokeWidth / _this.svgOverlay.paperScope.view.zoom;
-              }
-              //just in case, force the shape to be non hovered
-              var tool = _this.svgOverlay.getTool(path);
-              tool.onHover(false, path, path.strokeWidth);
-            });
-          } else {
-            jQuery.each(paths, function(index, path) {
-              path.data.editable = false;
-            });
-          }
-        });
-        _this.svgOverlay.paperScope.view.draw();
-      }));
-
-      this.eventsSubscriptions.push(_this.eventEmitter.subscribe('refreshOverlay.' + _this.windowId, function (event) {
-        _this.render();
-      }));
-
-      this.eventsSubscriptions.push(this.eventEmitter.subscribe("enableManipulation",function(event, tool){
-        if(tool === 'mirror') {
-          _this.horizontallyFlipped = true;
-        }
-      }));
-      this.eventsSubscriptions.push(this.eventEmitter.subscribe("disableManipulation",function(event, tool){
-        if(tool === 'mirror') {
-          _this.horizontallyFlipped = false;
-        }
-      }));
-    },
-
-    getAnnoFromRegion: function(regionId) {
-      return this.list.filter(function(annotation) {
-        return annotation['@id'] === regionId;
-      });
-    },
-
-    destroy: function () {
-      var _this = this;
-      this.eventsSubscriptions.forEach(function(event){
-        _this.eventEmitter.unsubscribe(event.name,event.handler);
-      });
-      this.osdViewer.removeHandler('close', this._thisDestroy);
-    }
-
-  };
-}(Mirador));
diff --git a/js/src/annotations/osd-svg-ellipse.js b/js/src/annotations/osd-svg-ellipse.js
deleted file mode 100644
index 20ac563cc7319c4eda7a9a7f888128251b1156bb..0000000000000000000000000000000000000000
--- a/js/src/annotations/osd-svg-ellipse.js
+++ /dev/null
@@ -1,440 +0,0 @@
-(function($) {
-  $.Ellipse = function(options) {
-    jQuery.extend(this, {
-      name: 'Ellipse',
-      logoClass: 'radio_button_unchecked',
-      idPrefix: 'ellipse_',
-      tooltip: 'ellipseTooltip'
-    }, options);
-
-    this.init();
-  };
-
-  $.Ellipse.prototype = {
-    init: function () {
-    },
-
-    createShape: function (initialPoint, overlay) {
-      overlay.mode = 'create';
-      var segments = [];
-      // point indexes
-      //     1&2&3
-      //   0   ─   4
-      //     /   \
-      //  9 |     | 5
-      //     \   /
-      //   8   ─   6
-      //       7
-      // points 1 & 2 & 3 are workaround used to draw rotation handle
-      var pixel = 1 / overlay.paperScope.view.zoom;
-      segments.push(new overlay.paperScope.Point(initialPoint.x - 2 * pixel, initialPoint.y - 2 * pixel));
-      segments.push(new overlay.paperScope.Point(initialPoint.x - 1 * pixel, initialPoint.y - (Math.sqrt(2) + 1) * pixel));
-      segments.push(new overlay.paperScope.Point(initialPoint.x - 1 * pixel, initialPoint.y - (Math.sqrt(2) + 1) * pixel));
-      segments.push(new overlay.paperScope.Point(initialPoint.x - 1 * pixel, initialPoint.y - (Math.sqrt(2) + 1) * pixel));
-      segments.push(new overlay.paperScope.Point(initialPoint.x, initialPoint.y - 2 * pixel));
-      segments.push(new overlay.paperScope.Point(initialPoint.x + (Math.sqrt(2) - 1) * pixel, initialPoint.y - 1 * pixel));
-      segments.push(new overlay.paperScope.Point(initialPoint.x, initialPoint.y));
-      segments.push(new overlay.paperScope.Point(initialPoint.x - 1 * pixel, initialPoint.y + (Math.sqrt(2) - 1) * pixel));
-      segments.push(new overlay.paperScope.Point(initialPoint.x - 2 * pixel, initialPoint.y));
-      segments.push(new overlay.paperScope.Point(initialPoint.x - (Math.sqrt(2) + 1) * pixel, initialPoint.y - 1 * pixel));
-      var _this = this;
-      var shape = new overlay.paperScope.Path({
-        segments: segments,
-        name: overlay.getName(_this)
-      });
-      shape.dashArray = overlay.dashArray;
-      shape.data.strokeWidth = overlay.strokeWidth;
-      shape.strokeWidth = shape.data.strokeWidth / overlay.paperScope.view.zoom;
-      shape.strokeColor = overlay.strokeColor;
-      shape.fillColor = overlay.fillColor;
-      shape.fillColor.alpha = overlay.fillColorAlpha;
-      shape.closed = true;
-      shape.data.rotation = 0;
-      overlay.segment = shape.segments[6];
-      this.updateSelection(true, shape, overlay);
-      return shape;
-    },
-
-    updateSelection: function (selected, item, overlay) {
-      if (item._name.toString().indexOf(this.idPrefix) != -1) {
-        if (item.segments.length > 10) {
-          item.removeSegment(10);
-        }
-        item.smooth({from: -7, to: 1});
-        item.selected = selected;
-        item.segments[2].selected = selected;
-        var inHandle = item.segments[7].handleIn.clone();
-        inHandle = inHandle.multiply(-1);
-        var outHandle = item.segments[7].handleOut.clone();
-        outHandle = outHandle.multiply(-1);
-        item.segments[1].handleIn = inHandle;
-        item.segments[1].handleOut = new overlay.paperScope.Point(0, 0);
-        item.segments[2].handleIn = new overlay.paperScope.Point(0, 0);
-        item.segments[2].handleOut = new overlay.paperScope.Point(0, 0);
-        item.segments[3].handleIn = new overlay.paperScope.Point(0, 0);
-        item.segments[3].handleOut = outHandle;
-
-        if (selected) {
-         // item.segments[2].handleOut = new overlay.paperScope.Point(0, 21 / overlay.paperScope.view.zoom);
-         // item.segments[2].data = 'rotation_handle';
-         // item.segments[2].handleOut = item.segments[2].handleOut.rotate(item.data.rotation, item.segments[2]);
-          var point = item.segments[2].point.clone();
-          point = point.add(item.segments[2].handleOut);
-          if (item.contains(point)) {
-            item.segments[2].handleOut = item.segments[2].handleOut.rotate(180, item.segments[2]);
-          }
-
-          if (!item.data.deleteIcon) {
-            item.data.deleteIcon = new overlay.annotationUtils.DeleteActionIcon(overlay.paperScope, {
-              name: item.name + this.partOfPrefix + 'delete',
-              fillColor: item.selectedColor
-            });
-
-            item.data.deleteIcon.addData('parent', item);
-            item.data.deleteIcon.addData('pivot',item.segments[7].point);
-            item.data.deleteIcon.addData('type', 'deleteIcon');
-            item.data.deleteIcon.addData('self', item.data.deleteIcon);
-
-            item.data.deleteIcon.setPosition(item.data.deleteIcon.getData('pivot').add(new overlay.paperScope.Point(0, 21 / overlay.paperScope.view.zoom).rotate(item.data.rotation)));
-            item.data.deleteIcon.setOnMouseDownListener(overlay);
-
-          }
-
-          if (!item.data.rotationIcon) {
-
-            item.data.rotationIcon = new overlay.annotationUtils.RotationIcon(overlay.paperScope, {
-              name: item.name + this.partOfPrefix + 'rotation',
-              fillColor: item.selectedColor
-            });
-
-            item.data.rotationIcon.addData('pivot',item.segments[3].point);
-            item.data.rotationIcon.addData('type', 'rotationIcon');
-            item.data.rotationIcon.addData('self', item.data.rotationIcon);
-            item.data.rotationIcon.addData('parent', item);
-
-            item.data.rotationIcon.setPosition(item.data.rotationIcon.getData('pivot').add(new overlay.paperScope.Point(0, 21 / overlay.paperScope.view.zoom).rotate(item.data.rotation)));
-
-            item.data.rotationIcon.setOnMouseDownListener(overlay);
-
-          }
-
-          if (!item.data.group) {
-            item.data.group = new overlay.annotationUtils.Group(overlay.paperScope,[item,item.data.deleteIcon.getItem(),item.data.deleteIcon.getMask().getItem(),item.data.rotationIcon.getItem(),item.data.rotationIcon.getMask().getItem()]);
-          }
-
-          if(item.contains(item.data.deleteIcon.getItem().position)){
-            item.data.deleteIcon.setPosition(item.data.deleteIcon.getData('pivot').add(new overlay.paperScope.Point(0, 21 / overlay.paperScope.view.zoom).rotate(item.data.rotation)));
-            item.data.deleteIcon.rotate(180,item.data.deleteIcon.getData('pivot'));
-            item.data.deleteIcon.rotate(180);
-          }
-
-          if(item.contains(item.data.rotationIcon.getItem().position)){
-            item.data.rotationIcon.setPosition(item.data.rotationIcon.getData('pivot').add(new overlay.paperScope.Point(0, 21 / overlay.paperScope.view.zoom).rotate(item.data.rotation)));
-            item.data.rotationIcon.rotate(180,item.data.rotationIcon.getData('pivot'));
-            item.data.rotationIcon.rotate(180);
-          }
-
-        } else {
-          if(item.data.group){
-            item.data.group.remove();
-            item.data.group = null;
-            overlay.paperScope.project.activeLayer.addChild(item);
-          }
-
-          if(item.data.deleteIcon){
-            item.data.deleteIcon.remove();
-            item.data.deleteIcon = null;
-          }
-
-          if(item.data.rotationIcon){
-            item.data.rotationIcon.remove();
-            item.data.rotationIcon = null;
-          }
-
-          item.segments[2].handleOut = new overlay.paperScope.Point(0, 0);
-        }
-      }
-    },
-
-    onResize:function(item,overlay){
-      if(item._name.toString().indexOf(this.partOfPrefix)!== -1){
-        if(item._name.toString().indexOf('delete') !== -1){
-          item.data.self.setPosition(item.data.self.getData('pivot').add(new overlay.paperScope.Point(0, 21 / overlay.paperScope.view.zoom).rotate(item.data.parent.data.rotation)));
-
-          if(item.data.parent.contains(item.position)){
-            item.data.self.rotate(180,item.data.self.getData('pivot'));
-            item.data.self.rotate(180);
-          }
-
-          item.data.self.resize(24 *  1 / overlay.paperScope.view.zoom);
-        }
-
-        if(item._name.toString().indexOf('rotation') !== -1){
-          item.data.self.setPosition(item.data.self.getData('pivot').add(new overlay.paperScope.Point(0, 21 / overlay.paperScope.view.zoom).rotate(item.data.parent.data.rotation)));
-
-          if(item.data.parent.contains(item.position)){
-            item.data.self.rotate(180,item.data.self.getData('pivot'));
-            item.data.self.rotate(180);
-          }
-
-          item.data.self.resize(16 *  1 / overlay.paperScope.view.zoom);
-        }
-
-      }
-    },
-
-    onHover: function (activate, shape, hoverWidth, hoverColor) {
-      shape.strokeWidth = hoverWidth;
-
-      // shape needs to have hovered styles
-      if (activate && !shape.data.hovered) {
-        shape.data.nonHoverStrokeColor = shape.strokeColor.clone();
-        shape.data.hovered = true;
-        shape.strokeColor = hoverColor;
-      }
-      // shape is not longer hovered
-      if (!activate && shape.data.hovered) {
-        shape.strokeColor = shape.data.nonHoverStrokeColor.clone();
-        delete shape.data.nonHoverStrokeColor;
-        delete shape.data.hovered;
-      }
-    },
-
-    onMouseUp: function (event, overlay) {
-      if (overlay.mode == 'create' && overlay.path) {
-        overlay.onDrawFinish();
-      } else if (overlay.mode === 'translate' || overlay.mode === 'deform' && overlay.path) {
-        overlay.onEditFinish();
-      }
-    },
-
-    translate: function (event, overlay) {
-      for (var i = 0; i < overlay.path.segments.length; i++) {
-        overlay.path.segments[i].point.x += event.delta.x;
-        overlay.path.segments[i].point.y += event.delta.y;
-      }
-
-      overlay.path.data.rotationIcon.translateByXY(event.delta.x, event.delta.y);
-      overlay.path.data.deleteIcon.translateByXY(event.delta.x,event.delta.y);
-    },
-
-    rotate:function(event,overlay){
-      var center = overlay.path.position;
-      var rotation = Math.atan2(event.point.y - center.y + event.delta.y, event.point.x - center.x + event.delta.x) - Math.atan2(event.point.y - center.y, event.point.x - center.x);
-      rotation = rotation * (180 / Math.PI);
-
-
-      overlay.path.data.group.rotate(rotation,overlay.path.position);
-
-      overlay.path.data.deleteIcon.rotate(-rotation);
-      overlay.path.data.rotationIcon.rotate(-rotation);
-
-      overlay.path.data.rotation += rotation;
-    },
-
-    onMouseDrag: function (event, overlay) {
-      if (overlay.mode == 'translate') {
-        this.translate(event, overlay);
-        return;
-      }
-
-      if (overlay.mode === 'rotate') {
-        this.rotate(event, overlay);
-        return;
-      }
-
-      if (overlay.mode == 'create' || overlay.mode == 'deform') {
-        var idx = -1;
-        for (var l = 0; l < overlay.path.segments.length; l++) {
-          if (overlay.path.segments[l] == overlay.segment) {
-            idx = l;
-            break;
-          }
-        }
-
-        var translation = new overlay.paperScope.Point(event.delta.x, event.delta.y);
-        var rot = overlay.path.data.rotation;
-        translation = translation.rotate(-rot);
-        var translationX = new overlay.paperScope.Point(translation.x, 0);
-        translationX = translationX.rotate(rot);
-        var translationY = new overlay.paperScope.Point(0, translation.y);
-        translationY = translationY.rotate(rot);
-        if (idx === 0 || idx === 4 || idx === 6 || idx === 8) {
-          translationX = translationX.multiply(2 / (1 + Math.sqrt(1 / 2)));
-          translationY = translationY.multiply(2 / (1 + Math.sqrt(1 / 2)));
-        }
-        var moveTopSize = idx === 0 || idx === 1 || idx === 2 || idx === 3 || idx === 4;
-        var moveBottomSize = idx === 6 || idx === 7 || idx === 8;
-        var moveRightSize = idx === 4 || idx === 5 || idx === 6;
-        var moveLeftSize = idx === 0 || idx === 8 || idx === 9;
-        if (moveTopSize) {
-          overlay.path.data.rotationIcon.translateByPoint(translationY);
-          overlay.path.segments[1].point = overlay.path.segments[1].point.add(translationY);
-          overlay.path.segments[2].point = overlay.path.segments[2].point.add(translationY);
-          overlay.path.segments[3].point = overlay.path.segments[3].point.add(translationY);
-          var trTop = translationY.clone();
-          trTop = trTop.multiply((1 + Math.sqrt(1 / 2)) / 2);
-          overlay.path.segments[0].point = overlay.path.segments[0].point.add(trTop);
-          overlay.path.segments[4].point = overlay.path.segments[4].point.add(trTop);
-          trTop = trTop.multiply((1 - Math.sqrt(1 / 2)) / (1 + Math.sqrt(1 / 2)));
-          overlay.path.segments[6].point = overlay.path.segments[6].point.add(trTop);
-          overlay.path.segments[8].point = overlay.path.segments[8].point.add(trTop);
-        }
-        if (moveBottomSize) {
-
-          overlay.path.data.deleteIcon.translateByPoint(translationY);
-
-          overlay.path.segments[7].point = overlay.path.segments[7].point.add(translationY);
-          var trBottom = translationY.clone();
-          trBottom = trBottom.multiply((1 + Math.sqrt(1 / 2)) / 2);
-          overlay.path.segments[6].point = overlay.path.segments[6].point.add(trBottom);
-          overlay.path.segments[8].point = overlay.path.segments[8].point.add(trBottom);
-          trBottom = trBottom.multiply((1 - Math.sqrt(1 / 2)) / (1 + Math.sqrt(1 / 2)));
-          overlay.path.segments[0].point = overlay.path.segments[0].point.add(trBottom);
-          overlay.path.segments[4].point = overlay.path.segments[4].point.add(trBottom);
-        }
-        if (moveTopSize || moveBottomSize) {
-          translationY = translationY.multiply(0.5);
-          overlay.path.segments[5].point = overlay.path.segments[5].point.add(translationY);
-          overlay.path.segments[9].point = overlay.path.segments[9].point.add(translationY);
-        }
-        if (moveRightSize) {
-          overlay.path.segments[5].point = overlay.path.segments[5].point.add(translationX);
-          var trRight = translationX.clone();
-          trRight = trRight.multiply((1 + Math.sqrt(1 / 2)) / 2);
-          overlay.path.segments[4].point = overlay.path.segments[4].point.add(trRight);
-          overlay.path.segments[6].point = overlay.path.segments[6].point.add(trRight);
-          trRight = trRight.multiply((1 - Math.sqrt(1 / 2)) / (1 + Math.sqrt(1 / 2)));
-          overlay.path.segments[0].point = overlay.path.segments[0].point.add(trRight);
-          overlay.path.segments[8].point = overlay.path.segments[8].point.add(trRight);
-        }
-        if (moveLeftSize) {
-          overlay.path.segments[9].point = overlay.path.segments[9].point.add(translationX);
-          var trLeft = translationX.clone();
-          trLeft = trLeft.multiply((1 + Math.sqrt(1 / 2)) / 2);
-          overlay.path.segments[0].point = overlay.path.segments[0].point.add(trLeft);
-          overlay.path.segments[8].point = overlay.path.segments[8].point.add(trLeft);
-          trLeft = trLeft.multiply((1 - Math.sqrt(1 / 2)) / (1 + Math.sqrt(1 / 2)));
-          overlay.path.segments[4].point = overlay.path.segments[4].point.add(trLeft);
-          overlay.path.segments[6].point = overlay.path.segments[6].point.add(trLeft);
-        }
-        if (moveRightSize || moveLeftSize) {
-          translationX = translationX.multiply(0.5);
-          overlay.path.data.rotationIcon.translateByPoint(translationX);
-          overlay.path.data.deleteIcon.translateByPoint(translationX);
-          overlay.path.segments[1].point = overlay.path.segments[1].point.add(translationX);
-          overlay.path.segments[2].point = overlay.path.segments[2].point.add(translationX);
-          overlay.path.segments[3].point = overlay.path.segments[3].point.add(translationX);
-          overlay.path.segments[7].point = overlay.path.segments[7].point.add(translationX);
-        }
-        var point = overlay.path.segments[2].point.clone();
-        point = point.add(overlay.path.segments[2].handleOut);
-        if (overlay.path.contains(point)) {
-          overlay.path.segments[2].handleOut = overlay.path.segments[2].handleOut.rotate(180, overlay.path.segments[2]);
-          //overlay.path.data.rotationIcon.translateByPoint(overlay.path.segments[2].handleOut.multiply(2));
-        }
-
-        if(overlay.path.contains(overlay.path.data.deleteIcon.getItem().position)){
-          overlay.path.data.deleteIcon.rotate(180,overlay.path.data.deleteIcon.getData('pivot'));
-          overlay.path.data.deleteIcon.rotate(180);
-        }
-
-        if(overlay.path.contains(overlay.path.data.rotationIcon.getItem().position)){
-          overlay.path.data.rotationIcon.rotate(180,overlay.path.data.rotationIcon.getData('pivot'));
-          overlay.path.data.rotationIcon.rotate(180);
-        }
-
-        if (overlay.path.segments.length > 10) {
-          overlay.path.removeSegment(10);
-        }
-        overlay.path.smooth({from: -7, to: 1});
-      }
-    },
-
-    onMouseMove: function(event, overlay) {
-      var hitResult = overlay.paperScope.project.hitTest(event.point, overlay.hitOptions);
-      if(hitResult && hitResult.item._name.toString().indexOf(this.idPrefix)!==-1){
-        if(!overlay.disabled && overlay.hoveredPath && hitResult.item._name.toString().indexOf(overlay.hoveredPath._name.toString()) !==-1){
-          this.setCursor(hitResult,overlay);
-        }
-      }
-    },
-
-
-    setCursor:function(hitResult,overlay){
-
-      if(hitResult.type === 'stroke' || hitResult.type === 'handle-in' || hitResult.type === 'handle-out'){
-        jQuery(overlay.viewer.canvas).css('cursor','move');
-        return;
-      }
-
-      // mouse over attached icon
-      if(hitResult.type === 'pixel'){
-        jQuery(overlay.viewer.canvas).css('cursor', 'pointer');
-        return;
-      }
-
-      if(hitResult.segment){
-        jQuery(overlay.viewer.canvas).css('cursor','pointer');
-      }
-
-    },
-
-    onMouseDown: function(event, overlay) {
-      var hitResult = overlay.paperScope.project.hitTest(event.point, overlay.hitOptions);
-      if (hitResult && hitResult.item._name.toString().indexOf(this.idPrefix) != -1) {
-        if (overlay.mode != 'deform' && overlay.mode != 'translate' && overlay.mode != 'create') {
-
-          if (hitResult.item._name.toString().indexOf(this.partOfPrefix) !== -1) {
-            hitResult.item.data.self.onMouseDown();
-            if(overlay.mode === 'rotate'){
-              overlay.path = hitResult.item.data.self.getItem().data.parent;
-            }
-            return;
-          }
-
-          if (hitResult.type === 'segment') {
-            overlay.mode = 'deform';
-            overlay.segment = null;
-            overlay.path = null;
-            this.setCursor(hitResult, overlay);
-          }
-
-          if (hitResult.type === 'stroke' || hitResult.type === 'handle-in' || hitResult.type === 'handle-out') {
-            overlay.mode = 'translate';
-            overlay.segment = null;
-            overlay.path = null;
-          }
-        }
-      }
-
-      if (overlay.mode === 'translate') {
-        if (overlay.path) {
-          overlay.segment = null;
-          overlay.path = null;
-          overlay.mode = '';
-        } else {
-          overlay.path = hitResult.item;
-        }
-        return;
-      }
-
-      if (overlay.mode === 'deform') {
-        if (overlay.path) {
-          overlay.segment = null;
-          overlay.path = null;
-          overlay.mode = '';
-        } else {
-          overlay.path = hitResult.item;
-          overlay.segment = hitResult.segment;
-        }
-        return;
-      }
-      overlay.path = this.createShape(event.point, overlay);
-    },
-
-    onDoubleClick: function(event, overlay) {
-      // Empty block.
-    }
-  };
-}(Mirador));
diff --git a/js/src/annotations/osd-svg-freehand.js b/js/src/annotations/osd-svg-freehand.js
deleted file mode 100644
index 571a50a3fee771f79afe559885f59f570eb0ae4b..0000000000000000000000000000000000000000
--- a/js/src/annotations/osd-svg-freehand.js
+++ /dev/null
@@ -1,256 +0,0 @@
-(function($) {
-  $.Freehand = function(options) {
-    jQuery.extend(this, {
-      name: 'Freehand',
-      logoClass: 'gesture',
-      idPrefix: 'smooth_path_',
-      tooltip: 'freehandTooltip'
-    }, options);
-
-    this.init();
-  };
-
-  $.Freehand.prototype = {
-    init: function() {
-    },
-
-    createShape: function(initialPoint, overlay) {
-      overlay.mode = 'create';
-      var _this = this;
-      var shape = new overlay.paperScope.Path({
-        segments: [initialPoint],
-        dashArray: overlay.dashArray,
-        strokeColor: overlay.strokeColor,
-        name: overlay.getName(_this)
-      });
-      shape.data.strokeWidth = overlay.strokeWidth;
-      shape.strokeWidth = shape.data.strokeWidth / overlay.paperScope.view.zoom;
-      return shape;
-    },
-
-    updateSelection: function(selected, item, overlay) {
-      if (item._name.toString().indexOf(this.idPrefix) !== -1) {
-
-        item.selected = selected;
-
-        if(selected){
-          if (!item.data.deleteIcon) {
-            item.data.deleteIcon = new overlay.annotationUtils.DeleteActionIcon(overlay.paperScope, {
-              name: item.name + this.partOfPrefix + 'delete',
-              fillColor:item.selectedColor
-            });
-            item.data.deleteIcon.addData('pivot',new overlay.paperScope.Point(this.getPivotPointForDeleteIcon(item)));
-            item.data.deleteIcon.addData('type', 'deleteIcon');
-            item.data.deleteIcon.addData('self', item.data.deleteIcon);
-            item.data.deleteIcon.addData('parent', item);
-
-            item.data.deleteIcon.setPosition(item.data.deleteIcon.getData('pivot').add(new overlay.paperScope.Point(0, 21 / overlay.paperScope.view.zoom)));
-            item.data.deleteIcon.setOnMouseDownListener(overlay);
-          }
-        }else{
-
-          if(item.data.deleteIcon){
-            item.data.deleteIcon.remove();
-            item.data.deleteIcon = null;
-          }
-        }
-      }
-    },
-
-    onResize:function(item,overlay){
-      if(item._name.toString().indexOf(this.partOfPrefix)!== -1){
-        if(item._name.toString().indexOf('delete') !==-1){
-
-          item.data.self.setPosition(item.data.self.getData('pivot').add(new overlay.paperScope.Point(0, 21 / overlay.paperScope.view.zoom)));
-          item.data.self.resize(24 *  1 / overlay.paperScope.view.zoom);
-        }
-      }
-    },
-
-
-    getPivotPointForDeleteIcon:function(item){
-      var points = [];
-
-      for(var i=0;i<item.segments.length;i++){
-        points.push(item.segments[i].point);
-      }
-
-      return {
-        x:this.getGeometricCenterOfPoints(points).x,
-        y:this.getLowestPoint(points).y
-      };
-    },
-
-    getLowestPoint: function (points) {
-      var lx = 0;
-      var ly = 0;
-
-      for (var i = 0; i < points.length; i++) {
-        lx = Math.max(lx, points[i].x);
-        ly = Math.max(ly, points[i].y);
-      }
-
-      return {
-        x: lx,
-        y: ly
-      };
-    },
-
-    getGeometricCenterOfPoints: function (points) {
-      var cx = 0;
-      var cy = 0;
-      for(var i= 0;i<points.length;i++){
-        cx +=points[i].x;
-        cy +=points[i].y;
-      }
-
-      return {
-        x:cx/points.length,
-        y:cy/points.length
-      };
-    },
-
-    onHover:function(activate,shape,hoverWidth,hoverColor){
-      shape.strokeWidth = hoverWidth;
-
-      // shape needs to have hovered styles
-      if(activate && !shape.data.hovered){
-        shape.data.nonHoverStrokeColor = shape.strokeColor.clone();
-        shape.data.hovered = true;
-        shape.strokeColor = hoverColor;
-      }
-      // shape is not longer hovered
-      if(!activate && shape.data.hovered){
-        shape.strokeColor = shape.data.nonHoverStrokeColor.clone();
-        delete shape.data.nonHoverStrokeColor;
-        delete shape.data.hovered;
-      }
-    },
-
-    onMouseUp: function(event, overlay) {
-
-      if(overlay.mode === 'create'){
-        if (overlay.path) {
-          overlay.path.simplify();
-          overlay.onDrawFinish();
-        }
-      }
-    },
-
-    onMouseDrag: function(event, overlay) {
-      if (overlay.mode === 'deform') {
-        if (overlay.segment) {
-          overlay.segment.point.x += event.delta.x;
-          overlay.segment.point.y += event.delta.y;
-          overlay.path.smooth();
-
-          var path = overlay.segment.path;
-          path.data.deleteIcon.addData('pivot',new overlay.paperScope.Point(this.getPivotPointForDeleteIcon(path)));
-          path.data.deleteIcon.setPosition(path.data.deleteIcon.getData('pivot').add(new overlay.paperScope.Point(0, 21 / overlay.paperScope.view.zoom)));
-
-        }
-
-        return;
-      }
-
-      if (overlay.mode === 'translate') {
-        if (overlay.path) {
-          overlay.path.position.x += event.delta.x;
-          overlay.path.position.y += event.delta.y;
-          if (overlay.path.data.deleteIcon) {
-            overlay.path.data.deleteIcon.translateByXY(event.delta.x, event.delta.y);
-          }
-        }
-        return;
-      }
-
-      if (overlay.mode === 'create') {
-        overlay.path.add(event.point);
-
-        if(overlay.path.data.deleteIcon){
-          overlay.path.data.deleteIcon.addData('pivot',new overlay.paperScope.Point(this.getPivotPointForDeleteIcon(overlay.path)));
-          overlay.path.data.deleteIcon.setPosition(overlay.path.data.deleteIcon.getData('pivot').add(new overlay.paperScope.Point(0, 21 / overlay.paperScope.view.zoom)));
-        }
-       }
-    },
-
-    onMouseMove: function(event, overlay) {
-      var hitResult = overlay.paperScope.project.hitTest(event.point, overlay.hitOptions);
-      if(hitResult && hitResult.item._name.toString().indexOf(this.idPrefix)!==-1){
-        if(!overlay.disabled && overlay.hoveredPath && hitResult.item._name.toString().indexOf(overlay.hoveredPath._name.toString()) !==-1){
-          this.setCursor(hitResult,overlay);
-        }
-      }
-    },
-
-    setCursor:function(hitResult,overlay){
-      if(hitResult.type === 'stroke'){
-        jQuery(overlay.viewer.canvas).css('cursor','move');
-        return;
-      }
-      if(hitResult.type === 'handle-in' || hitResult.type === 'handle-out'){
-        jQuery(overlay.viewer.canvas).css('cursor','pointer');
-        return;
-      }
-
-      // mouse over attached icon
-      if(hitResult.type === 'pixel'){
-        jQuery(overlay.viewer.canvas).css('cursor', 'pointer');
-        return;
-      }
-
-      if(hitResult.segment){
-        jQuery(overlay.viewer.canvas).css('cursor','pointer');
-      }
-
-    },
-
-    onMouseDown: function(event, overlay) {
-      var hitResult = overlay.paperScope.project.hitTest(event.point, overlay.hitOptions);
-      if (hitResult && hitResult.item._name.toString().indexOf(this.idPrefix) != -1) {
-        if (hitResult.item._name.toString().indexOf(this.partOfPrefix) !== -1) {
-          hitResult.item.data.self.onMouseDown();
-          return;
-        }
-
-        if (overlay.mode !== 'create') {
-
-          if (hitResult.type === 'stroke') {
-            overlay.mode = 'translate';
-            overlay.path = hitResult.item;
-            return;
-          }
-
-          if (hitResult.type === 'segment' || hitResult.type === 'handle-out' || hitResult.type === 'handle-in') {
-            // When shift is being pressed and segment point selected it deletes
-            if(event.modifiers.shift){
-              if(hitResult.item.segments.length > 2){
-                hitResult.segment.remove();
-                return;
-              }
-
-            }
-            overlay.mode = 'deform';
-            overlay.segment = hitResult.segment;
-            overlay.path = hitResult.item;
-            return;
-          }
-        }
-      } else {
-        if(overlay.mode !=='create'){
-          overlay.mode = '';
-        }
-      }
-
-
-      if (overlay.mode === '') {
-        overlay.path = this.createShape(event.point, overlay);
-        return;
-      }
-    },
-
-    onDoubleClick: function(event, overlay) {
-      // Empty block.
-    }
-  };
-}(Mirador));
diff --git a/js/src/annotations/osd-svg-overlay.js b/js/src/annotations/osd-svg-overlay.js
deleted file mode 100644
index 336d48e4607cdfc1b6cbb08c3e723b4ce6ce943e..0000000000000000000000000000000000000000
--- a/js/src/annotations/osd-svg-overlay.js
+++ /dev/null
@@ -1,1151 +0,0 @@
-(function($) {
-  $.getTools = function(options) {
-    if (this.svgOverlayTools) {
-      return this.svgOverlayTools;
-    }
-    options.partOfPrefix = '_partOf';
-    this.svgOverlayTools = [new $.Rectangle(options), new $.Freehand(options), new $.Polygon(options), new $.Ellipse(options), new $.Pin(options)];
-    return this.svgOverlayTools;
-  };
-
-  OpenSeadragon.Viewer.prototype.svgOverlay = function(osdViewerId, windowId, state, eventEmitter) {
-    return new $.Overlay(this, osdViewerId, windowId, state, eventEmitter);
-  };
-
-  // Wat? TODO:...
-  var FILL_COLOR_ALPHA_WORKAROUND = 0.00001;
-
-  $.Overlay = function(viewer, osdViewerId, windowId, state, eventEmitter) {
-    var drawingToolsSettings = state.getStateProperty('drawingToolsSettings');
-    this.drawingToolsSettings = drawingToolsSettings;
-    var availableAnnotationDrawingTools = state.getStateProperty('availableAnnotationDrawingTools');
-    var availableExternalCommentsPanel = state.getStateProperty('availableExternalCommentsPanel');
-    jQuery.extend(this, {
-      disabled: true,
-      inEditOrCreateMode: false,
-      osdViewerId: osdViewerId,
-      windowId: windowId,
-      commentPanel: null,
-      mode: '', // Possible modes: 'create', 'translate', 'deform','rotate', 'edit' and '' as default.
-      draftPaths: [],
-      editedPaths: [],
-      hoveredPath: null,
-      path: null,
-      segment: null,
-      latestMouseDownTime: -1,
-      doubleClickReactionTime: drawingToolsSettings.doubleClickReactionTime,
-      availableAnnotationDrawingTools: availableAnnotationDrawingTools,
-      availableExternalCommentsPanel: availableExternalCommentsPanel,
-      dashArray: [],
-      strokeWidth: 1,
-      fixedShapeSize: drawingToolsSettings.fixedShapeSize,
-      selectedColor: drawingToolsSettings.selectedColor || '#004c66',
-      shapeHandleSize:drawingToolsSettings.shapeHandleSize,
-      partOfPrefix:'_partOf',
-      hitOptions: {
-        handles: true,
-        stroke: true,
-        segments: true,
-        tolerance: 5
-      }
-    });
-
-    this.tools = $.getTools(drawingToolsSettings);
-    this.currentTool = null;
-    // Default colors.
-    this.dashArray = [];
-    this.strokeWidth = 1;
-    this.strokeColor = drawingToolsSettings.strokeColor;
-    this.fillColor = drawingToolsSettings.fillColor;
-    this.fillColorAlpha = drawingToolsSettings.fillColorAlpha;
-    this.viewer = viewer;
-    this.canvas = document.createElement('canvas');
-    // workaround to remove focus from editor
-    jQuery(this.canvas).attr('tabindex', '0').mousedown(function(){ jQuery(this).focus();});
-    this.canvas.id = 'draw_canvas_' + this.windowId;
-    // Drawing of overlay border during development.
-    // this.canvas.style.border = '1px solid yellow';
-    this.viewer.canvas.appendChild(this.canvas);
-
-    var _this = this;
-    this.slotWindowElement = state.getWindowElement(this.windowId);
-    this.state = state;
-    this.eventEmitter = eventEmitter;
-    this.eventsSubscriptions = [];
-
-    this.horizontallyFlipped = false;
-
-    this.resize();
-    this.show();
-    this.init();
-  };
-
-  $.Overlay.prototype = {
-    init: function() {
-      // Initialization of Paper.js overlay.
-      var _this = this;
-      this.lastAngle = 0;
-      this.paperScope = new paper.PaperScope();
-      this.paperScope.setup('draw_canvas_' + _this.windowId);
-      this.paperScope.activate();
-      this.paperScope.project.options.handleSize = _this.state.getStateProperty('shapeHandleSize');
-      jQuery(_this.canvas).attr('keepalive', 'true');
-      this.annotationUtils = new $.AnnotationUtils();
-      this.paperScope.view.onFrame = function(event) {
-        if (_this.paperScope.snapPoint) {
-          _this.paperScope.snapPoint.remove();
-          _this.paperScope.snapPoint = null;
-        }
-        if (_this.path && !_this.path.closed && _this.cursorLocation && _this.currentTool && _this.currentTool.idPrefix.indexOf('rough_path_') != -1) {
-          var distanceToFirst = _this.path.segments[0].point.getDistance(_this.cursorLocation);
-          if (_this.path.segments.length > 1 && distanceToFirst < _this.hitOptions.tolerance) {
-            _this.paperScope.snapPoint = new _this.paperScope.Path.Circle({
-              name: 'snapPoint',
-              center: _this.path.segments[0].point,
-              radius: _this.hitOptions.tolerance / _this.paperScope.view.zoom,
-              fillColor: _this.path.strokeColor,
-              strokeColor: _this.path.strokeColor,
-              strokeWidth: _this.path.strokeWidth
-            });
-          }
-        }
-      };
-
-      // Key for saving mouse tool as data attribute
-      // TODO: It seems its main use is for destroy the old paperjs mouse tool
-      // when a new Overlay is instantiated. Maybe a better scheme can be
-      // devised in the future?
-      this.mouseToolKey = 'draw_canvas_' + _this.windowId;
-
-      this.setMouseTool();
-      this.listenForActions();
-    },
-
-    /**
-     * Adds a Tool that handles mouse events for the paperjs scope.
-     */
-    setMouseTool: function() {
-      this.removeMouseTool();
-      this.paperScope.activate();
-
-      this.mouseTool = new this.paperScope.Tool();
-      this.mouseTool.overlay = this;
-      this.mouseTool.onMouseUp = this.onMouseUp;
-      this.mouseTool.onMouseDrag = this.onMouseDrag;
-      this.mouseTool.onMouseMove = this.onMouseMove;
-      this.mouseTool.onMouseDown = this.onMouseDown;
-      this.mouseTool.onDoubleClick = this.onDoubleClick;
-      this.mouseTool.onKeyDown = function(event){};
-    },
-
-    /**
-     * Removes the mouse Tool from the paperjs scope.
-     */
-    removeMouseTool: function() {
-      if (this.mouseTool) {
-        this.mouseTool.remove();
-      }
-    },
-
-    handleDeleteShapeEvent: function (event, shape) {
-      var _this = this;
-      new $.DialogBuilder(this.slotWindowElement).dialog({
-        message: i18next.t('deleteShape'),
-        closeButton: false,
-        className: 'mirador-dialog',
-        buttons: {
-          'no': {
-            label: i18next.t('no'),
-            className: 'btn-default',
-            callback: function() {
-              return;
-            }
-          },
-          'yes': {
-            label: i18next.t('yes'),
-            className: 'btn-primary',
-            callback: function() {
-              _this.deleteShape(shape);
-            }
-          }
-        }
-      });
-    },
-
-    listenForActions: function() {
-      var _this = this;
-
-      this._thisResize = function(){
-        _this.resize();
-      };
-      this._thisRotate = function(event) {
-        _this.rotate(event);
-        _this.resize();
-      };
-      this.viewer.addHandler('animation', this._thisResize);
-      this.viewer.addHandler('open', this._thisResize);
-      this.viewer.addHandler('animation-finish', this._thisResize);
-      this.viewer.addHandler('update-viewport', this._thisResize);
-      this.viewer.addHandler('resize',this._thisResize);
-      this.viewer.addHandler('rotate', this._thisRotate);
-      this.viewer.addHandler('constrain',this._thisResize);
-
-      this._thisDestroy = function(){
-        _this.destroy();
-      };
-
-      this.viewer.addHandler('close',this._thisDestroy);
-
-      this.eventsSubscriptions.push(this.eventEmitter.subscribe('DESTROY_EVENTS.'+this.windowId, function(event) {
-        _this.destroy();
-      }));
-
-      this.eventsSubscriptions.push(_this.eventEmitter.subscribe('toggleDrawingTool.' + _this.windowId, function(event, tool) {
-        //qtip code should NOT be here
-        if (_this.disabled) {
-        //   jQuery('.qtip' + _this.windowId).qtip('hide');
-          return;
-        }
-        // jQuery('#' + _this.osdViewerId).parents('.window').find('.qtip-viewer').hide();
-        _this.currentTool = null;
-        _this.mode = '';
-        for (var i = 0; i < _this.tools.length; i++) {
-          if (_this.tools[i].logoClass === tool) {
-            _this.currentTool = _this.tools[i];
-          }
-        }
-      }));
-
-      var _thisHandleDeleteShapeEvent = function(event,shape){
-        _this.handleDeleteShapeEvent(event,shape);
-      };
-      this.eventsSubscriptions.push(_this.eventEmitter.subscribe('deleteShape.' + _this.windowId, _thisHandleDeleteShapeEvent));
-
-      this.eventsSubscriptions.push(_this.eventEmitter.subscribe('changeBorderColor.' + _this.windowId, function(event, color) {
-        _this.strokeColor = color;
-        if (_this.hoveredPath) {
-          _this.hoveredPath.strokeColor = color;
-          _this.paperScope.view.draw();
-        }
-      }));
-
-      this.eventsSubscriptions.push(_this.eventEmitter.subscribe('changeFillColor.' + _this.windowId, function(event, color, alpha) {
-        _this.fillColor = color;
-        if(alpha === 0){
-          alpha = FILL_COLOR_ALPHA_WORKAROUND;
-        }
-        _this.fillColorAlpha = alpha;
-        if (_this.hoveredPath && _this.hoveredPath.closed) {
-          _this.hoveredPath.fillColor = color;
-          _this.hoveredPath.fillColor.alpha = alpha;
-          _this.paperScope.view.draw();
-        }
-      }));
-
-      this.eventsSubscriptions.push(_this.eventEmitter.subscribe('toggleBorderType.' + _this.windowId, function (event, type) {
-        if (type == 'solid') {
-          _this.dashArray = [];
-          _this.strokeWidth = 1;
-        } else if (type == 'thick') {
-          _this.dashArray = [];
-          _this.strokeWidth = 3;
-        } else if (type == 'thickest') {
-          _this.dashArray = [];
-          _this.strokeWidth = 6;
-        } else if (type == 'dashed') {
-          _this.dashArray = [5, 5];
-          _this.strokeWidth = 1;
-        } else if (type == 'dotdashed') {
-          _this.dashArray = [2, 5, 7, 5];
-          _this.strokeWidth = 1;
-        }
-        if (_this.hoveredPath) {
-          _this.hoveredPath.dashArray = _this.dashArray;
-          _this.hoveredPath.strokeWidth = _this.strokeWidth;
-          _this.paperScope.view.draw();
-        }
-      }));
-
-      this.eventsSubscriptions.push(_this.eventEmitter.subscribe('annotationEditSave.'+_this.windowId,function(event,oaAnno){
-        var onAnnotationSaved = jQuery.Deferred();
-        if (!_this.draftPaths.length) {
-            new $.DialogBuilder(_this.slotWindowElement).dialog({
-              message: i18next.t('editModalSaveAnnotationWithNoShapesMsg'),
-              closeButton: false,
-              className: 'mirador-dialog',
-              buttons: {
-                success: {
-                  label: i18next.t('editModalBtnSaveWithoutShapes'),
-                  className: 'btn-success',
-                  callback: function () {
-                    oaAnno.on = {
-                      "@type": "oa:SpecificResource",
-                      "full": _this.state.getWindowObjectById(_this.windowId).canvasID
-                    };
-                    //save to endpoint
-                    _this.eventEmitter.publish('annotationUpdated.' + _this.windowId, [oaAnno]);
-                    onAnnotationSaved.resolve();
-                  }
-                },
-                danger: {
-                  label: i18next.t('editModalBtnDeleteAnnotation'),
-                  className: 'btn-danger',
-                  callback: function () {
-                    _this.eventEmitter.publish('annotationDeleted.' + _this.windowId, [oaAnno['@id']]);
-                    onAnnotationSaved.resolve();
-                  }
-                },
-                main: {
-                  label: i18next.t('cancel'),
-                  className: 'btn-default',
-                  callback: function () {
-                    onAnnotationSaved.reject();
-                  }
-                }
-              }
-            });
-        } else {
-          var writeStrategy = new $.MiradorDualStrategy();
-          writeStrategy.buildAnnotation({
-            annotation: oaAnno,
-            window: _this.state.getWindowObjectById(_this.windowId),
-            overlay: _this
-          });
-          //save to endpoint
-          _this.eventEmitter.publish('annotationUpdated.' + _this.windowId, [oaAnno]);
-          onAnnotationSaved.resolve();
-        }
-
-        jQuery.when(onAnnotationSaved.promise()).then(function(){
-          _this.eventEmitter.publish('annotationEditSaveSuccessful.'+_this.windowId);
-          _this.eventEmitter.publish('SET_ANNOTATION_EDITING.' + _this.windowId, {
-            "annotationId" : oaAnno['@id'],
-            "isEditable" : false,
-            "tooltip" : _this
-          });
-          // return to pointer mode
-          _this.inEditOrCreateMode = false;
-          _this.eventEmitter.publish('SET_STATE_MACHINE_POINTER.' + _this.windowId);
-
-        },function(){
-          // confirmation rejected don't do anything
-        });
-
-
-      }));
-
-      this.eventsSubscriptions.push(_this.eventEmitter.subscribe('annotationEditCancel.'+_this.windowId,function(event,id){
-
-        _this.eventEmitter.publish('SET_ANNOTATION_EDITING.' + _this.windowId, {
-          "annotationId" : id,
-          "isEditable" : false,
-          "tooltip" : _this.annoTooltip // whats the point of this? maybe when we add confirm for cancel?
-        });
-        _this.inEditOrCreateMode = false;
-        // return to pointer mode
-        _this.eventEmitter.publish('SET_STATE_MACHINE_POINTER.' +_this.windowId);
-
-      }));
-
-      this.eventsSubscriptions.push(_this.eventEmitter.subscribe('clearDraftPaths.'+_this.windowId,function(){
-        _this.clearDraftData();
-      }));
-
-      this.eventsSubscriptions.push(_this.eventEmitter.subscribe('onAnnotationCreated.'+_this.windowId,function(event,oaAnno){
-        //should remove the styles added for newly created annotation
-        for(var i=0;i<_this.draftPaths.length;i++){
-          if(_this.draftPaths[i].data && _this.draftPaths[i].data.newlyCreated){
-            _this.draftPaths[i].strokeWidth = _this.draftPaths[i].data.strokeWidth; // TODO: removed newlyCreatedStrokeFactor stuff here
-            delete _this.draftPaths[i].data.newlyCreated;
-            delete _this.draftPaths[i].data.newlyCreatedStrokeFactor;
-          }
-        }
-
-        var writeStrategy = new $.MiradorDualStrategy();
-        writeStrategy.buildAnnotation({
-          annotation: oaAnno,
-          window: _this.state.getWindowObjectById(_this.windowId),
-          overlay: _this
-        });
-        //save to endpoint
-        _this.eventEmitter.publish('annotationCreated.' + _this.windowId, [oaAnno, function() {
-          // stuff that needs to be called after the annotation has been created on the backend
-          // return to pointer mode
-          _this.inEditOrCreateMode = false;
-          _this.eventEmitter.publish('SET_STATE_MACHINE_POINTER.' + _this.windowId);
-
-          //reenable viewer tooltips
-          _this.eventEmitter.publish('enableTooltips.' + _this.windowId);
-
-          _this.clearDraftData();
-          _this.annoTooltip = null;
-          _this.annoEditorVisible = false;
-        }]);
-      }));
-
-      this.eventsSubscriptions.push(_this.eventEmitter.subscribe('onAnnotationCreatedCanceled.'+_this.windowId,function(event,cancelCallback,immediate){
-        var cancel = function(){
-          _this.inEditOrCreateMode = false;
-          _this.eventEmitter.publish('SET_STATE_MACHINE_POINTER.' + _this.windowId);
-
-          _this.clearDraftData();
-          _this.annoTooltip = null;
-          _this.annoEditorVisible = false;
-        };
-        if (!immediate) {
-          new $.DialogBuilder(_this.slotWindowElement).dialog({
-            message: i18next.t('cancelAnnotation'),
-            closeButton: false,
-            className: 'mirador-dialog',
-            buttons: {
-              'no': {
-                label: i18next.t('no'),
-                className: 'btn-default',
-                callback: function() {
-                  return;
-                }
-              },
-              'yes': {
-                label: i18next.t('yes'),
-                className: 'btn-primary',
-                callback: function() {
-                  cancel();
-                  if (cancelCallback) {
-                    cancelCallback();
-                  }
-                }
-              }
-            }
-          });
-        } else {
-          cancel();
-        }
-      }));
-
-      this.eventsSubscriptions.push(_this.eventEmitter.subscribe('onAnnotationDeleted.' + _this.windowId, function(event, id, callback) {
-        _this.inEditOrCreateMode = false;
-        _this.eventEmitter.publish('annotationDeleted.' + _this.windowId, [id]);
-        _this.eventEmitter.publish('SET_STATE_MACHINE_POINTER.' + _this.windowId);
-        if (callback) {
-          callback();
-        }
-      }));
-
-      this.eventsSubscriptions.push(this.eventEmitter.subscribe('SET_OVERLAY_TOOLTIP.' + this.windowId, function(event, options) {
-        _this.annoTooltip = options.tooltip;
-        _this.annoEditorVisible = options.visible;
-        _this.draftPaths = options.paths;
-      }));
-
-      this.eventsSubscriptions.push(this.eventEmitter.subscribe('CANCEL_ACTIVE_ANNOTATIONS.' + this.windowId, function(event) {
-        //for now, don't worry about getting user confirmation, just cancel everything
-        _this.clearDraftData();
-        _this.annoTooltip = null;
-        _this.annoEditorVisible = false;
-      }));
-
-      this.eventsSubscriptions.push(this.eventEmitter.subscribe("ANNOTATIONS_LIST_UPDATED",function(event,options){
-        if(options.windowId) {
-          _this.eventEmitter.publish("refreshOverlay." + _this.windowId);
-        }
-      }));
-
-      this.eventsSubscriptions.push(this.eventEmitter.subscribe("enableManipulation",function(event, tool){
-        if(tool === 'mirror') {
-          _this.horizontallyFlipped = true;
-        }
-      }));
-
-      this.eventsSubscriptions.push(this.eventEmitter.subscribe("disableManipulation",function(event, tool){
-        if(tool === 'mirror') {
-          _this.horizontallyFlipped = false;
-        }
-      }));
-    },
-
-    deleteShape:function(shape){
-
-      for(var i=0;i<this.draftPaths.length;i++){
-        if(this.draftPaths[i]._name.toString() === shape._name.toString()){
-          this.draftPaths.splice(i,1);
-          break;
-        }
-      }
-      this.removeFocus();
-      shape.remove();
-    },
-
-    getMousePositionInImage: function(mousePosition) {
-      var _this = this;
-      var originWindow = this.state.getWindowObjectById(this.windowId);
-      var currentCanvasModel = originWindow.canvases[originWindow.canvasID];
-
-      if (mousePosition.x < 0) {
-        mousePosition.x = 0;
-      }
-      if (mousePosition.x > currentCanvasModel.getBounds().width) {
-        mousePosition.x = currentCanvasModel.getBounds().width;
-      }
-      if (mousePosition.y < 0) {
-        mousePosition.y = 0;
-      }
-      if (mousePosition.y > currentCanvasModel.getBounds().height) {
-        mousePosition.y = currentCanvasModel.getBounds().height;
-      }
-      if (this.horizontallyFlipped) {
-        mousePosition.x = currentCanvasModel.getBounds().width - mousePosition.x;
-      }
-      return mousePosition;
-    },
-
-    adjustDeltaForShape: function(lastPoint, currentPoint, delta, bounds) {
-      var originWindow = this.state.getWindowObjectById(this.windowId);
-      var currentCanvasModel = originWindow.canvases[originWindow.canvasID];
-
-      //first check along x axis
-      if (lastPoint.x < currentPoint.x) {
-        //moving to the right, delta should be based on the right most edge
-        if (bounds.x + bounds.width > currentCanvasModel.getBounds().width) {
-          delta.x = currentCanvasModel.getBounds().width - (bounds.x + bounds.width);
-        }
-      } else {
-        //moving to the left, prevent it from going past the left edge.  if it does, use the shapes x value as the delta
-        if (bounds.x < 0) {
-          delta.x = Math.abs(bounds.x);
-        }
-      }
-      if (this.horizontallyFlipped) {
-        delta.x = -delta.x;
-      }
-
-      //check along y axis
-      if (lastPoint.y < currentPoint.y) {
-        // moving to the bottom
-        if (bounds.y + bounds.height > currentCanvasModel.getBounds().height) {
-          delta.y = currentCanvasModel.getBounds().height - (bounds.y + bounds.height);
-        }
-      } else {
-        //moving to the top
-        if (bounds.y < 0) {
-          delta.y = Math.abs(bounds.y);
-        }
-      }
-
-      return delta;
-    },
-
-    onMouseUp: function(event) {
-      if (!this.overlay.disabled) {
-        event.stopPropagation();
-        //jQuery(this.overlay.viewer.canvas).css('cursor','default');
-        // if (this.overlay.mode === 'deform' || this.overlay.mode === 'edit') {
-        //   this.overlay.segment = null;
-        //   this.overlay.()) = null;
-        // }
-        // if (this.overlay.mode != 'create') {
-        //   this.overlay.mode = '';
-        // }
-        if (this.overlay.currentTool) {
-          //we may not currently have a tool if the user is in edit mode and didn't click on an editable shape
-          this.overlay.currentTool.onMouseUp(event, this.overlay);
-        }
-      }
-    },
-
-    onMouseDrag: function(event) {
-      if (!this.overlay.disabled) {
-        event.stopPropagation();
-        if (this.overlay.currentTool) {
-          if (this.overlay.currentTool.name === 'Freehand' && this.overlay.mode === 'create') {
-            //freehand create needs to use mouse position because bounds are not accurate until shape is finished
-            event.point = this.overlay.getMousePositionInImage(event.point);
-            event.delta = event.point - event.lastPoint;
-          } else {
-            if(this.overlay.path){
-              var bounds = this.overlay.path.bounds;
-              // we already have a shape, and we are moving it, need to account for that, rather than mouse position
-              event.delta = this.overlay.adjustDeltaForShape(event.lastPoint, event.point, event.delta, bounds);
-            }
-          }
-          //we may not currently have a tool if the user is in edit mode and didn't click on an editable shape
-          this.overlay.currentTool.onMouseDrag(event, this.overlay);
-        }
-      } else {
-        var absolutePoint = {
-          'x': event.event.clientX,
-          'y': event.event.clientY
-        };
-        this.overlay.eventEmitter.publish('updateTooltips.' + this.overlay.windowId, [event.point, absolutePoint]);
-      }
-      this.overlay.paperScope.view.draw();
-    },
-
-    onMouseMove: function(event) {
-      if (!this.overlay.disabled) {
-        //We are in drawing mode
-        if (this.overlay.paperScope.project.hitTest(event.point, this.overlay.hitOptions)) {
-          this.overlay.eventEmitter.publish('POINTER_CURSOR.' + this.overlay.windowId);
-        } else if (this.overlay.currentTool && !this.overlay.path) {
-          this.overlay.eventEmitter.publish('CROSSHAIR_CURSOR.' + this.overlay.windowId);
-        } else {
-          this.overlay.eventEmitter.publish('DEFAULT_CURSOR.' + this.overlay.windowId);
-        }
-        event.stopPropagation();
-        if (this.overlay.currentTool) {
-          this.overlay.currentTool.onMouseMove(event, this.overlay);
-        }
-      } else {
-        var absolutePoint = {
-          'x': event.event.clientX,
-          'y': event.event.clientY
-        };
-        this.overlay.eventEmitter.publish('updateTooltips.' + this.overlay.windowId, [event.point, absolutePoint]);
-      }
-      this.overlay.paperScope.view.draw();
-    },
-
-    onMouseDown: function(event) {
-      if (this.overlay.disabled) {
-        return;
-      }
-      event.stopPropagation();
-      var date = new Date();
-      var time = date.getTime();
-      if (time - this.overlay.latestMouseDownTime < this.overlay.doubleClickReactionTime) {
-        this.overlay.latestMouseDownTime = time;
-        this.onDoubleClick(event);
-      } else {
-        this.overlay.latestMouseDownTime = time;
-        var hitResult = this.overlay.paperScope.project.hitTest(event.point, this.overlay.hitOptions);
-
-        if (this.overlay.mode !== 'create' && this.overlay.mode !=='') {
-          this.overlay.mode = '';
-          this.overlay.currentTool = null;
-        }
-
-        if (hitResult && this.overlay.mode !== 'create') {
-
-          var overlayEditable = false;
-          if (typeof hitResult.item.data.editable !== 'undefined') {
-            overlayEditable = hitResult.item.data.editable; // TODO should remove this editable variable when persisting the svg (will reduce length of string/memory)
-          }
-          // if item is part of shape it is editable
-          // part of shape items only appear when the shape is selected
-          if (hitResult.item._name.toString().indexOf(this.overlay.partOfPrefix) !== -1) {
-            overlayEditable = true;
-          }
-          if (!overlayEditable) {
-            return;
-          }
-
-        }
-
-        if (hitResult && (!this.overlay.currentTool || (hitResult.item._name.toString().indexOf(this.overlay.currentTool.idPrefix) === -1 && this.overlay.mode === ''))) {
-          var prefix = hitResult.item._name.toString();
-          prefix = prefix.substring(0, prefix.indexOf('_') + 1);
-
-          // nasty workaround some names contain `_` inside their name
-          var longPrefix = hitResult.item._name.toString().split('_');
-
-          longPrefix = longPrefix[0] + '_' + longPrefix[1] + '_';
-
-          for (var j = 0; j < this.overlay.tools.length; j++) {
-
-            if (this.overlay.tools[j].idPrefix === prefix || this.overlay.tools[j].idPrefix === longPrefix) {
-              this.overlay.eventEmitter.publish('toggleDrawingTool.' + this.overlay.windowId, this.overlay.tools[j].logoClass);
-              break;
-            }
-          }
-        }
-
-        if (this.overlay.currentTool) {
-          this.overlay.eventEmitter.publish('HUD_REMOVE_CLASS.'+this.overlay.windowId, ['.hud-dropdown', 'hud-disabled']);
-          event.point = this.overlay.getMousePositionInImage(event.point);
-          this.overlay.currentTool.onMouseDown(event, this.overlay);
-        }
-      }
-      this.overlay.hover();
-      this.overlay.paperScope.view.draw();
-    },
-
-    onDoubleClick: function(event) {
-
-      event.stopPropagation();
-      if (this.overlay.currentTool) {
-        this.overlay.currentTool.onDoubleClick(event, this.overlay);
-      }
-    },
-
-    fitFixedSizeShapes: function(shape) {
-      shape.data.fixedSize = true;
-
-      if (shape.name.toString().indexOf('pin_') != -1) {
-        var scale = 1 / shape.bounds.width;
-        scale *= this.fixedShapeSize / this.paperScope.view.zoom;
-        shape.scale(scale, shape.segments[0].point);
-      }
-    },
-
-    updateSelection: function(selected, item) {
-
-      if(item && item._name){
-        var shapeTool = this.getTool(item);
-        if(shapeTool){
-          item.selectedColor = this.selectedColor;
-          shapeTool.updateSelection(selected, item, this);
-        }
-      }
-    },
-
-    rotate: function (event) {
-      if (this.paperScope && this.paperScope.view) {
-        this.paperScope.view._matrix.rotate(event.degrees-this.lastAngle, this.paperScope.view.center);
-        this.lastAngle = event.degrees;
-      }
-    },
-
-    resize: function() {
-      var _this = this;
-      var viewportBounds = this.viewer.viewport.getBounds(true);
-      // var originWindow = this.state.getWindowObjectById(this.windowId);
-      // if ( !originWindow.canvases ) { return; } // no-op if canvases are not initialised.
-      // var currentCanvasModel = originWindow.canvases[originWindow.canvasID];
-
-      /* in viewport coordinates */
-      this.canvas.width = this.viewer.viewport.containerSize.x;
-      this.canvas.height = this.viewer.viewport.containerSize.y;
-      var transform = 'translate(0px,0px)';
-      this.canvas.style.WebkitTransform = transform;
-      this.canvas.style.msTransform = transform;
-      this.canvas.style.transform = transform;
-      this.canvas.style.marginLeft = '0px';
-      this.canvas.style.marginTop = '0px';
-      if (this.paperScope && this.paperScope.view) {
-        this.paperScope.view.viewSize = new this.paperScope.Size(this.canvas.width, this.canvas.height);
-        this.paperScope.view.zoom = _this.canvas.width * this.viewer.viewport.getZoom(true);
-        this.paperScope.view.center = new this.paperScope.Size(
-          this.viewer.viewport.getCenter(true).x,
-          this.viewer.viewport.getCenter(true).y
-        );
-
-        this.paperScope.view.update(true);
-        var allItems = this.paperScope.project.getItems({
-          name: /_/
-        });
-        for (var j = 0; j < allItems.length; j++) {
-          if (allItems[j].data.fixedSize) {
-            this.fitFixedSizeShapes(allItems[j]);
-          }
-          if(this.getTool(allItems[j]).onResize){
-            this.getTool(allItems[j]).onResize(allItems[j],this);
-          }
-          allItems[j].strokeWidth = allItems[j].data.strokeWidth / this.paperScope.view.zoom;
-          if (allItems[j].style) {
-            allItems[j].style.strokeWidth = allItems[j].data.strokeWidth / this.paperScope.view.zoom;
-          }
-        }
-      }
-    },
-
-    hover: function() {
-      if(!this.currentTool){
-        return;
-      }
-
-      if (!this.currentTool && this.hoveredPath) {
-        this.updateSelection(false, this.hoveredPath);
-        this.hoveredPath = null;
-      }
-
-      if (this.hoveredPath) {
-
-        if (this.hoveredPath._name.toString().indexOf(this.currentTool.idPrefix) === -1) {
-          this.updateSelection(false, this.hoveredPath);
-          this.hoveredPath = null;
-        }
-        if (this.path && this.path._name.toString().indexOf(this.currentTool.idPrefix) !== -1 ) {
-
-          //should make exception for the dynamically attached paths to shapes
-          if(this.currentTool.partOfPrefix && this.path._name.toString().indexOf(this.currentTool.partOfPrefix) !== -1){
-            return;
-          }
-
-          if (this.hoveredPath) {
-            if(this.hoveredPath._name.toString() === this.path._name.toString() ){
-              return;
-            }else{
-              this.updateSelection(false, this.hoveredPath);
-            }
-
-          }
-          this.hoveredPath = this.path;
-          this.updateSelection(true, this.hoveredPath);
-        }
-        return;
-
-      }
-
-      if (this.path && this.path._name.toString().indexOf(this.currentTool.idPrefix) != -1) {
-        this.hoveredPath = this.path;
-        this.updateSelection(true, this.hoveredPath);
-      }
-    },
-
-    removeFocus: function() {
-      if (this.hoveredPath) {
-        this.updateSelection(false, this.hoveredPath);
-        this.hoveredPath = null;
-      }
-      if (this.path) {
-        this.updateSelection(false, this.path);
-        this.path = null;
-      }
-    },
-
-    restoreEditedShapes: function() {
-      this.editedPaths = [];
-      this.removeFocus();
-    },
-
-    restoreDraftShapes: function() {
-      this.clearDraftData();
-      this.removeFocus();
-    },
-
-    // get the tool which controls given shape
-    getTool:function(shape){
-      for(var i=0;i<this.tools.length;i++){
-        if(shape.name.toString().indexOf(this.tools[i].idPrefix) !== -1){
-          return this.tools[i];
-        }
-      }
-    },
-
-    // replaces paper.js objects with the required properties only.
-    // 'shapes' coordinates are image coordiantes
-    replaceShape: function(shape, annotation) {
-
-      //backward compatibility when changing shapes points
-      var shapeTool = this.getTool(shape);
-      if(shapeTool && shapeTool.SEGMENT_POINTS_COUNT && shapeTool.SEGMENT_POINTS_COUNT !== shape.segments.length){
-        shapeTool.adaptSegments(shape,this);
-      }
-
-      var cloned = new this.paperScope.Path({
-        segments: shape.segments,
-        name: shape.name
-      });
-
-      cloned.data.strokeWidth = shape.data.strokeWidth || 1;
-      cloned.strokeWidth = cloned.data.strokeWidth / this.paperScope.view.zoom;
-      cloned.strokeColor = shape.strokeColor;
-      cloned.dashArray = shape.dashArray;
-      if (shape.fillColor) {
-        cloned.fillColor = shape.fillColor;
-
-        // workaround for paper js fill hit test
-        if(shape.fillColor.alpha === 0){
-          shape.fillColor.alpha = FILL_COLOR_ALPHA_WORKAROUND;
-        }
-        if (shape.fillColor.alpha) {
-          cloned.fillColor.alpha = shape.fillColor.alpha;
-        }
-      }
-      cloned.closed = shape.closed;
-      cloned.data.rotation = shape.data.rotation;
-      cloned.data.fixedSize = shape.data.fixedSize;
-      cloned.data.annotation = annotation;
-      if (cloned.data.fixedSize) {
-        this.fitFixedSizeShapes(cloned);
-      }
-      shape.remove();
-      return cloned;
-    },
-
-    // creating shapes used for backward compatibility.
-    // shape coordinates are viewport coordinates.
-    createRectangle: function(shape, annotation) {
-      var paperItems = [];
-      var rect = new $.Rectangle();
-      var initialPoint = {
-        'x': shape.x,
-        'y': shape.y
-      };
-      var currentMode = this.mode;
-      var currentPath = this.path;
-      var strokeWidth = this.strokeWidth;
-      var strokeColor = this.strokeColor;
-      var fillColor = this.fillColor;
-      var fillColorAlpha = this.fillColorAlpha || FILL_COLOR_ALPHA_WORKAROUND;
-      this.strokeColor = this.state.getStateProperty('drawingToolsSettings').strokeColor;
-      this.fillColor = this.state.getStateProperty('drawingToolsSettings').fillColor;
-      this.fillColorAlpha = this.state.getStateProperty('drawingToolsSettings').fillColorAlpha || FILL_COLOR_ALPHA_WORKAROUND;
-      this.mode = 'create';
-      this.path = rect.createShape(initialPoint, this);
-      var eventData = {
-        'delta': {
-          'x': shape.width,
-          'y': shape.height
-        }
-      };
-      rect.onMouseDrag(eventData, this);
-      paperItems.push(this.path);
-      paperItems[0].data.annotation = annotation;
-      this.updateSelection(false, paperItems[0]);
-      this.strokeColor = strokeColor;
-      this.strokeWidth = strokeWidth;
-      this.fillColor = fillColor;
-      this.fillColorAlpha = fillColorAlpha;
-      this.path = currentPath;
-      this.mode = currentMode;
-      return paperItems;
-    },
-
-    parseSVG: function(svg, annotation) {
-      var paperItems = [];
-      var svgParser = new DOMParser();
-      var svgDOM = svgParser.parseFromString(svg, "text/xml");
-      if (svgDOM.documentElement.nodeName == 'parsererror') {
-        return; // if svg is not valid XML structure - backward compatibility.
-      }
-      var svgTag = this.paperScope.project.importSVG(svg);
-      // removes SVG tag which is the root object of comment SVG segment.
-      var body = svgTag.removeChildren()[0];
-      svgTag.remove();
-      if (body.className == 'Group') {
-        // removes group tag which wraps the set of objects of comment SVG segment.
-        var items = body.removeChildren();
-        for (var itemIdx = 0; itemIdx < items.length; itemIdx++) {
-          paperItems.push(this.replaceShape(items[itemIdx], annotation));
-        }
-        body.remove();
-      } else {
-        paperItems.push(this.replaceShape(body, annotation));
-      }
-      this.paperScope.view.update(true);
-      return paperItems;
-    },
-
-    // Restore latest view before rendering.
-    restoreLastView: function(shapeArray) {
-      for (var i = 0; i < this.editedPaths.length; i++) {
-        for (var idx = 0; idx < shapeArray.length; idx++) {
-          if (shapeArray[idx].name == this.editedPaths[i].name) {
-            shapeArray[idx].segments = this.editedPaths[i].segments;
-            shapeArray[idx].name = this.editedPaths[i].name;
-            shapeArray[idx].strokeWidth = this.editedPaths[i].strokeWidth; // TODO: removed --> / this.paperScope.view.zoom;
-            shapeArray[idx].strokeColor = this.editedPaths[i].strokeColor;
-            shapeArray[idx].dashArray = this.editedPaths[i].dashArray;
-            if (this.editedPaths[i].fillColor) {
-              shapeArray[idx].fillColor = this.editedPaths[i].fillColor;
-              if (this.editedPaths[i].fillColor.alpha) {
-                shapeArray[idx].fillColor.alpha = this.editedPaths[i].fillColor.alpha;
-              }
-            }
-            if (this.editedPaths[i].style) {
-              shapeArray[idx].style = this.editedPaths[i].style;
-              shapeArray[idx].style.strokeWidth = shapeArray[idx].data.strokeWidth / this.paperScope.view.zoom;
-            }
-            shapeArray[idx].closed = this.editedPaths[i].closed;
-            shapeArray[idx].data.rotation = this.editedPaths[i].data.rotation;
-            shapeArray[idx].data.fixedSize = this.editedPaths[i].data.fixedSize;
-            shapeArray[idx].data.annotation = this.editedPaths[i].data.annotation;
-            if (shapeArray[idx].data.fixedSize) {
-              this.fitFixedSizeShapes(shapeArray[idx]);
-            }
-          }
-        }
-      }
-    },
-
-    deselectAll: function() {
-      if (this.paperScope && this.paperScope.view && this.paperScope.project) {
-        this.paperScope.project.deselectAll();
-        this.paperScope.view.update(true);
-        this.destroyCommentPanel();
-      }
-    },
-
-    hide: function() {
-      this.canvas.style.display = 'none';
-      this.deselectAll();
-    },
-
-    show: function() {
-      this.canvas.style.display = 'block';
-    },
-
-    checkToRemoveFocus: function() {
-      this.currentTool = '';
-      //if we are switching between editing and drawing, remove an old path
-      if (this.inEditOrCreateMode && this.path) {
-        this.removeFocus();
-      }
-    },
-
-    disable: function() {
-      this.disabled = true;
-      this.inEditOrCreateMode = false;
-      this.eventEmitter.publish('enableTooltips.' + this.windowId);
-      this.deselectAll();
-    },
-
-    enableEdit: function() {
-      this.disabled = false;
-      this.inEditOrCreateMode = true;
-      this.eventEmitter.publish('disableTooltips.' + this.windowId);
-    },
-
-    enable: function() {
-      this.disabled = false;
-      //this.inEditOrCreateMode = false;
-      this.eventEmitter.publish('disableTooltips.' + this.windowId);
-    },
-
-    refresh: function() {
-      this.paperScope.view.update(true);
-    },
-
-    destroyCommentPanel: function() {
-      this.eventEmitter.publish('removeTooltips.' + this.windowId);
-      jQuery(this.canvas).parents('.mirador-osd').qtip('destroy', true);
-      this.commentPanel = null;
-    },
-
-    getName: function(tool) {
-      return tool.idPrefix + $.genUUID();
-    },
-
-    getSVGString: function(shapes) {
-      var svg = "<svg xmlns='http://www.w3.org/2000/svg'>";
-      if (shapes.length > 1) {
-        svg += "<g>";
-        for (var i = 0; i < shapes.length; i++) {
-          this.updateSelection(false,shapes[i]);
-          if (shapes[i].data.fixedSize) {
-            this.fitFixedSizeShapes(shapes[i]);
-          }
-          var anno = shapes[i].data.annotation;
-          shapes[i].data.annotation = null;
-          svg += shapes[i].exportSVG({
-            "asString": true
-          });
-          shapes[i].data.annotation = anno;
-        }
-        svg += "</g>";
-      } else {
-        this.updateSelection(false,shapes[0]);
-        if (shapes[0].data.fixedSize) {
-          this.fitFixedSizeShapes(shapes[0]);
-        }
-        var annoSingle = shapes[0].data.annotation;
-        shapes[0].data.annotation = null;
-        svg += shapes[0].exportSVG({
-          "asString": true
-        });
-        shapes[0].data.annotation = annoSingle;
-      }
-      svg += "</svg>";
-      return svg;
-    },
-
-    onDrawFinish: function() {
-
-      var shape = this.path;
-      if (!shape) {
-        return;
-      }
-      this.inEditOrCreateMode = true;
-      if (this.hoveredPath) {
-        this.updateSelection(false, this.hoveredPath);
-      }
-
-      // Set special style for newly created shapes
-      var newlyCreatedStrokeFactor = this.drawingToolsSettings.newlyCreatedShapeStrokeWidthFactor || 5;
-      shape.data.newlyCreatedStrokeFactor = newlyCreatedStrokeFactor;
-      shape.data.newlyCreated = true;
-      shape.strokeWidth = shape.data.strokeWidth * newlyCreatedStrokeFactor;
-
-      this.hoveredPath = shape;
-      this.segment = null;
-      this.path = null;
-      this.mode = '';
-      this.draftPaths.push(shape);
-
-      shape.data.editable = true;
-
-      this.updateSelection(true, this.hoveredPath);
-      if (typeof this.annoTooltip === 'undefined' || !this.annoTooltip) {
-        this.annoTooltip = new $.AnnotationTooltip({
-          targetElement: jQuery(this.canvas).parents('.mirador-osd'),
-          state: this.state,
-          eventEmitter: this.eventEmitter,
-          windowId: this.windowId
-        });
-      }
-
-      if (this.availableExternalCommentsPanel) {
-        this.eventEmitter.publish('annotationShapeCreated.' + this.windowId, [this, shape]);
-        return;
-      }
-      var _this = this;
-      if (typeof this.annoEditorVisible === 'undefined' || !this.annoEditorVisible)  {
-        this.annoTooltip.showEditor({
-          annotation: {},
-          onSaveClickCheck: function () {
-            return _this.draftPaths.length;
-          },
-          onAnnotationCreated: function(oaAnno) {
-            _this.eventEmitter.publish('onAnnotationCreated.'+_this.windowId,[oaAnno]);
-          }
-        });
-        _this.annoEditorVisible = true;
-      }
-    },
-
-    onEditFinish: function() {
-      var _this = this;
-      jQuery.each(this.draftPaths, function(index, value) {
-        if (_this.path.name === value.name) {
-          _this.draftPaths[index] = _this.path;
-        }
-      });
-    },
-
-    clearDraftData: function() {
-      var _this = this;
-      for (var idx = 0; idx < _this.draftPaths.length; idx++) {
-        _this.updateSelection(false, this.draftPaths[idx]);
-        _this.draftPaths[idx].remove();
-      }
-      _this.draftPaths = [];
-      if (_this.path) {
-        _this.path.remove();
-      }
-      _this.paperScope.view.update(true);
-      _this.hoveredPath = null;
-      _this.segment = null;
-      _this.path = null;
-      _this.mode = '';
-    },
-
-    // Should unsubscribe from all events
-    // Should have no references in order to be garbage collected
-    destroy:function(){
-      var _this = this;
-
-      this.eventsSubscriptions.forEach(function(event){
-        _this.eventEmitter.unsubscribe(event.name,event.handler);
-      });
-
-      this.viewer.removeHandler('animation',this._thisResize);
-      this.viewer.removeHandler('open',this._thisResize);
-      this.viewer.removeHandler('animation-finish',this._thisResize);
-      this.viewer.removeHandler('update-viewport',this._thisResize);
-      this.viewer.removeHandler('resize',this._thisResize);
-      this.viewer.removeHandler('rotate',this._thisResize);
-      this.viewer.removeHandler('constrain',this._thisResize);
-      this.viewer.removeHandler('close',this._thisDestroy);
-    }
-  };
-}(Mirador));
diff --git a/js/src/annotations/osd-svg-pin.js b/js/src/annotations/osd-svg-pin.js
deleted file mode 100644
index 5be52978732cf40aa19cb70178a3381c20dae139..0000000000000000000000000000000000000000
--- a/js/src/annotations/osd-svg-pin.js
+++ /dev/null
@@ -1,173 +0,0 @@
-(function($) {
-  $.Pin = function(options) {
-    jQuery.extend(this, {
-      name: 'Pin',
-      logoClass: 'room',
-      idPrefix: 'pin_',
-      tooltip: 'pinTooltip',
-    }, options);
-
-    this.init();
-  };
-
-  $.Pin.prototype = {
-    init: function() {
-    },
-
-    createShape: function(initialPoint, overlay) {
-      overlay.mode = 'create';
-      var _this = this;
-      var size = overlay.fixedShapeSize;
-      var pathData = '';
-      pathData += 'M' + initialPoint.x + ',' + initialPoint.y;
-      pathData += ' Q' + initialPoint.x + ',' + (initialPoint.y - size);
-      pathData += ' ' + (initialPoint.x + size) + ',' + (initialPoint.y - 2 * size);
-      pathData += ' A' + size + ',' + size + ' 0 1 0';
-      pathData += ' ' + (initialPoint.x - size) + ',' + (initialPoint.y - 2 * size);
-      pathData += ' Q' + initialPoint.x + ',' + (initialPoint.y - size);
-      pathData += ' ' + initialPoint.x + ',' + initialPoint.y;
-      var shape = new overlay.paperScope.Path(pathData);
-      shape.name = overlay.getName(_this);
-      shape.dashArray = overlay.dashArray;
-      shape.data.strokeWidth = overlay.strokeWidth;
-      shape.strokeWidth = shape.data.strokeWidth / overlay.paperScope.view.zoom;
-      shape.strokeColor = overlay.strokeColor;
-      shape.fillColor = overlay.fillColor;
-      shape.fillColor.alpha = overlay.fillColorAlpha;
-      shape.closed = true;
-      overlay.fitFixedSizeShapes(shape);
-      return shape;
-    },
-
-    updateSelection: function(selected, item, overlay) {
-      if (item._name.toString().indexOf(this.idPrefix) !== -1) {
-        if (selected) {
-          item.strokeColor = overlay.selectedColor;
-
-          if (!item.data.deleteIcon) {
-            item.data.deleteIcon = new overlay.annotationUtils.DeleteActionIcon(overlay.paperScope, {
-              name: item.name + this.partOfPrefix + 'delete',
-              fillColor : item.selectedColor
-            });
-
-            item.data.deleteIcon.addData('pivot', item.segments[0].point);
-            item.data.deleteIcon.addData('type', 'deleteIcon');
-            item.data.deleteIcon.addData('self', item.data.deleteIcon);
-            item.data.deleteIcon.addData('parent', item);
-
-            item.data.deleteIcon.setPosition(item.data.deleteIcon.getData('pivot').add(new overlay.paperScope.Point(0, 21 / overlay.paperScope.view.zoom)));
-            item.data.deleteIcon.setOnMouseDownListener(overlay);
-
-          }
-
-        } else {
-          item.strokeColor = overlay.strokeColor;
-
-          if (item.data.deleteIcon) {
-            item.data.deleteIcon.remove();
-            item.data.deleteIcon = null;
-          }
-
-        }
-      }
-    },
-
-    onResize:function(item,overlay){
-      if(item._name.toString().indexOf(this.partOfPrefix)!== -1){
-        if(item._name.toString().indexOf('delete')){
-          item.data.self.setPosition(item.data.self.getData('pivot').add(new overlay.paperScope.Point(0, 21 / overlay.paperScope.view.zoom)));
-          item.data.self.resize(24 *  1 / overlay.paperScope.view.zoom);
-        }
-      }
-    },
-
-    onHover:function(activate,shape,hoverWidth,hoverColor){
-      shape.strokeWidth = hoverWidth;
-      // shape needs to have hovered styles
-      if(activate && !shape.data.hovered){
-        shape.data.nonHoverStrokeColor = shape.strokeColor.clone();
-        shape.data.hovered = true;
-        shape.strokeColor = hoverColor;
-      }
-      // shape is not longer hovered
-      if(!activate && shape.data.hovered){
-        shape.strokeColor = shape.data.nonHoverStrokeColor.clone();
-        delete shape.data.nonHoverStrokeColor;
-        delete shape.data.hovered;
-      }
-    },
-
-    onMouseUp: function(event, overlay) {
-      // Empty block.
-    },
-
-    onMouseDrag: function(event, overlay) {
-      if (overlay.mode === 'translate') {
-        if (overlay.path) {
-          overlay.path.position.x += event.delta.x;
-          overlay.path.position.y += event.delta.y;
-          if(overlay.path.data.deleteIcon){
-            overlay.path.data.deleteIcon.translateByXY(event.delta.x,event.delta.y);
-          }
-        }
-      }
-    },
-
-    onMouseMove: function(event, overlay) {
-      var hitResult = overlay.paperScope.project.hitTest(event.point, overlay.hitOptions);
-      if(hitResult && hitResult.item._name.toString().indexOf(this.idPrefix)!==-1){
-        if(!overlay.disabled && overlay.hoveredPath && hitResult.item._name.toString().indexOf(overlay.hoveredPath._name.toString()) !==-1){
-          this.setCursor(hitResult,overlay);
-        }
-      }
-    },
-
-    setCursor:function(hitResult,overlay){
-      if(hitResult.type === 'stroke' || hitResult.type === 'handle-in' || hitResult.type === 'handle-out' || hitResult.type === 'segment'){
-        jQuery(overlay.viewer.canvas).css('cursor','move');
-        return;
-      }
-
-      // mouse over attached icon
-      if(hitResult.type === 'pixel'){
-        jQuery(overlay.viewer.canvas).css('cursor', 'pointer');
-        return;
-      }
-    },
-
-    onMouseDown: function (event, overlay) {
-      var hitResult = overlay.paperScope.project.hitTest(event.point, overlay.hitOptions);
-      if (hitResult && hitResult.item._name.toString().indexOf(this.idPrefix) != -1) {
-
-        if (hitResult.item._name.toString().indexOf(this.partOfPrefix) !== -1) {
-          hitResult.item.data.self.onMouseDown();
-          return;
-        }
-
-        if (overlay.mode !== 'translate') {
-          overlay.mode = 'translate';
-          overlay.segment = null;
-          overlay.path = null;
-        }
-      }
-
-      if (overlay.mode === 'translate') {
-        if (overlay.path) {
-          overlay.segment = null;
-          overlay.path = null;
-          overlay.mode = '';
-        } else {
-          overlay.path = hitResult.item;
-        }
-        return;
-      }
-
-      overlay.path = this.createShape(event.point, overlay);
-      overlay.onDrawFinish();
-    },
-
-    onDoubleClick: function(event, overlay) {
-      // Empty block.
-    }
-  };
-}(Mirador));
diff --git a/js/src/annotations/osd-svg-polygon.js b/js/src/annotations/osd-svg-polygon.js
deleted file mode 100644
index 55e9c7ce1e285376a128420ca58b82e71eac0bf9..0000000000000000000000000000000000000000
--- a/js/src/annotations/osd-svg-polygon.js
+++ /dev/null
@@ -1,270 +0,0 @@
-(function($) {
-  $.Polygon = function(options) {
-    jQuery.extend(this, {
-      name: 'Polygon',
-      logoClass: 'timeline',
-      idPrefix: 'rough_path_',
-      tooltip: 'polygonTooltip'
-    }, options);
-
-    this.init();
-  };
-
-  $.Polygon.prototype = {
-    init: function() {
-    },
-
-    createShape: function(initialPoint, overlay) {
-      overlay.mode = 'create';
-      var _this = this;
-      var shape = new overlay.paperScope.Path({
-        segments: [initialPoint],
-        dashArray: overlay.dashArray,
-        strokeColor: overlay.strokeColor,
-        name: overlay.getName(_this)
-      });
-      shape.data.strokeWidth = overlay.strokeWidth;
-      shape.strokeWidth = shape.data.strokeWidth / overlay.paperScope.view.zoom;
-      return shape;
-    },
-
-    updateSelection: function(selected, item, overlay) {
-      if (item._name.toString().indexOf(this.idPrefix) != -1) {
-        item.selected = selected;
-
-        if(selected){
-          if (!item.data.deleteIcon && overlay.mode !=='create') {
-            item.data.deleteIcon = new overlay.annotationUtils.DeleteActionIcon(overlay.paperScope, {
-              name: item.name + this.partOfPrefix + 'delete',
-              fillColor:item.selectedColor
-            });
-            item.data.deleteIcon.addData('pivot',new overlay.paperScope.Point(this.getPivotPointForDeleteIcon(item)));
-            item.data.deleteIcon.addData('type', 'deleteIcon');
-            item.data.deleteIcon.addData('self', item.data.deleteIcon);
-            item.data.deleteIcon.addData('parent', item);
-            item.data.deleteIcon.setPosition(item.data.deleteIcon.getData('pivot').add(new overlay.paperScope.Point(0, 21 / overlay.paperScope.view.zoom)));
-            item.data.deleteIcon.setOnMouseDownListener(overlay);
-          }
-        }else{
-
-          if(item.data.deleteIcon){
-            item.data.deleteIcon.remove();
-            item.data.deleteIcon = null;
-          }
-        }
-      }
-    },
-
-    onResize:function(item,overlay){
-      if(item._name.toString().indexOf(this.partOfPrefix)!== -1){
-        if(item._name.toString().indexOf('delete') !==-1){
-
-          item.data.self.setPosition(item.data.self.getData('pivot').add(new overlay.paperScope.Point(0, 21 / overlay.paperScope.view.zoom)));
-          item.data.self.resize(24 *  1 / overlay.paperScope.view.zoom);
-        }
-      }
-    },
-
-    getPivotPointForDeleteIcon:function(item){
-      var points = [];
-
-      for(var i=0;i<item.segments.length;i++){
-        points.push(item.segments[i].point);
-      }
-
-      return {
-        x:this.getGeometricCenterOfPoints(points).x,
-        y:this.getLowestPoint(points).y
-      };
-    },
-
-    getLowestPoint: function (points) {
-      var lx = 0;
-      var ly = 0;
-
-      for (var i = 0; i < points.length; i++) {
-        lx = Math.max(lx, points[i].x);
-        ly = Math.max(ly, points[i].y);
-      }
-
-      return {
-        x: lx,
-        y: ly
-      };
-    },
-
-    getGeometricCenterOfPoints: function (points) {
-      var cx = 0;
-      var cy = 0;
-      for(var i= 0;i<points.length;i++){
-        cx +=points[i].x;
-        cy +=points[i].y;
-      }
-
-      return {
-        x:cx/points.length,
-        y:cy/points.length
-      };
-    },
-
-    onHover:function(activate,shape,hoverWidth,hoverColor){
-      shape.strokeWidth = hoverWidth;
-
-      // shape needs to have hovered styles
-      if(activate && !shape.data.hovered){
-        shape.data.nonHoverStrokeColor = shape.strokeColor.clone();
-        shape.data.hovered = true;
-        shape.strokeColor = hoverColor;
-      }
-      // shape is not longer hovered
-      if(!activate && shape.data.hovered){
-        shape.strokeColor = shape.data.nonHoverStrokeColor.clone();
-        delete shape.data.nonHoverStrokeColor;
-        delete shape.data.hovered;
-      }
-    },
-
-    onMouseUp: function(event, overlay) {
-
-    },
-
-    onMouseDrag: function(event, overlay) {
-      if (overlay.mode === 'deform') {
-        if (overlay.segment) {
-          overlay.segment.point.x += event.delta.x;
-          overlay.segment.point.y += event.delta.y;
-
-          var path = overlay.segment.path;
-
-          if(path.data.deleteIcon){
-            path.data.deleteIcon.addData('pivot', new overlay.paperScope.Point(this.getPivotPointForDeleteIcon(path)));
-            path.data.deleteIcon.setPosition(path.data.deleteIcon.getData('pivot').add(new overlay.paperScope.Point(0, 21 / overlay.paperScope.view.zoom)));
-          }
-
-          return;
-        }
-      }
-
-      if (overlay.mode === 'translate') {
-        if (overlay.path) {
-          overlay.path.position.x += event.delta.x;
-          overlay.path.position.y += event.delta.y;
-          if (overlay.path.data.deleteIcon) {
-            overlay.path.data.deleteIcon.translateByXY(event.delta.x, event.delta.y);
-          }
-
-        }
-      }
-    },
-
-    onMouseMove: function(event, overlay) {
-      var hitResult = overlay.paperScope.project.hitTest(event.point, overlay.hitOptions);
-      if(hitResult && hitResult.item._name.toString().indexOf(this.idPrefix)!==-1){
-        if(!overlay.disabled && overlay.hoveredPath && hitResult.item._name.toString().indexOf(overlay.hoveredPath._name.toString()) !==-1){
-          this.setCursor(hitResult,overlay);
-        }
-      }
-    },
-
-    setCursor:function(hitResult,overlay){
-      if(hitResult.type === 'stroke'){
-        jQuery(overlay.viewer.canvas).css('cursor','move');
-        return;
-      }
-
-      if(hitResult.type === 'handle-in' || hitResult.type === 'handle-out'){
-        jQuery(overlay.viewer.canvas).css('cursor','pointer');
-        return;
-      }
-
-      // mouse over attached icon
-      if(hitResult.type === 'pixel'){
-        jQuery(overlay.viewer.canvas).css('cursor', 'pointer');
-        return;
-      }
-
-      if(hitResult.segment){
-        jQuery(overlay.viewer.canvas).css('cursor','pointer');
-      }
-    },
-
-    onMouseDown: function(event, overlay) {
-      var hitResult = overlay.paperScope.project.hitTest(event.point, overlay.hitOptions);
-      if (hitResult && hitResult.item._name.toString().indexOf(this.idPrefix) !== -1) {
-
-        if (hitResult.item._name.toString().indexOf(this.partOfPrefix) !== -1) {
-          hitResult.item.data.self.onMouseDown();
-          return;
-        }
-
-        if (overlay.mode !== 'create') {
-          if (!overlay.path) {
-            overlay.mode = 'edit';
-            overlay.segment = null;
-            overlay.path = null;
-            document.body.style.cursor = "move";
-          } else {
-
-            document.body.style.cursor = "default";
-          }
-
-          if (hitResult.type === 'stroke') {
-            overlay.mode = 'translate';
-            overlay.path = hitResult.item;
-            return;
-          }
-
-          if (hitResult.type === 'segment') {
-            // When shift is being pressed and segment point selected it deletes
-            if(event.modifiers.shift){
-              if(hitResult.item.segments.length > 2){
-                hitResult.segment.remove();
-                return;
-              }
-
-            }
-            overlay.mode = 'deform';
-            overlay.segment = hitResult.segment;
-            overlay.path = hitResult.item;
-            return;
-          }
-
-
-        }
-      } else {
-        if(overlay.mode !=='create'){
-          overlay.mode = '';
-        }
-      }
-
-      if (overlay.mode === '') {
-        overlay.path = this.createShape(event.point, overlay);
-
-        return;
-      }
-      if (overlay.mode === 'create') {
-        overlay.path.add(event.point);
-
-        return;
-      }
-
-    },
-
-    onDoubleClick: function(event, overlay) {
-      if (overlay.mode === 'create') {
-        if (overlay.path && overlay.path.segments.length > 1) {
-
-          if (overlay.path.segments[0].point.getDistance(overlay.path.segments[overlay.path.segments.length - 1].point) * overlay.paperScope.view.zoom < overlay.hitOptions.tolerance) {
-            overlay.path.closed = true;
-            overlay.path.fillColor = overlay.fillColor;
-            overlay.path.fillColor.alpha = overlay.fillColorAlpha;
-            overlay.path.segments[overlay.path.segments.length - 1].remove();
-          }
-          overlay.onDrawFinish();
-        }
-
-      }
-
-    }
-  };
-}(Mirador));
diff --git a/js/src/annotations/osd-svg-rectangle.js b/js/src/annotations/osd-svg-rectangle.js
deleted file mode 100644
index 9fd28887ef80ffc6b65226f2edd40de372a0d9ec..0000000000000000000000000000000000000000
--- a/js/src/annotations/osd-svg-rectangle.js
+++ /dev/null
@@ -1,408 +0,0 @@
-(function($) {
-  $.Rectangle = function(options) {
-    jQuery.extend(this, {
-      name: 'Rectangle',
-      logoClass: 'check_box_outline_blank',
-      idPrefix: 'rectangle_',
-      tooltip: 'rectangleTooltip'
-    }, options);
-    this.init();
-  };
-
-  $.Rectangle.prototype = {
-    init: function() {
-      this.SEGMENT_POINTS_COUNT = 9;
-    },
-
-    createShape: function(initialPoint, overlay) {
-      overlay.mode = 'create';
-      var segments = this._createSegments(initialPoint, overlay);
-      var shape = new overlay.paperScope.Path({
-        segments: segments,
-        fullySelected: true,
-        name: overlay.getName(this)
-      });
-      shape.dashArray = overlay.dashArray;
-      shape.data.strokeWidth = overlay.strokeWidth;
-      shape.strokeWidth = shape.data.strokeWidth / overlay.paperScope.view.zoom;
-      shape.strokeColor = overlay.strokeColor;
-      shape.fillColor = overlay.fillColor;
-      shape.fillColor.alpha = overlay.fillColorAlpha;
-      shape.closed = true;
-      shape.data.rotation = 0;
-      overlay.segment = shape.segments[5];
-      this.updateSelection(true, shape, overlay);
-      return shape;
-    },
-
-    _createSegments:function(initialPoint, overlay){
-      var segments = [];
-      // point indexes
-      // 0    1&2    3
-      //   ┌ ─ ─ ─ ┐
-      // 8 │       │ 4
-      //   └ ─ ─ ─ ┘
-      // 7     6     5(initial point)
-      // points 1 & 2 are workaround used to draw rotation handle
-      segments.push(new overlay.paperScope.Point(initialPoint.x - 2, initialPoint.y - 2));
-      segments.push(new overlay.paperScope.Point(initialPoint.x - 1, initialPoint.y - 2));
-      segments.push(new overlay.paperScope.Point(initialPoint.x - 1, initialPoint.y - 2));
-      segments.push(new overlay.paperScope.Point(initialPoint.x, initialPoint.y - 2));
-      segments.push(new overlay.paperScope.Point(initialPoint.x, initialPoint.y - 1));
-      segments.push(new overlay.paperScope.Point(initialPoint.x, initialPoint.y));
-      segments.push(new overlay.paperScope.Point(initialPoint.x - 1, initialPoint.y));
-      segments.push(new overlay.paperScope.Point(initialPoint.x - 2, initialPoint.y));
-      segments.push(new overlay.paperScope.Point(initialPoint.x - 2, initialPoint.y - 1));
-
-      return segments;
-    },
-
-    updateSelection: function (selected, item, overlay) {
-      if (item._name.toString().indexOf(this.idPrefix) != -1) {
-
-        if(item._name.toString().indexOf(this.partOfPrefix)!=-1){
-          return;
-        }
-
-        item.selected = selected;
-        if (selected) {
-
-          //item.segments[1].handleOut = new overlay.paperScope.Point(0, 21 / overlay.paperScope.view.zoom);
-         // item.segments[1].handleOut = item.segments[1].handleOut.rotate(item.data.rotation, item.segments[1]);
-
-          if (!item.data.deleteIcon) {
-
-            item.data.deleteIcon = new overlay.annotationUtils.DeleteActionIcon(overlay.paperScope, {
-              name: item.name + this.partOfPrefix + 'delete',
-              fillColor: item.selectedColor
-            });
-
-            item.data.deleteIcon.addData('pivot',item.segments[6].point);
-            item.data.deleteIcon.addData('type', 'deleteIcon');
-            item.data.deleteIcon.addData('self', item.data.deleteIcon);
-            item.data.deleteIcon.addData('parent', item);
-
-            item.data.deleteIcon.setPosition(item.data.deleteIcon.getData('pivot').add(new overlay.paperScope.Point(0, 21 / overlay.paperScope.view.zoom).rotate(item.data.rotation)));
-
-            item.data.deleteIcon.setOnMouseDownListener(overlay);
-
-          }
-
-          if (!item.data.rotationIcon) {
-
-            item.data.rotationIcon = new overlay.annotationUtils.RotationIcon(overlay.paperScope, {
-              name: item.name + this.partOfPrefix + 'rotation',
-              fillColor: item.selectedColor
-            });
-
-            item.data.rotationIcon.addData('pivot',item.segments[1].point);
-            item.data.rotationIcon.addData('type', 'rotationIcon');
-            item.data.rotationIcon.addData('self', item.data.rotationIcon);
-            item.data.rotationIcon.addData('parent', item);
-
-            item.data.rotationIcon.setPosition(item.data.rotationIcon.getData('pivot').add(new overlay.paperScope.Point(0, 21 / overlay.paperScope.view.zoom).rotate(item.data.rotation)));
-
-            item.data.rotationIcon.setOnMouseDownListener(overlay);
-
-          }
-
-          if (!item.data.group) {
-            item.data.group = new overlay.annotationUtils.Group(overlay.paperScope,[item,item.data.deleteIcon.getItem(),item.data.deleteIcon.getMask().getItem(),item.data.rotationIcon.getItem(),item.data.rotationIcon.getMask().getItem()]);
-          }
-
-          var point = item.segments[1].point.clone();
-          point = point.add(item.segments[1].handleOut);
-
-          if (item.contains(point)) {
-            item.segments[1].handleOut = item.segments[1].handleOut.rotate(180, item.segments[1]);
-          }
-
-          if(item.contains(item.data.deleteIcon.getItem().position)){
-            item.data.deleteIcon.setPosition(item.data.deleteIcon.getData('pivot').add(new overlay.paperScope.Point(0, 21 / overlay.paperScope.view.zoom).rotate(item.data.rotation)));
-            item.data.deleteIcon.rotate(180,item.data.deleteIcon.getData('pivot'));
-            item.data.deleteIcon.rotate(180);
-          }
-
-          if(item.contains(item.data.rotationIcon.getItem().position)){
-            item.data.rotationIcon.setPosition(item.data.rotationIcon.getData('pivot').add(new overlay.paperScope.Point(0, 21 / overlay.paperScope.view.zoom).rotate(item.data.rotation)));
-            item.data.rotationIcon.rotate(180,item.data.rotationIcon.getData('pivot'));
-            item.data.rotationIcon.rotate(180);
-          }
-
-          item.segments[1].handleOut.selected = false;
-        } else {
-
-          if(item.data.group){
-            item.data.group.remove();
-            item.data.group = null;
-            overlay.paperScope.project.activeLayer.addChild(item);
-          }
-
-          if(item.data.deleteIcon){
-            item.data.deleteIcon.remove();
-            item.data.deleteIcon = null;
-          }
-
-          if(item.data.rotationIcon){
-            item.data.rotationIcon.remove();
-            item.data.rotationIcon = null;
-          }
-          item.segments[1].handleOut = new overlay.paperScope.Point(0, 0);
-        }
-      }
-    },
-
-    onHover:function(activate,shape,hoverWidth,hoverColor){
-      shape.strokeWidth = hoverWidth;
-
-      // shape needs to have hovered styles
-      if(activate && !shape.data.hovered){
-        shape.data.nonHoverStrokeColor = shape.strokeColor.clone();
-        shape.data.hovered = true;
-        shape.strokeColor = hoverColor;
-      }
-      // shape is not longer hovered
-      if(!activate && shape.data.hovered){
-        shape.strokeColor = shape.data.nonHoverStrokeColor.clone();
-        delete shape.data.nonHoverStrokeColorColor;
-        delete shape.data.hovered;
-      }
-    },
-
-    // Old rectangle shapes does not have rotation handle point
-    // add it manually for old shapes
-    adaptSegments:function(shape,overlay){
-      var handleSegment = shape.segments[1].clone();
-      shape.segments.splice(1,0,handleSegment);
-    },
-
-    onMouseUp: function(event, overlay) {
-      if (overlay.mode === 'create' && overlay.path) {
-        overlay.onDrawFinish();
-      } else if (overlay.mode === 'translate' || overlay.mode === 'deform' && overlay.path) {
-        overlay.onEditFinish();
-      }
-    },
-
-    translate: function(event, overlay) {
-      for (var i = 0; i < overlay.path.segments.length; i++) {
-        overlay.path.segments[i].point.x += event.delta.x;
-        overlay.path.segments[i].point.y += event.delta.y;
-      }
-      overlay.path.data.rotationIcon.translateByXY(event.delta.x,event.delta.y);
-      overlay.path.data.deleteIcon.translateByXY(event.delta.x,event.delta.y);
-    },
-
-    rotate:function(event,overlay){
-      var center = overlay.path.position;
-      var rotation = Math.atan2(event.point.y - center.y + event.delta.y, event.point.x - center.x + event.delta.x) - Math.atan2(event.point.y - center.y, event.point.x - center.x);
-      rotation = rotation * (180 / Math.PI);
-
-      overlay.path.data.group.rotate(rotation,overlay.path.position);
-
-      overlay.path.data.deleteIcon.rotate(-rotation);
-      overlay.path.data.rotationIcon.rotate(-rotation);
-      overlay.path.data.rotation += rotation;
-    },
-
-    onMouseDrag: function (event, overlay) {
-      if (overlay.mode == 'translate') {
-        this.translate(event, overlay);
-        return;
-      }
-
-      if (overlay.mode === 'rotate') {
-        this.rotate(event, overlay);
-        return;
-      }
-
-      if (overlay.mode == 'create' || overlay.mode == 'deform') {
-        var idx = -1;
-        for (var l = 0; l < overlay.path.segments.length; l++) {
-          if (overlay.path.segments[l] == overlay.segment) {
-            idx = l;
-            break;
-          }
-        }
-
-        var translation = new overlay.paperScope.Point(event.delta.x, event.delta.y);
-        var rot = overlay.path.data.rotation;
-        translation = translation.rotate(-rot);
-        var translationX = new overlay.paperScope.Point(translation.x, 0);
-        translationX = translationX.rotate(rot);
-        var translationY = new overlay.paperScope.Point(0, translation.y);
-        translationY = translationY.rotate(rot);
-        var moveTopSize = idx === 0 || idx === 1 || idx === 2 || idx === 3;
-        var moveBottomSize = idx === 5 || idx === 6 || idx === 7;
-        var moveRightSize = idx === 3 || idx === 4 || idx === 5;
-        var moveLeftSize = idx === 0 || idx === 7 || idx === 8;
-        if (moveTopSize) {
-          overlay.path.data.rotationIcon.translateByPoint(translationY);
-          overlay.path.segments[0].point = overlay.path.segments[0].point.add(translationY);
-          overlay.path.segments[1].point = overlay.path.segments[1].point.add(translationY);
-          overlay.path.segments[2].point = overlay.path.segments[2].point.add(translationY);
-          overlay.path.segments[3].point = overlay.path.segments[3].point.add(translationY);
-        }
-        if (moveBottomSize) {
-          overlay.path.data.deleteIcon.translateByPoint(translationY);
-
-          overlay.path.segments[5].point = overlay.path.segments[5].point.add(translationY);
-          overlay.path.segments[6].point = overlay.path.segments[6].point.add(translationY);
-          overlay.path.segments[7].point = overlay.path.segments[7].point.add(translationY);
-        }
-        if (moveTopSize || moveBottomSize) {
-          translationY = translationY.multiply(0.5);
-          overlay.path.segments[4].point = overlay.path.segments[4].point.add(translationY);
-          overlay.path.segments[8].point = overlay.path.segments[8].point.add(translationY);
-        }
-        if (moveRightSize) {
-          overlay.path.segments[3].point = overlay.path.segments[3].point.add(translationX);
-          overlay.path.segments[4].point = overlay.path.segments[4].point.add(translationX);
-          overlay.path.segments[5].point = overlay.path.segments[5].point.add(translationX);
-        }
-        if (moveLeftSize) {
-          overlay.path.segments[0].point = overlay.path.segments[0].point.add(translationX);
-          overlay.path.segments[7].point = overlay.path.segments[7].point.add(translationX);
-          overlay.path.segments[8].point = overlay.path.segments[8].point.add(translationX);
-        }
-        if (moveRightSize || moveLeftSize) {
-          translationX = translationX.multiply(0.5);
-          overlay.path.data.rotationIcon.translateByPoint(translationX);
-          overlay.path.data.deleteIcon.translateByPoint(translationX);
-
-          overlay.path.segments[1].point = overlay.path.segments[1].point.add(translationX);
-          overlay.path.segments[2].point = overlay.path.segments[2].point.add(translationX);
-          overlay.path.segments[6].point = overlay.path.segments[6].point.add(translationX);
-        }
-        var point = overlay.path.segments[1].point.clone();
-        point = point.add(overlay.path.segments[1].handleOut);
-        if (overlay.path.contains(point)) { // TODO should delete this
-          overlay.path.segments[1].handleOut = overlay.path.segments[1].handleOut.rotate(180, overlay.path.segments[1]);
-        }
-
-        if (overlay.path.contains(overlay.path.data.deleteIcon.getItem().position)) {
-          overlay.path.data.deleteIcon.rotate(180, overlay.path.data.deleteIcon.getData('pivot'));
-          overlay.path.data.deleteIcon.rotate(180);
-        }
-
-        if (overlay.path.contains(overlay.path.data.rotationIcon.getItem().position)) {
-          overlay.path.data.rotationIcon.rotate(180, overlay.path.data.rotationIcon.getData('pivot'));
-          overlay.path.data.rotationIcon.rotate(180);
-        }
-
-      }
-    },
-
-    onResize:function(item,overlay){
-      if(item._name.toString().indexOf(this.partOfPrefix)!== -1){
-        if(item._name.toString().indexOf('delete') !==-1){
-          item.data.self.setPosition(item.data.self.getData('pivot').add(new overlay.paperScope.Point(0, 21 / overlay.paperScope.view.zoom).rotate(item.data.parent.data.rotation)));
-
-          if(item.data.parent.contains(item.position)){
-            item.data.self.rotate(180,item.data.self.getData('pivot'));
-            item.data.self.rotate(180);
-          }
-
-          item.data.self.resize(24 *  1 / overlay.paperScope.view.zoom);
-        }
-
-        if(item._name.toString().indexOf('rotation') !== -1){
-          item.data.self.setPosition(item.data.self.getData('pivot').add(new overlay.paperScope.Point(0, 21 / overlay.paperScope.view.zoom).rotate(item.data.parent.data.rotation)));
-
-          if(item.data.parent.contains(item.position)){
-            item.data.self.rotate(180,item.data.self.getData('pivot'));
-            item.data.self.rotate(180);
-          }
-
-          item.data.self.resize(16 *  1 / overlay.paperScope.view.zoom);
-        }
-
-      }
-    },
-
-    onMouseMove: function(event, overlay) {
-      var hitResult = overlay.paperScope.project.hitTest(event.point, overlay.hitOptions);
-      if(hitResult && hitResult.item._name.toString().indexOf(this.idPrefix)!==-1){
-        if(!overlay.disabled && overlay.hoveredPath && hitResult.item._name.toString().indexOf(overlay.hoveredPath._name.toString()) !==-1){
-          this.setCursor(hitResult,overlay);
-        }
-      }
-    },
-
-    setCursor:function(hitResult,overlay){
-
-      if(hitResult.type === 'stroke'){
-        jQuery(overlay.viewer.canvas).css('cursor','move');
-        return;
-      }
-
-      if(hitResult.type === 'pixel'){
-        jQuery(overlay.viewer.canvas).css('cursor', 'pointer');
-        return;
-      }
-
-      if(hitResult.segment){
-        jQuery(overlay.viewer.canvas).css('cursor','pointer');
-      }
-
-    },
-
-    onMouseDown: function(event, overlay) {
-      var hitResult = overlay.paperScope.project.hitTest(event.point, overlay.hitOptions);
-      if (hitResult && hitResult.item._name.toString().indexOf(this.idPrefix) != -1) {
-        if (overlay.mode !== 'deform' && overlay.mode !== 'translate' && overlay.mode !== 'create') {
-          if (hitResult.item._name.toString().indexOf(this.partOfPrefix) !== -1) {
-            hitResult.item.data.self.onMouseDown(); // TODO should check this for memory leak
-            if(overlay.mode === 'rotate'){
-              overlay.path = hitResult.item.data.self.getItem().data.parent;
-            }
-            return;
-          }
-
-          if (hitResult.type === 'segment') {
-            overlay.mode = 'deform';
-            overlay.segment = null;
-            overlay.path = null;
-            this.setCursor(hitResult, overlay);
-          }
-
-          if (hitResult.type === 'stroke') {
-            overlay.mode = 'translate';
-            overlay.segment = null;
-            overlay.path = null;
-          }
-        }
-      }
-
-      if (overlay.mode === 'translate') {
-        if (overlay.path) {
-          overlay.segment = null;
-          overlay.path = null;
-          overlay.mode = '';
-        } else {
-          overlay.path = hitResult.item;
-        }
-        return;
-      }
-
-      if (overlay.mode === 'deform') {
-        if (overlay.path) {
-          overlay.segment = null;
-          overlay.path = null;
-          overlay.mode = '';
-        } else {
-          overlay.path = hitResult.item;
-          overlay.segment = hitResult.segment;
-        }
-        return;
-      }
-      overlay.path = this.createShape(event.point, overlay);
-    },
-
-    onDoubleClick: function(event, overlay) {
-
-    }
-
-  };
-
-}(Mirador));
diff --git a/js/src/annotations/simpleASEndpoint.js b/js/src/annotations/simpleASEndpoint.js
deleted file mode 100644
index 05bcf2af2a9dbb5063137853a192244944110ac8..0000000000000000000000000000000000000000
--- a/js/src/annotations/simpleASEndpoint.js
+++ /dev/null
@@ -1,226 +0,0 @@
-/*
- * Edited version of https://github.com/IIIF/mirador/blob/9e3c6bbb894e044d01ad51aae1b70309939de5a9/js/src/annotations/catchEndpoint.js
- * This module tries to store the annotation as is in a RDF store but some fiddeling is required.
- * Fidles are:
- * - delete annotation fails if id has a / in it so have to send sanatised ids to mirador
- * - mirador requires an endpoint variable in the annotation pointing to this class.
- *
- * Note: this endpoint doesn't currently support authentication, just returns allow all
- *
- * All Endpoints need to have at least the following:
- * annotationsList - current list of OA Annotations
- * dfd - Deferred Object
- * init()
- * search(uri)
- * create(oaAnnotation, returnSuccess, returnError)
- * update(oaAnnotation, returnSuccess, returnError)
- * deleteAnnotation(annotationID, returnSuccess, returnError) (delete is a reserved word)
- *
- */
-(function ($){
-
-$.SimpleASEndpoint = function (options) {
-
-  jQuery.extend(this, {
-        token: null,
-        // prefix:    'annotation', /**/
-        uri: null,
-        url: options.url,
-        dfd: null,
-        // OA list for Mirador use
-        annotationsList: [],
-        // internal list for module use to map id to URI
-        idMapper: {}
-    }, options);
-
-    this.init();
-  };
-
-  $.SimpleASEndpoint.prototype = {
-    // Any set up for this endpoint, and triggers a search of the URI passed to object
-    init: function () {
-      this.catchOptions = {
-        user: {
-          id: this.userid,
-          name: this.username
-        },
-        permissions: {
-          'read':   [],
-          'update': [this.userid],
-          'delete': [this.userid],
-          'admin': [this.userid]
-        }
-      };
-    },
-
-    // Search endpoint for all annotations with a given URI
-    search: function (options, successCallback, errorCallback) {
-      var _this = this;
-
-      this.annotationsList = []; // clear out current list
-      jQuery.ajax({
-        url: _this.url + '/search', // this.prefix+
-        cache: false,
-        type: 'GET',
-        dataType: 'json',
-        headers: {
-          // 'x-annotator-auth-token': this.token
-        },
-        data: {
-          uri: options.uri,
-          APIKey: _this.APIKey,
-          media: 'image',
-          limit: 10000
-        },
-
-        contentType: 'application/json; charset=utf-8',
-        success: function(data) {
-          _this.annotationsList = data; // gmr
-          jQuery.each(_this.annotationsList, function(index, value) {
-            // Swap out URI of anno to shorter ID
-            value.fullId = value['@id'];
-            value['@id'] = $.genUUID();
-            _this.idMapper[value['@id']] = value.fullId;
-            value.endpoint = _this;
-            // Ensure on is an array
-            _this.fixOn(value);
-          });
-          if (typeof successCallback === 'function') {
-            successCallback(data);
-          } else {
-            _this.dfd.resolve(true);
-          }
-        },
-        error: function(xhr, statusText, err) {
-          if (typeof errorCallback === 'function') {
-            errorCallback();
-          } else {
-            _this.dfd.reject();
-            console.log('The request for annotations has caused an error for endpoint: ' + options.uri + ' due to ' + statusText);
-          }
-        }
-
-      });
-    },
-
-    fixOn: function (annotation) {
-      var oldOn;
-      if (annotation && annotation.on && !jQuery.isArray(annotation.on) && annotation.on.selector && annotation.on.selector.default) {
-        oldOn = annotation.on;
-        annotation.on = [oldOn];
-      }
-    },
-
-    deleteAnnotation: function (annotationID, returnSuccess, returnError) {
-      var _this = this;
-      jQuery.ajax({
-        url: _this.url + '/destroy?uri=' + encodeURIComponent(_this.idMapper[annotationID]) + '&APIKey=' + _this.APIKey, // this.prefix+
-        type: 'DELETE',
-        dataType: 'json',
-        headers: {
-          // 'x-annotator-auth-token': this.token
-        },
-        data: {
-          uri: annotationID,
-        },
-        contentType: 'application/json; charset=utf-8',
-        success: function(data) {
-          if (typeof returnSuccess === 'function') {
-            returnSuccess();
-          }
-        },
-        error: function(xhr, statusText, err) {
-          if (typeof returnError === 'function') {
-            returnError();
-          } else {
-            console.log('Failed to delete annotation ' + annotationID + ' due to ' + statusText);
-          }
-        }
-
-      });
-    },
-
-    update: function (oaAnnotation, returnSuccess, returnError) {
-      var annotation = oaAnnotation;
-      var _this = this;
-      // slashes don't work in JQuery.find which is used for delete
-      // so need to switch http:// id to full id and back again for delete.
-      var shortId = annotation['@id'];
-      var annotationID = annotation.fullId;// annotation['@id'];
-      annotation['@id'] = annotation.fullId;
-      delete annotation.fullId;
-      delete annotation.endpoint;
-      jQuery.ajax({
-        url: _this.url + '/update?APIKey=' + _this.APIKey, // this.prefix+
-        type: 'POST',
-        dataType: 'json',
-        headers: {
-          // 'x-annotator-auth-token': this.token
-        },
-        data: JSON.stringify(annotation),
-        contentType: 'application/json; charset=utf-8',
-        success: function(data) {
-          _this.fixOn(data);
-          if (typeof returnSuccess === 'function') {
-            returnSuccess(data);
-          }
-        },
-        error: function(xhr, statusText, err) {
-          if (typeof returnError === 'function') {
-            returnError();
-          } else {
-            console.log('Failed to update annotation: ' + oaAnnotation['@id'] + ' due to ' + statusText);
-          }
-        }
-      });
-      // this is what updates the viewer
-      annotation.endpoint = _this;
-      annotation.fullId = annotation['@id'];
-      annotation['@id'] = shortId;
-    },
-
-    create: function (oaAnnotation, returnSuccess, returnError) {
-      var annotation = oaAnnotation;
-      var _this = this;
-
-      jQuery.ajax({
-        url: _this.url + '/create?APIKey=' + _this.APIKey, // this.prefix+
-        type: 'POST',
-        dataType: 'json',
-        headers: {
-          // 'x-annotator-auth-token': this.token
-        },
-        data: JSON.stringify(annotation),
-        contentType: 'application/json; charset=utf-8',
-        success: function(data) {
-          data.fullId = data['@id'];
-          data['@id'] = $.genUUID();
-          data.endpoint = _this;
-          _this.idMapper[data['@id']] = data.fullId;
-          _this.fixOn(data);
-          if (typeof returnSuccess === 'function') {
-            returnSuccess(data);
-          }
-        },
-        error: function(xhr, statusText, err) {
-          if (typeof returnError === 'function') {
-            returnError();
-          } else {
-            console.log('Failed to create annotation: ' + oaAnnotation['@id'] + ' due to ' + statusText);
-          }
-        }
-      });
-    },
-
-    set: function (prop, value, options) {
-      if (options) {
-        this[options.parent][prop] = value;
-      } else {
-        this[prop] = value;
-      }
-    },
-    userAuthorize: function (action, annotation) {
-      return true; // allow all
-    }
-  };
-}(Mirador));
diff --git a/js/src/annotations/tinymce-annotation-editor.js b/js/src/annotations/tinymce-annotation-editor.js
deleted file mode 100644
index 9dfee008b0b7264f1bf34ceef1da978a951fad19..0000000000000000000000000000000000000000
--- a/js/src/annotations/tinymce-annotation-editor.js
+++ /dev/null
@@ -1,156 +0,0 @@
-(function($){
-
-  $.TinyMCEAnnotationBodyEditor = function(options) {
-
-    jQuery.extend(this, {
-      annotation: null,
-      windowId: null,
-      config: {
-        plugins: '',
-        toolbar: '',
-        tags: []
-      }
-    }, options);
-
-    this.init();
-  };
-
-  $.TinyMCEAnnotationBodyEditor.prototype = {
-    init: function() {
-      var _this = this;
-      var annoText = "",
-        selectedTags = [],
-        tags = [];
-      if (!jQuery.isEmptyObject(_this.annotation)) {
-        if (jQuery.isArray(_this.annotation.resource)) {
-          jQuery.each(_this.annotation.resource, function(index, value) {
-            if (value['@type'] === "oa:Tag") {
-              selectedTags.push(value.chars);
-            } else {
-              annoText = value.chars;
-            }
-          });
-        } else {
-          annoText = _this.annotation.resource.chars;
-        }
-      }
-      (this.config.tags || []).forEach(function(item) {
-        if (selectedTags.indexOf(item) < 0) {
-          tags.push(item);
-        }
-      });
-      tags = tags.concat(selectedTags);
-
-      this.editorMarkup = this.editorTemplate({
-        content: annoText,
-        selectedTags : selectedTags,
-        tags: tags,
-        windowId : _this.windowId
-      });
-    },
-
-    show: function(selector) {
-      this.editorContainer = jQuery(selector)
-        .prepend(this.editorMarkup);
-      tinymce.init({
-        selector: selector + ' textarea',
-        plugins: this.config.plugins,
-        menubar: false,
-        statusbar: false,
-        toolbar_items_size: 'small',
-        toolbar: this.config.toolbar,
-        default_link_target:"_blank",
-        setup: function(editor) {
-          editor.on('init', function(args) {
-            tinymce.execCommand('mceFocus', false, args.target.id);
-            jQuery('.tags-editor').select2({
-              tags: true,
-              placeholder: "Add tags here..."
-              // tokenSeparators: [',', ' ']  // spaces for backward compatibility
-            });
-          });
-        }
-      });
-    },
-
-    isDirty: function() {
-      return tinymce.activeEditor.isDirty();
-    },
-
-    createAnnotation: function() {
-      var tags = this.editorContainer.find('.tags-editor').val(),
-        resourceText = tinymce.activeEditor.getContent();
-
-      var motivation = [],
-        resource = [],
-        on;
-
-      if (tags && tags.length > 0) {
-        motivation.push("oa:tagging");
-        jQuery.each(tags, function(index, value) {
-          resource.push({
-            "@type": "oa:Tag",
-            "chars": value
-          });
-        });
-      }
-      motivation.push("oa:commenting");
-      resource.push({
-        "@type": "dctypes:Text",
-        "format": "text/html",
-        "chars": resourceText
-      });
-      return {
-        "@context": "http://iiif.io/api/presentation/2/context.json",
-        "@type": "oa:Annotation",
-        "motivation": motivation,
-        "resource": resource
-      };
-    },
-
-    updateAnnotation: function(oaAnno) {
-      var selectedTags = this.editorContainer.find('.tags-editor').val(),
-        resourceText = tinymce.activeEditor.getContent();
-
-      var motivation = [],
-        resource = [];
-
-      //remove all tag-related content in annotation
-      oaAnno.motivation = jQuery.grep(oaAnno.motivation, function(value) {
-        return value !== "oa:tagging";
-      });
-      oaAnno.resource = jQuery.grep(oaAnno.resource, function(value) {
-        return value["@type"] !== "oa:Tag";
-      });
-      //re-add tagging if we have them
-      if (selectedTags.length > 0) {
-        oaAnno.motivation.push("oa:tagging");
-        jQuery.each(selectedTags, function(index, value) {
-          oaAnno.resource.push({
-            "@type": "oa:Tag",
-            "chars": value
-          });
-        });
-      }
-      jQuery.each(oaAnno.resource, function(index, value) {
-        if (value["@type"] === "dctypes:Text") {
-          value.chars = resourceText;
-        }
-      });
-    },
-
-    editorTemplate: $.Handlebars.compile([
-      '<textarea class="text-editor" placeholder="{{t "comments"}}…">{{#if content}}{{content}}{{/if}}</textarea>',
-      '<select id="tags-editor-{{windowId}}" class="tags-editor" multiple="true">{{#each tags}}',
-      '<option value="{{this}}" {{#ifContains ../selectedTags this }}selected="selected"{{/ifContains}}>{{this}}</option>',
-      '{{/each}}</select>'
-    ].join(''))
-  };
-
-  // Handlebars helper: Contains
-  // check if a value is contained in an array
-  $.Handlebars.registerHelper("ifContains", function( array, value, options ){
-    array = ( array instanceof Array ) ? array : [array];
-    return (array.indexOf(value) > -1) ? options.fn( this ) : "";
-  });
-}(Mirador));
diff --git a/js/src/manifests/collection.js b/js/src/manifests/collection.js
deleted file mode 100644
index 3b17c92d88f9bc105122c9f651de39ae707a2715..0000000000000000000000000000000000000000
--- a/js/src/manifests/collection.js
+++ /dev/null
@@ -1,135 +0,0 @@
-(function($){
-
-  // This is an analogue of the Manifest utility class, but for collections
-  $.Collection = function(collectionUri, location, collectionContent) {
-    if (collectionContent) {
-      jQuery.extend(true, this, {
-          jsonLd: null,
-          location: location,
-          uri: collectionUri,
-          request: null
-      });
-      this.initFromCollectionContent(collectionContent);
-    } else {
-      jQuery.extend(true, this, {
-        jsonLd: null,
-        location: location,
-        uri: collectionUri,
-        request: null
-      });
-
-      this.init(collectionUri);
-    }
-  };
-
-  $.Collection.prototype = {
-    init: function(collectionUri) {
-      var _this = this;
-      this.request = jQuery.ajax({
-        url: collectionUri,
-        dataType: 'json',
-        async: true
-      });
-
-      this.request.done(function(jsonLd) {
-        _this.jsonLd = jsonLd;
-      });
-    },
-    initFromCollectionContent: function (collectionContent) {
-      var _this = this;
-      this.request = jQuery.Deferred();
-      this.request.done(function(jsonLd) {
-        _this.jsonLd = jsonLd;
-      });
-      _this.request.resolve(collectionContent); // resolve immediately
-    },
-    
-    // Get the IIIF API version of this collection
-    getVersion: function() {
-      var versionMap = {
-        'http://www.shared-canvas.org/ns/context.json': '1', // is this valid?
-        'http://iiif.io/api/presentation/1/context.json': '1',
-        'http://iiif.io/api/presentation/2/context.json': '2',
-        'http://iiif.io/api/presentation/2.1/context.json': '2.1'
-      };
-      return versionMap[this.jsonLd['@context']];
-    },
-    
-    // Return a list of sub-manifest URIs contained in this collection
-    getManifestUris: function() {
-      // "manifests" key present
-      if (this.jsonLd.manifests) {
-        return jQuery.map(this.jsonLd.manifests, function(v, _) {
-          return v['@id'];
-        });
-      }
-      // "members" key present, sift-out non-manifests
-      if (this.jsonLd.members) {
-        return jQuery.map(this.jsonLd.members, function(v, _) {
-          if (v['@type'] === 'sc:Manifest') {
-            return v['@id'];
-          }
-        });
-      }
-      // Neither present
-      return [];
-    },
-    
-    // Return a list of sub-manifest JSON blocks contained in this collection
-    getManifestBlocks: function() {
-      // "manifests" key present
-      if (this.jsonLd.manifests) {
-        return this.jsonLd.manifests;
-      }
-      // "members" key present, sift-out non-manifests
-      if (this.jsonLd.members) {
-        return jQuery.map(this.jsonLd.members, function(v, _) {
-          if (v['@type'] === 'sc:Manifest') {
-            return v;
-          }
-        });
-      }
-      // Neither present
-      return [];
-    },
-    
-    // Return a list of sub-collection URIs contained in this collection
-    getCollectionUris: function() {
-      // "collections" key present
-      if (this.jsonLd.collections) {
-        return jQuery.map(this.jsonLd.collections, function(v, _) {
-          return v['@id'];
-        });
-      }
-      // "members" key present, sift-out non-collections
-      if (this.jsonLd.members) {
-        return jQuery.map(this.jsonLd.members, function(v, _) {
-          if (v['@type'] === 'sc:Collection') {
-            return v['@id'];
-          }
-        });
-      }
-      // Neither present
-      return [];
-    },
-    
-    // Return a list of sub-collection JSON blocks contained in this collection
-    getCollectionBlocks: function() {
-      // "collections" key present
-      if (this.jsonLd.collections) {
-        return this.jsonLd.collections;
-      }
-      // "members" key present, sift out non-collections
-      if (this.jsonLd.members) {
-        return jQuery.map(this.jsonLd.members, function(v, _) {
-          if (v['@type'] === 'sc:Collection') {
-            return v;
-          }
-        });
-      }
-      // Neither present
-      return [];
-    }
-  };
-
-}(Mirador));
diff --git a/js/src/manifests/manifest.js b/js/src/manifests/manifest.js
deleted file mode 100644
index 228966e070c1fa88f7768b7ed9f1d8a33e0fcf3e..0000000000000000000000000000000000000000
--- a/js/src/manifests/manifest.js
+++ /dev/null
@@ -1,263 +0,0 @@
-(function($){
-
-  $.Manifest = function(manifestUri, location, manifestContent) {
-    if (manifestContent) {
-      jQuery.extend(true, this, {
-        jsonLd: null,
-        location: location,
-        uri: manifestUri,
-        request: null
-      });
-      this.initFromManifestContent(manifestContent);
-    } else if (manifestUri.indexOf('info.json') !== -1) {
-      // The following is an ugly hack. We need to finish the
-      // Manifesto utility library.
-      // See: https://github.com/IIIF/manifesto
-      //
-      // If manifestUri is not a string, then
-      // it's an object, namely a light-weight
-      // dummy manifest wrapped around the
-      // contents of an an info.json response.
-      //
-      // The wrapper is still going to need these
-      // accessor methods. We can just set the
-      // jsonLd directly, and the request needs to
-      // be a jQuery deferred object that is completed
-      // immediately upon creation. This allows
-      // components listening for this request to finish
-      // to react immediately without having to be
-      // re-written.
-      jQuery.extend(true, this, {
-        jsonLd: null,
-        location: location,
-        uri: manifestUri,
-        request: null,
-      });
-
-      this.initFromInfoJson(manifestUri);
-    } else {
-      jQuery.extend(true, this, {
-        jsonLd: null,
-        location: location,
-        uri: manifestUri,
-        request: null
-      });
-
-      this.init(manifestUri);
-    }
-  };
-
-  $.Manifest.prototype = {
-    init: function(manifestUri) {
-      var _this = this;
-      this.request = jQuery.ajax({
-        url: manifestUri,
-        dataType: 'json',
-        async: true
-      });
-
-      this.request.done(function(jsonLd) {
-        _this.jsonLd = jsonLd;
-      });
-    },
-    buildCanvasMap: function() {
-      var _this = this;
-      this.canvasMap = {};
-
-      if (this.getCanvases()) {
-        this.getCanvases().forEach(function(canvas) {
-          _this.canvasMap[canvas['@id']] = canvas;
-        });
-      }
-    },
-    initFromInfoJson: function(infoJsonUrl) {
-      var _this = this;
-      this.request = jQuery.ajax({
-        url: infoJsonUrl,
-        dataType: 'json',
-        async: true
-      });
-      this.request.done(function(jsonLd) {
-        _this.jsonLd = _this.generateInfoWrapper(jsonLd);
-      });
-    },
-    initFromManifestContent: function (manifestContent) {
-      var _this = this;
-      this.request = jQuery.Deferred();
-      this.request.done(function(jsonLd) {
-        _this.jsonLd = jsonLd;
-      });
-      _this.request.resolve(manifestContent); // resolve immediately
-    },
-    getThumbnailForCanvas : function(canvas, width) {
-      var version = "1.1",
-      compliance = -1,
-      service,
-      thumbnailUrl;
-
-      // Ensure width is an integer...
-      width = parseInt(width, 10);
-
-      // Respecting the Model...
-      if (canvas.hasOwnProperty('thumbnail')) {
-        // use the thumbnail image, prefer via a service
-        if (typeof(canvas.thumbnail) == 'string') {
-          thumbnailUrl = canvas.thumbnail;
-        } else if (canvas.thumbnail.hasOwnProperty('service')) {
-            service = canvas.thumbnail.service;
-            if(service.hasOwnProperty('profile')) {
-               compliance = $.Iiif.getComplianceLevelFromProfile(service.profile);
-            }
-            if(compliance === 0){
-                // don't change existing behaviour unless compliance is explicitly 0
-                thumbnailUrl = canvas.thumbnail['@id'];
-            } else {
-                // Get the IIIF Image API via the @context
-                if (service.hasOwnProperty('@context')) {
-                    version = $.Iiif.getVersionFromContext(service['@context']);
-                }
-                thumbnailUrl = $.Iiif.makeUriWithWidth(service['@id'], width, version);
-            }
-        } else {
-          thumbnailUrl = canvas.thumbnail['@id'];
-        }
-      } else {
-        // No thumbnail, use main image
-        var resource = canvas.images[0].resource;
-        service = resource['default'] ? resource['default'].service : resource.service;
-        if (service.hasOwnProperty('@context')) {
-          version = $.Iiif.getVersionFromContext(service['@context']);
-        }
-        thumbnailUrl = $.Iiif.makeUriWithWidth(service['@id'], width, version);
-      }
-      return thumbnailUrl;
-    },
-    getVersion: function() {
-      var versionMap = {
-        'http://www.shared-canvas.org/ns/context.json': '1', // is this valid?
-        'http://iiif.io/api/presentation/1/context.json': '1',
-        'http://iiif.io/api/presentation/2/context.json': '2',
-        'http://iiif.io/api/presentation/2.1/context.json': '2.1'
-      };
-      return versionMap[this.jsonLd['@context']];
-    },
-    getCanvases : function() {
-      var _this = this;
-      return _this.jsonLd.sequences && _this.jsonLd.sequences[0].canvases;
-    },
-    getAnnotationsListUrls: function(canvasId) {
-      var _this = this;
-      var canvas = jQuery.grep(_this.getCanvases(), function(canvas, index) {
-        return canvas['@id'] === canvasId;
-      })[0],
-      annotationsListUrls = [];
-
-      if (canvas && canvas.otherContent) {
-        for (var i = 0; i < canvas.otherContent.length; i++) {
-          annotationsListUrls.push(canvas.otherContent[i]['@id']);
-        }
-      }
-      return annotationsListUrls;
-    },
-    getStructures: function() {
-      var _this = this;
-      return _this.jsonLd.structures;
-    },
-    generateInfoWrapper: function(infoJson) {
-      // Takes in info.json and creates the
-      // dummy manifest wrapper around it
-      // that will allow it to behave like a
-     // manifest with one canvas in it, with
-      // one image on it. Some of the metadata
-      // of the image will be used as the
-      // label, and so on, of the manifest.
-      var dummyManifest = {
-        '@context': "http://www.shared-canvas.org/ns/context.json",
-        '@id': infoJson['@id'],
-        '@type': 'sc:Manifest',
-        label: infoJson['@id'].split('/')[infoJson['@id'].split('/').length -1],
-        sequences: [
-          {
-            '@id': infoJson['@id'] + '/sequence/1',
-            '@type': 'sc:Sequence',
-            canvases: [
-              {
-                '@id': infoJson['@id'] + '/sequence/1/canvas/1',
-                '@type': 'sc:Canvas',
-                width: infoJson.width,
-                height: infoJson.height,
-                images: [
-                  {
-                    '@id': infoJson['@id'] + '/sequence/1/canvas/1/image/1',
-                    '@type': 'sc:image',
-                    'motivation': 'sc:painting',
-                    resource: {
-                      '@id': infoJson,
-                      '@type': "dctypes:Image",
-                      format: "image/jpeg",
-                      height: infoJson.height,
-                      width: infoJson.width,
-                      service: {
-                        '@id': infoJson['@id'],
-                        '@context': infoJson['@context'],
-                        'profile': infoJson.profile
-                      }
-                    }
-                  }
-                ]
-              }
-            ]
-          }
-        ]
-      };
-
-      return dummyManifest;
-    },
-    getSearchWithinService: function(){
-      var _this = this;
-      var serviceProperty = _this.jsonLd.service;
-      var service = [];
-      if (serviceProperty === undefined){
-        service = null;
-      }
-      else if (serviceProperty.constructor === Array){
-        for (var i = 0; i < serviceProperty.length; i++){
-          //TODO: should we be filtering search by context
-          if (serviceProperty[i]["@context"] === "http://iiif.io/api/search/0/context.json" ||
-            serviceProperty[i]["@context"] === "http://iiif.io/api/search/1/context.json") {
-            //returns the first service object with the correct context
-            service.push(serviceProperty[i]);
-          }
-        }
-      }
-      else if (_this.jsonLd.service["@context"] === "http://iiif.io/api/search/0/context.json" ||
-        serviceProperty["@context"] === "http://iiif.io/api/search/1/context.json"){
-        service.push(_this.jsonLd.service);
-      }
-      else {
-        //no service object with the right context is found
-        service = null;
-      }
-      return service;
-    },
-
-    /**
-     * Get the label of the a canvas by ID
-     * @param  {[type]} canvasId ID of desired canvas
-     * @return {[type]}          string
-     */
-    getCanvasLabel: function(canvasId) {
-      console.assert(canvasId && canvasId !== '', "No canvasId was specified.");
-      if (this.canvasMap && canvasId.indexOf('#') >= 0) {
-        var canvas = this.canvasMap[canvasId.split('#')[0]];
-        return canvas ? canvas.label : undefined;
-      }
-    },
-    getViewingDirection : function() {
-      var _this = this;
-      return _this.jsonLd.viewingDirection || _this.jsonLd.sequences[0].viewingDirection;
-
-    }
-  };
-
-}(Mirador));
diff --git a/js/src/mirador.js b/js/src/mirador.js
deleted file mode 100644
index 3dce7d5e35df596cd91ce09f1b98fe1b628cf534..0000000000000000000000000000000000000000
--- a/js/src/mirador.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// This file defines the global Mirador constructor function.
-// This is the entry point to Mirador and is intentionally sparse.
-(function(global) {
-  function checkContainer(containerId) {
-    var container = jQuery('#' + containerId);
-    if (!container.hasClass('mirador-container')) {
-      // Add necessary namespace class to the container element so that
-      // style definitions will be applied correctly
-      container.addClass('mirador-container');
-    }
-  }
-
-  function Mirador(config) {
-    if (this instanceof Mirador) {
-        checkContainer(config.id);
-
-        // initialize the event emitter for this mirador instance
-        this.eventEmitter = new Mirador.EventEmitter();
-
-        // pass the config through the save and restore process,
-        // returning the config that will, in fact, populate the application
-        this.saveController = new Mirador.SaveController(jQuery.extend(true, {}, config, {'eventEmitter': this.eventEmitter}));
-
-        // initialize the application
-        this.viewer = new Mirador.Viewer({
-            'state': this.saveController,
-            'eventEmitter': this.eventEmitter
-        });
-        return this;
-    } else {
-        return new Mirador(config);
-    }
-  }
-  global.Mirador = global.Mirador || Mirador;
-})(window);
diff --git a/js/src/settings.js b/js/src/settings.js
deleted file mode 100644
index 0e5fc1d84a31c842489df2f9513494704647bedf..0000000000000000000000000000000000000000
--- a/js/src/settings.js
+++ /dev/null
@@ -1,234 +0,0 @@
-(function($) {
-
-  /**
-   * Default values for settings
-   */
-  $.DEFAULT_SETTINGS = {
-
-    'workspaceType': 'singleObject',
-
-    'saveSession' : false,  //whether or not to store session to local storage
-
-    'workspaces' : {
-      'singleObject': {
-        'label': 'Single Object',
-        'addNew': false,
-        'move': false,
-        'iconClass': 'image'
-      },
-      'compare': {
-        'label': 'Compare',
-        'iconClass': 'columns'
-      },
-      'bookReading': {
-        'defaultWindowOptions': {
-        },
-        'label': 'Book Reading',
-        'addNew': true,
-        'move': false,
-        'iconClass': 'book'
-      }
-    },
-
-    'manifests' : [],
-    'data' : [],
-
-    'layout': '1x1',
-
-    'openManifestsPage' : false, //defaults to false, whether or not Mirador should display the manifests page,
-                                //only valid if no windowObjects have been initialized
-                                //if there are multiple slots, it will be bound to the first slot and the selected manifest will open in that slot
-
-    // whether or not to preserve the order of the manifests, as provided in the configuration, in the manifest listing page
-    'preserveManifestOrder' : false,
-
-    //default window settings, but can be changed in Mirador configuration on initialization
-    'windowSettings' : {
-      "availableViews" : ['ThumbnailsView', 'ImageView', 'ScrollView', 'BookView'], //any subset removes others
-      "viewType" : 'ImageView', //one of [_'ThumbnailsView'_, 'ImageView', 'ScrollView', 'BookView'] - if using availableViews, must be in subset
-      "bottomPanel" : true, //whether or not to make the bottom panel available in this window
-      "bottomPanelVisible" : true, //whether or not to make the bottom panel visible in this window on load. This setting is dependent on bottomPanel being true
-      "sidePanel" : true, //whether or not to make the side panel available in this window
-      //control what is available in the side panel. if "sidePanel" is false, these options won't be applied
-      "sidePanelOptions" : {
-        "toc" : true,
-        "annotations" : false,
-        "tocTabAvailable": true,
-        "layersTabAvailable": false,
-        "searchTabAvailable": false,
-        "annotationTabAvailable": false
-      },
-      "sidePanelVisible" : true, //whether or not to make the side panel visible in this window on load. This setting is dependent on sidePanel being true
-      "overlay" : true, //whether or not to make the metadata overlay available/visible in this window
-      "canvasControls": { // The types of controls available to be displayed on a canvas
-        "annotations" : {
-          "annotationLayer" : true, //whether or not to make annotation layer available in this window
-          "annotationCreation" : true, /*whether or not to make annotation creation available in this window,
-                       only valid if annotationLayer is set to True and an annotationEndpoint is defined.
-                       This setting does NOT affect whether or not a user can edit an individual annotation that has already been created.*/
-          "annotationState" : 'off', //[_'off'_, 'on'] whether or not to turn on the annotation layer on window load
-          "annotationRefresh" : false, //whether or not to display the refresh icon for annotations
-        },
-        "imageManipulation" : {
-          "manipulationLayer" : true,
-          "controls" : {
-            "rotate" : true,
-            "brightness" : true,
-            "contrast" : true,
-            "saturate" : true,
-            "grayscale" : true,
-            "invert" : true,
-            "mirror" : false
-          }
-        }
-      },
-      "fullScreen" : true, //whether or not to make the window's fullScreen button visible to user
-      "displayLayout" : true, //whether or not to display all layout options, removing individual menu options is separate
-      //control individual menu items in layout menu. if "displayLayout" is false, these options won't be applied
-      "layoutOptions" : {
-        "newObject" : true,
-        "close" : true,
-        "slotRight" : true,
-        "slotLeft" : true,
-        "slotAbove" : true,
-        "slotBelow" : true,
-      }
-    },
-
-    'windowObjects' : [
-      /* Using the same settings listed in `windowSettings`, change the settings for a specific window
-       * Structured as an array of objects
-       * A few additional settings only available in `windowObjecs`
-       * "loadedManifest": [manifestURI] e.g. "http://dms-data.stanford.edu/data/manifests/Walters/qm670kv1873/manifest.json"
-       * "canvasID": [canvas URI] e.g. "http://dms-data.stanford.edu/data/manifests/Walters/qm670kv1873/canvas/canvas-12"
-       * "id" : [unique window ID - set by application and automatically saved in SaveController]
-       * "windowOptions" : [data specific to the view type, such as OSD bounds and zoom level - automatically saved in SaveController]
-       */
-    ],
-
-    // Control for whether or not to auto hide controls on the OSD canvas and specific durations in milliseconds
-    // durations assume `autoHideControls` is true
-    'autoHideControls': true,
-    'fadeDuration': 400,
-    'timeoutDuration': 3000,
-
-    'availableAnnotationModes': [
-
-    ],
-
-    'availableAnnotationDrawingTools': [
-       'Rectangle', 'Ellipse', 'Freehand', 'Polygon', 'Pin'
-    ],
-    'availableAnnotationStylePickers':[
-        'StrokeColor','FillColor','StrokeType'
-    ],
-    'drawingToolsSettings': {
-      // Additional tool settings.
-      /**
-       *'Pin': {
-       *},
-       **/
-      //'selectedColor': 'red',
-      'doubleClickReactionTime': 300,
-      'strokeColor': 'deepSkyBlue',
-      'fillColor': 'deepSkyBlue',
-      'fillColorAlpha': 0.0,
-      'shapeHandleSize':10,
-      'fixedShapeSize':10,
-      'newlyCreatedShapeStrokeWidthFactor':5,
-      'hoverColor':'yellow'
-    },
-
-    'availableExternalCommentsPanel': false,
-    'shapeHandleSize':10,
-
-
-    'availableCanvasTools': [
-
-    ],
-
-    // main (top) menu
-    //we don't actually take the height into account for the mirador-viewer div, so don't use for now
-    'mainMenuSettings': {
-      'show': true,
-      'buttons' : {
-        'bookmark' : false,
-        'layout' : true,
-        'options' : false,
-        'fullScreenViewer': true
-      }
-      //'height': 25,
-      //'width': '100%'
-    },
-
-    'workspacePanelSettings': {
-      'maxRows': 5,
-      'maxColumns': 5,
-      'preserveWindows': true
-    },
-
-    //true or false.  controls display of "Add new object from URL" on manifest listing page
-    'showAddFromURLBox' : true,
-
-    'buildPath' : 'build/mirador/',
-
-    'i18nPath' : 'locales/',
-
-    'imagesPath' : 'images/',
-
-    /**
-     *  Annotation backend that have instance-specific configuration data as a hash, e.g.:
-     *  {
-     *  name: 'backend name',
-     *  module: 'NameEndpoint',
-     *  options:
-     *  { 'url': '',
-     *    'storeId': 123,
-     *    'APIKey': '23983hf98j3f9283jf2983fj'
-     *  }
-     *  }
-     **/
-    'annotationEndpoint': {},
-
-    'annotationBodyEditor': {
-      'module': 'TinyMCEAnnotationBodyEditor',
-      'options': {
-        config: {
-          plugins: "image link media directionality",
-          toolbar: "bold italic | bullist numlist | link image media | removeformat | ltr rtl",
-          tags: []
-        }
-      }
-    },
-
-    'jsonStorageEndpoint': {
-      'name': 'JSONBlob API Endpoint',
-      'module': 'JSONBlobAPI',
-      'options': {
-        'ssl': true,
-        'port': '443',
-        'host': 'jsonblob.com'
-      }
-    },
-
-    'manifestsPanel': {
-      'name': 'Classic Mirador Manifests Panel',
-      'module': 'ManifestsPanel',
-      'options': {
-      }
-    },
-    
-    'sharingEndpoint': {
-      'url': '',
-      'storeId': 123,
-      'APIKey': '23983hf98j3f9283jf2983fj'
-    },
-
-    // linked image views configuration
-    'lockController' : {
-      'lockProfile' : 'lazyZoom',
-      'notifyMaxMin' : true
-    }
-  };
-
-}(Mirador));
diff --git a/js/src/utils/dialog-builder.js b/js/src/utils/dialog-builder.js
deleted file mode 100644
index 2edc2f13c44ef371155ba5ce9d181178f6f2b1d5..0000000000000000000000000000000000000000
--- a/js/src/utils/dialog-builder.js
+++ /dev/null
@@ -1,33 +0,0 @@
-(function ($) {
-  $.DialogBuilder = function (container) {
-    this.container = container || jQuery('.window');
-
-    bootbox.setDefaults({
-      container: this.container
-    });
-  };
-
-  $.DialogBuilder.prototype = {
-    confirm: function (message, callback) {
-      return this._attachEvents(bootbox.confirm(message, callback));
-    },
-    dialog: function(opts){
-      this._attachEvents(bootbox.dialog(opts));
-    },
-    _attachEvents:function(el){
-      var _this = this;
-      el.init(function(){
-        // set bigger z-index that one used in qtip
-        var zIndex = 20000;
-
-        jQuery(el).css('z-index',zIndex);
-        // workaround because bootstap does not support external configuration for backdrop parent
-        jQuery('.modal-backdrop').prependTo(_this.container).css('z-index',zIndex);
-      });
-      jQuery(el).on('hidden.bs.modal',function(){
-        jQuery('.modal-backdrop').remove();
-      });
-    }
-  };
-
-})(Mirador);
\ No newline at end of file
diff --git a/js/src/utils/eventemitter.js b/js/src/utils/eventemitter.js
deleted file mode 100644
index 1f16f82720e4e5708cc4483709a68bb2e35bf166..0000000000000000000000000000000000000000
--- a/js/src/utils/eventemitter.js
+++ /dev/null
@@ -1,109 +0,0 @@
-(function($) {
-  $.EventEmitter = function(config) {
-    jQuery.extend(true, this, {
-      'debug': $.EventEmitter.debug, // Log events to console if true
-      'trace': $.EventEmitter.trace,  // Use console.trace for logging if true, console.log if false
-      'debugExclude': $.EventEmitter.excludePatterns // substring patterns for event IDs to exclude
-    }, config);
-    this.emitterId = $.EventEmitter.nextId();
-    if (this.debug) {
-      this.logger = new $.EventEmitter.Logger({
-        trace: this.trace,
-        debugExclude: this.debugExclude
-      });
-    }
-  };
-
-  $.EventEmitter.id = 0;
-  $.EventEmitter.nextId = function() {
-    $.EventEmitter.id++;
-    return $.EventEmitter.id;
-  };
-
-  /************************
-   * BEGIN debug settings *
-   ************************/
-  $.EventEmitter.debug = false;
-  $.EventEmitter.trace = false;
-
-  // Event IDs that contains any substring in the array will be ignored by the logger
-  // e.g. ['updateTooltips', 'ANNO.*UPDATED']
-  $.EventEmitter.excludePatterns = [];
-
-  $.EventEmitter.Logger = function(options) {
-    this.trace = options.trace;
-    this.debugExclude = options.debugExclude;
-    this.scaffoldMap = {};
-  };
-  $.EventEmitter.Logger.prototype = {
-    log: function() {
-      if (this.trace) {
-        console.trace.apply(console, arguments);
-      } else {
-        console.log.apply(console, arguments);
-      }
-    },
-    exclude: function(str) {
-      var patterns = this.debugExclude;
-      for (var i = 0; i < patterns.length; ++i) {
-        if (str.match(patterns[i])) {
-          return true;
-        }
-      }
-      return false;
-    },
-    scaffoldHandler: function(eventId, handler) {
-      var _this = this;
-      var scaffold = function() {
-        _this.log("EventEmitter:handler:", eventId, handler, Array.prototype.slice.call(arguments));
-        handler.apply(null, arguments);
-      };
-      this.scaffoldMap[handler] = scaffold;
-      return scaffold;
-    },
-    unscaffold: function(handler) {
-      var scaffold = this.scaffoldMap[handler];
-      delete this.scaffoldMap[handler];
-      return scaffold;
-    }
-  };
-  /**********************
-   * END debug settings *
-   **********************/
-
-  ['subscribe', 'unsubscribe', 'publish'].forEach(function(action) {
-    $.EventEmitter.prototype[action] = function() {
-      var args = Array.prototype.slice.call(arguments);
-      var eventId = args[0];
-      var globalEventId = this.emitterId.toString() + '::' + eventId;
-      var logging = this.logger && !this.logger.exclude(globalEventId);
-      var event;
-
-      if (action === 'subscribe') {
-        event = {
-          name: eventId,
-          handler: args[1]
-        };
-        if (logging) {
-          args[1] = this.logger.scaffoldHandler(globalEventId, args[1]);
-        }
-      }
-
-      if (action === 'unsubscribe') {
-        if (logging) {
-          args[1] = this.logger.unscaffold(args[1]);
-        }
-      }
-
-      args[0] = globalEventId;
-      if (logging) {
-        this.logger.log("EventEmitter:" + action + ":", args);
-      }
-      jQuery[action].apply(jQuery, args);
-
-      if (event) {
-        return event;
-      }
-    };
-  });
-})(Mirador);
diff --git a/js/src/utils/handlebars.js b/js/src/utils/handlebars.js
deleted file mode 100644
index 55a29f006c361be4ec0c903e98337118727bf8ac..0000000000000000000000000000000000000000
--- a/js/src/utils/handlebars.js
+++ /dev/null
@@ -1,7 +0,0 @@
-(function($) {
-
-  $.Handlebars = (function() {
-    return Handlebars.create();
-  })();
-
-}(Mirador));
diff --git a/js/src/utils/iiif.js b/js/src/utils/iiif.js
deleted file mode 100644
index 4e896df8ea31368dff533b5e05d21a32c107de88..0000000000000000000000000000000000000000
--- a/js/src/utils/iiif.js
+++ /dev/null
@@ -1,96 +0,0 @@
-
-(function($) {
-
-  $.Iiif = {
-
-    getImageUrl: function(image) {
-
-      if (!image.images[0].resource.service) {
-        id = image.images[0].resource['default'].service['@id'];
-        id = id.replace(/\/$/, "");
-        return id;
-      }
-      var id = image.images[0].resource.service['@id'];
-      id = id.replace(/\/$/, "");
-
-      return id;
-    },
-
-    getVersionFromContext: function(context) {
-      if (context instanceof Array) {
-        context = context.filter(function(ctx) {
-          return typeof ctx === "string" && ctx.indexOf('http://iiif.io') === 0;
-        })[0];
-      }
-      if (context == "http://iiif.io/api/image/2/context.json") {
-        return "2.0";
-      } else {
-        return "1.1";
-      }
-    },
-
-    getComplianceLevelFromProfile: function(profile) {
-        // what to return if we can't determine profile? 0 is not a good idea
-        // would be better to have $.Iiif.supports(profile, feature) but that needs a lot more! 
-        var compliance = -1;
-        var complianceString = null;
-        if(profile) {
-            if(typeof(profile) === 'string'){
-                complianceString = profile;    
-            } else if (typeof(profile) === 'object'){
-               complianceString = profile[0];
-            }   
-            switch(complianceString){
-                case "http://iiif.io/api/image/2/level0.json":
-                    compliance = 0;
-                    break;
-                case "http://iiif.io/api/image/2/level1.json":
-                    compliance = 1;
-                    break;
-                case "http://iiif.io/api/image/2/level2.json":
-                    compliance = 2;
-                    break;
-            }
-        }
-        return compliance;
-    },
-    
-    makeUriWithWidth: function(uri, width, version) {
-      uri = uri.replace(/\/$/, '');
-      if (version[0] == '1') {
-        return uri + '/full/' + width + ',/0/native.jpg';
-      } else {
-        return uri + '/full/' + width + ',/0/default.jpg';
-      }
-    },
-
-    getImageHostUrl: function(json) {
-      var regex,
-          matches = [];
-
-      if (!json.hasOwnProperty('image_host')) {
-
-        json.image_host = json.tilesUrl || json['@id'] || '';
-
-       if (json.hasOwnProperty('identifier')) {
-          regex = new RegExp('/?' + json.identifier + '/?$', 'i');
-          json.image_host = json.image_host.replace(regex, '');
-
-        } else {
-          regex = new RegExp('(.*)\/(.*)$');
-          matches = regex.exec(json.image_host);
-
-          if (matches && matches.length > 1) {
-            json.image_host = matches[1];
-            json.identifier = matches[2];
-          }
-        }
-      }
-
-      return json.image_host;
-    }
-
-  };
-
-}(Mirador));
-
diff --git a/js/src/utils/jsonBlobApi.js b/js/src/utils/jsonBlobApi.js
deleted file mode 100644
index 3db2e1b8406e2a4e74d6ab6e94db58f3d6b7e903..0000000000000000000000000000000000000000
--- a/js/src/utils/jsonBlobApi.js
+++ /dev/null
@@ -1,84 +0,0 @@
-(function($){
-
-  var JSONBLOB_API_ENDPOINT = '/api/jsonBlob';
-
-  function getAPIUri(host, port, ssl, body) {
-
-	var proto = 'http';
-	port = port ? port : '80';
-
-	if ( ssl ) {
-		proto = 'https';
-		port = port ? port : '443';
-	}
-
-	host = host ? host : 'jsonblob.com';
-
-	var path = JSONBLOB_API_ENDPOINT;
-
-        // If the body is a string, this is a blob GET operation, 
-	// otherwise it's a POST	
-        if ( typeof body === 'string' || body instanceof String ){
-		path += '/' + body;
-	}
-
-	return proto + '://' + host + ':' + port + path;
-  }
-
-  function initSettings(method, host, port, ssl, requestBody) {
-
-	var ajaxSettings = {
-		type: method,
-		url: getAPIUri(host, port, ssl, requestBody),
-		contentType: 'application/json; charset=UTF-8',
-		accept: 'application/json',
-		dataType: 'json',
-		processData: false
-	};
-
-	// POST The data
-        if ( typeof requestBody  !== 'string' && !(requestBody instanceof String) ) {
-		ajaxSettings.data = JSON.stringify(requestBody);
-	}
-
-	return ajaxSettings;
-  }
-
-  function syncRequest(method, host, port, ssl, requestBody) {
-	var result;
-	var settings = initSettings(method, host, port, ssl, requestBody);
-	settings.async = false;
-	settings.success = function(data, textStatus, request) {
-          result = data;
-        };
-	jQuery.ajax(settings);
-	return result;
-  }
-
-  function asyncRequest(method, host, port, ssl, requestBody, cb) {
-	var settings = initSettings(method, host, port, ssl, requestBody);
-	settings.success = cb;
-	jQuery.ajax(settings);
-  }
-
-  $.JSONBlobAPI = function(options) {
-	this.options = options;
-  };
-
-
-  $.JSONBlobAPI.prototype = {
-	readSync: function(blobId) {
-		return syncRequest('GET', this.options.host, this.options.port, this.options.ssl, blobId);
-	},
-	save: function(blob) {
-		var deferred = jQuery.Deferred();
-		asyncRequest('POST', this.options.host, this.options.port, this.options.ssl, blob, function(data, textStatus, request) {
-			var blobid = request.getResponseHeader('X-Jsonblob');
-			deferred.resolve(blobid);
-		});
-		return deferred.promise();
-	}
-  };
-
-}(Mirador));
-
diff --git a/js/src/utils/jsonLd.js b/js/src/utils/jsonLd.js
deleted file mode 100644
index f40ca67574aaa7e007f3782c73315fb2854deab5..0000000000000000000000000000000000000000
--- a/js/src/utils/jsonLd.js
+++ /dev/null
@@ -1,72 +0,0 @@
-(function($) {
-  /** Get the language to use for displaying the given propertyValue.
-   *
-   * Uses the algorithm described in
-   * http://iiif.io/api/presentation/2.1/#language-of-property-values
-   */
-  function getDisplayLanguage(languages, items) {
-    var itemLanguages = items.map(function(itm) {
-      if (typeof itm === 'string') {
-        return null;
-      } else {
-        return itm['@language'];
-      }
-    });
-
-    var bestLanguageMatch = null;
-    jQuery.each(languages, function(idx, lang) {
-      if (bestLanguageMatch !== null) {
-        return false;
-      } else {
-        if (itemLanguages.indexOf(lang) !== -1) {
-          bestLanguageMatch = lang;
-        }
-      }
-    });
-
-    // Only pick the first available language if **all** property values
-    // have an associated language
-    if (bestLanguageMatch === null && itemLanguages.indexOf(null) === -1) {
-      bestLanguageMatch = itemLanguages[0];
-    }
-    return bestLanguageMatch;
-  }
-
-  $.JsonLd = {
-    getTextValue: function(propertyValue, language) {
-      var languages = i18next.languages || ['en'];
-      if (typeof language === 'string') {
-        languages = [language].concat(languages);
-      } else if (Array.isArray(language)) {
-        languages = language.concat(languages);
-      }
-
-      if (typeof propertyValue === 'undefined' || propertyValue === null) {
-        return '';
-      }
-      else if (typeof propertyValue === 'string') {
-        return $.sanitizeHtml(propertyValue);
-      }
-      else if (Array.isArray(propertyValue)) {
-        var displayLanguage = getDisplayLanguage(languages, propertyValue);
-        var text = '';
-        jQuery.each(propertyValue, function(idx, item) {
-          var textToAdd = '';
-          if (typeof item === 'string' && displayLanguage === null) {
-            textToAdd = item;
-          } else if (item['@language'] === displayLanguage) {
-            textToAdd = item['@value'];
-          }
-          if (textToAdd !== '' && text !== '') {
-            text += '<br/>';
-          }
-          text += textToAdd;
-        });
-        return $.sanitizeHtml(text);
-      } else {
-        return $.sanitizeHtml(propertyValue['@value']);
-      }
-    }
-  };
-  
-}(Mirador));
diff --git a/js/src/utils/localJsonBlobApi.js b/js/src/utils/localJsonBlobApi.js
deleted file mode 100644
index ca04b3cf683d22bded150aeec93532fa99399a3f..0000000000000000000000000000000000000000
--- a/js/src/utils/localJsonBlobApi.js
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Local fake JsonBlob endpoint */
-
-/* global Storage, Mirador */
-
-(function($){
-    function generateUUID() {
-        var d = new Date().getTime();
-        var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
-            var r = (d + Math.random()*16)%16 | 0;
-            d = Math.floor(d/16);
-            return (c==='x' ? r : (r&0x3|0x8)).toString(16);
-        });
-        return uuid;
-    }
-    
-    $.LocalJSONBlobAPI = function(opts) {
-          this.options = {
-              storage: window.localStorage
-          };
-          jQuery.extend(this.options, opts);
-    };
-
-    $.LocalJSONBlobAPI.prototype = {
-        readSync: function(blobId) {
-            return JSON.parse(this.options.storage.getItem(blobId));
-        },
-        save: function(blob) {
-            var deferred = jQuery.Deferred(),
-                uuid = generateUUID();
-            this.options.storage.setItem("BM-" + uuid, JSON.stringify(blob));
-            deferred.resolve("BM-" + uuid);
-            return deferred.promise();
-        }
-    };
-}(Mirador));
-
diff --git a/js/src/utils/openSeadragon.js b/js/src/utils/openSeadragon.js
deleted file mode 100644
index a62b08232683bc3f0500e281d80435f48c343cbe..0000000000000000000000000000000000000000
--- a/js/src/utils/openSeadragon.js
+++ /dev/null
@@ -1,23 +0,0 @@
-(function($) {
-
-  $.OpenSeadragon = function(options) {
-
-    var osd = OpenSeadragon(
-
-      jQuery.extend({
-        preserveViewport: true,
-        visibilityRatio:  1,
-        minZoomLevel:     0,
-        defaultZoomLevel: 0,
-        blendTime:        0.1,
-        alwaysBlend:      false,
-        showNavigationControl: false
-      }, options)
-
-    );
-    
-    return osd;
-
-  };
-
-}(Mirador));
diff --git a/js/src/utils/saveController.js b/js/src/utils/saveController.js
deleted file mode 100755
index 16a39204e81f37052c0c288f67999f4526aed240..0000000000000000000000000000000000000000
--- a/js/src/utils/saveController.js
+++ /dev/null
@@ -1,420 +0,0 @@
-(function($) {
-
-  $.SaveController = function(config) {
-
-    jQuery.extend(true, this, {
-      currentConfig: null,
-      originalConfig: null, // Don't know if we really need this.
-      shareEndpoint: null, // the place where POST requests for new saved sessions will go
-      historySize: null, // wishful thinking for later.
-      sessionID: null,
-      slots: [],
-      eventEmitter: null
-    });
-
-    // error check - removes invalid annotation tools
-    if (config.availableAnnotationDrawingTools) {
-      config.availableAnnotationDrawingTools = jQuery.grep(config.availableAnnotationDrawingTools, function(element, index) {
-        return jQuery.inArray(element, $.DEFAULT_SETTINGS.availableAnnotationDrawingTools) >= 0;
-      });
-    }
-
-    // error check on mainMenuSettings
-    if (config.mainMenuSettings && !config.mainMenuSettings.buttons) {
-      config.mainMenuSettings.buttons = {};
-    }
-
-    // if a user used dot notation for nested settings, unpack
-    // e.g. windowSettings.canvasControls.annotations.annotationState
-    function index(previousValue,currentValue,currentIndex) {
-      var newObj = {};
-      newObj[currentValue] = previousValue;
-      return newObj;
-    }
-    jQuery.each(config, function(key, value) {
-      if (typeof key === "string" && key.indexOf('.') !== -1) {
-        var array = key.split('.').reverse();
-        var object = array.reduce(index, value);
-        delete config[key];
-        jQuery.extend(true, config, object);
-      }
-    });
-
-    /*
-    We want to deep copy/merge nested objects in the config, but array values should be overwritten
-    So, stringify arrays so extend overwrites them and then convert them back to arrays
-    */
-    function iterateStringify(object) {
-      for (var property in object) {
-        if (object.hasOwnProperty(property)) {
-          if (object[property] instanceof Array) {
-            object[property] = JSON.stringify(object[property]);
-          } else if (typeof object[property] === "object") {
-            iterateStringify(object[property]);
-          } else {}
-        }
-      }
-    }
-    function iterateParse(object) {
-      for (var property in object) {
-        if (object.hasOwnProperty(property)) {
-          if (typeof object[property] === "string" && object[property][0] === '[') {
-            object[property] = JSON.parse(object[property]);
-          } else if (typeof object[property] === "object") {
-            iterateParse(object[property]);
-          } else {}
-        }
-      }
-    }
-    iterateStringify(config);
-    var newConfig = jQuery.extend(true, {}, $.DEFAULT_SETTINGS, config);
-    iterateParse(newConfig);
-    this.init(newConfig);
-  };
-
-
-  $.SaveController.prototype = {
-
-    init: function(config) {
-      var _this = this;
-
-      this.eventEmitter = config.eventEmitter;
-
-      // Don't want to save session
-      if (config.saveSession === false) {
-        this.currentConfig = config;
-        this.bindEvents();
-        return false;
-      }
-
-      var saveModule = config.jsonStorageEndpoint.module;
-      var saveOptions = config.jsonStorageEndpoint.options;
-      _this.storageModule = new $[saveModule](saveOptions);
-
-      var sessionID = window.location.hash.substring(1); // will return empty string if none exists, causing the or statement below to evaluate to false, generating a new sesssionID.
-
-      if (sessionID) {
-        this.sessionID =  sessionID;
-      } else {
-        this.sessionID = $.genUUID(); // might want a cleaner thing for the url.
-      }
-
-      if (localStorage.getItem(this.sessionID)) {
-        this.currentConfig = JSON.parse(localStorage.getItem(sessionID));
-      } else {
-        var paramURL = window.location.search.substring(1);
-        if (paramURL) {
-          //get json from JSON storage and set currentConfig to it
-          var params = paramURL.split('=');
-          var jsonblob = params[1];
-          this.currentConfig = this.storageModule.readSync(jsonblob) || config;
-        } else {
-          this.currentConfig = config;
-        }
-      }
-      //remove empty hashes from config
-      this.currentConfig.windowObjects = jQuery.map(this.currentConfig.windowObjects, function(value, index) {
-        if (Object.keys(value).length === 0) return null;
-        return value;
-      });
-
-      //add UUIDs to parts of config that need them
-      if (this.currentConfig.windowObjects) {
-        jQuery.each(this.currentConfig.windowObjects, function(index, window) {
-          if (!window.id) {
-            window.id = $.genUUID();
-          }
-        });
-      }
-
-      // see: http://html5demos.com/history and http://diveintohtml5.info/history.html
-      // put history stuff here, for a great cross-browser demo, see: http://browserstate.github.io/history.js/demo/
-      // http://stackoverflow.com/questions/17801614/popstate-passing-popped-state-to-event-handler
-
-      //also remove ?json bit so it's a clean URL
-      var cleanURL = window.location.href.replace(window.location.search, "");
-      if (window.location.hash) {
-       history.replaceState(this.currentConfig, "Mirador Session", cleanURL);
-      } else {
-       history.replaceState(this.currentConfig, "Mirador Session", cleanURL+"#"+this.sessionID);
-      }
-
-      this.bindEvents();
-
-    },
-
-    getWindowObjectById: function(windowId) {
-      var returnObject = null;
-      jQuery.each(this.currentConfig.windowObjects, function(index, window) {
-        if (window.id === windowId) {
-          returnObject = window;
-          return false;
-        }
-      });
-      return returnObject;
-    },
-
-    getWindowAnnotationsList: function(windowId) {
-      if (this.windowsAnnotationsLists) {
-        return this.windowsAnnotationsLists[windowId];
-      } else {
-        return null;
-      }
-    },
-
-    getSlots: function() {
-      return this.slots;
-    },
-
-    getWindowElement: function(windowId) {
-      if (this.windowsElements) {
-        return this.windowsElements[windowId];
-      } else {
-        return null;
-      }
-    },
-
-    getStateProperty: function(prop) {
-      return this.get(prop, 'currentConfig');
-    },
-
-    getManifestIndex: function(manifestUri) {
-      var manifestIndex = -1;
-      jQuery.each(this.currentConfig.data, function(index, dataObj) {
-        if (dataObj.manifestUri === manifestUri) {
-          manifestIndex = index;
-          return false;
-        }
-      });
-      return manifestIndex;
-    },
-
-    get: function(prop, parent) {
-      if (parent) {
-        return this[parent][prop];
-      }
-      return this[prop];
-    },
-
-    set: function(prop, value, options) {
-      var _this = this;
-      // when a property of the config is updated,
-      // save it to localStore.
-      if (options) {
-        this[options.parent][prop] = value;
-      } else {
-        this[prop] = value;
-      }
-      if (this.currentConfig.saveSession) {
-        this.save();
-      }
-      _this.eventEmitter.publish("saveControllerConfigUpdated");
-    },
-
-    bindEvents: function() {
-      var _this = this;
-      // listen to existing events and use the
-      // available data to update the appropriate
-      // field in the stored config.
-
-      _this.eventEmitter.subscribe('manifestsPanelVisible.set', function(event, manifestPanelVisible) {
-        _this.set("manifestPanelVisible", manifestPanelVisible, {parent: "currentConfig"} );
-      });
-
-      _this.eventEmitter.subscribe('windowUpdated', function(event, options) {
-        var windowObjects = _this.currentConfig.windowObjects;
-        if (windowObjects && windowObjects.length > 0) {
-          jQuery.each(windowObjects, function(index, window){
-            if (window.id === options.id) {
-              jQuery.extend(windowObjects[index], options);
-            }
-          });
-        } else {
-          windowObjects = [options];
-        }
-        _this.set("windowObjects", windowObjects, {parent: "currentConfig"} );
-      });
-
-      _this.eventEmitter.subscribe("imageBoundsUpdated", function(event, options) {
-        var windowObjects = _this.currentConfig.windowObjects;
-        if (windowObjects && windowObjects.length > 0) {
-          jQuery.each(windowObjects, function(index, window){
-            if (window.id === options.id) {
-              if (!windowObjects[index].windowOptions) {
-                windowObjects[index].windowOptions = {};
-              }
-              windowObjects[index].windowOptions.osdBounds = options.osdBounds;
-            }
-          });
-        }
-        _this.set("windowObjects", windowObjects, {parent: "currentConfig"} );
-      });
-
-      _this.eventEmitter.subscribe('ANNOTATIONS_LIST_UPDATED', function(event, options) {
-        if (!_this.windowsAnnotationsLists) {
-          _this.windowsAnnotationsLists = {};
-        }
-        _this.windowsAnnotationsLists[options.windowId] = options.annotationsList;
-        _this.eventEmitter.publish('annotationListLoaded.' + options.windowId);
-      });
-
-      _this.eventEmitter.subscribe('WINDOW_ELEMENT_UPDATED', function(event, options) {
-        if (!_this.windowsElements) {
-          _this.windowsElements = {};
-        }
-        _this.windowsElements[options.windowId] = options.element;
-      });
-
-      _this.eventEmitter.subscribe('windowSlotAddressUpdated', function(event, options) {
-        var windowObjects = _this.currentConfig.windowObjects;
-        if (windowObjects && windowObjects.length > 0) {
-          jQuery.each(windowObjects, function(index, window){
-            if (window.id === options.id) {
-              jQuery.extend(windowObjects[index], options);
-            }
-          });
-        } else {
-          windowObjects = [options];
-        }
-        _this.set("windowObjects", windowObjects, {parent: "currentConfig"} );
-      });
-
-      _this.eventEmitter.subscribe('manifestQueued', function(event, manifestObject, repository) {
-        var data = _this.currentConfig.data,
-        objectInConfig = false,
-        url = manifestObject.uri;
-
-        jQuery.each(data, function(index, manifestObject){
-          if (manifestObject.manifestUri === url) {
-            objectInConfig = true;
-          }
-        });
-        if (!objectInConfig) {
-          data.push({"manifestUri":url, "location":repository});
-          _this.set("data", data, {parent: "currentConfig"});
-        }
-        var manifests = _this.currentConfig.manifests;
-        manifests[url] = manifestObject;
-        _this.set('manifests', manifests, {parent: 'currentConfig'});
-      });
-
-      _this.eventEmitter.subscribe("slotsUpdated", function(event, options) {
-        _this.slots = options.slots;
-      });
-
-      _this.eventEmitter.subscribe("layoutChanged", function(event, layoutDescription) {
-        // string parents to prevent invalid circular representation.
-        var serialisedLayout = JSON.stringify(layoutDescription, function(key, value) {
-          if (key === 'parent') return undefined;
-          return value;
-        });
-        _this.set('layout', serialisedLayout, {parent: "currentConfig"} );
-      });
-
-      _this.eventEmitter.subscribe("windowSlotAdded", function(event, options) {
-        var windowObjects = _this.currentConfig.windowObjects,
-        inArray = jQuery.grep(windowObjects, function(windowObj) {
-          return windowObj.id === options.id;
-        });
-        if (inArray.length === 0) {
-          windowObjects.push({
-            'id' : options.id,
-            'slotAddress': options.slotAddress
-          });
-          _this.set("windowObjects", windowObjects, {parent: "currentConfig"} );
-        }
-      });
-
-        _this.eventEmitter.subscribe("windowsRemoved", function(event) {
-          _this.set("windowObjects", [], {parent: "currentConfig"} );
-        });
-
-      _this.eventEmitter.subscribe("windowRemoved", function(event, windowID) {
-        var windowObjects = jQuery.grep(_this.currentConfig.windowObjects, function(window, index) {
-          return window.id !== windowID;
-        });
-        _this.set("windowObjects", windowObjects, {parent: "currentConfig"} );
-      });
-
-
-      _this.eventEmitter.subscribe('DELETE_FROM_CONFIG', function(event, options) {
-        var windowObjects = jQuery.grep(_this.currentConfig.windowObjects, function(window, index) {
-          return window.loadedManifest !== options.loadedManifest || window.id;
-        });
-        _this.set("windowObjects", windowObjects, {parent: "currentConfig"} );
-      });
-
-      _this.eventEmitter.subscribe('etc...', function(junk) {
-        // handle adding the property in the appropriate place
-        // in this.currentConfig by passing to the _this.set(),
-        // which "saves" to localstore as a side effect.
-
-      });
-
-      // We could have simply listened to the 'set' event that
-      // would have been emitted by objects when their models were
-      // updated and sent the results to a parser function that
-      // would extract the calling object's properties in the config
-      // and updated them if they were different, but we can't
-      // currently do that the way the app is written, since we
-      // didn't actually follow that patttern almost anywhere.
-      //
-      // _this.eventEmitter.subscribe('set', function(junk) {
-      //  // 1.) send the junk to a parser function
-      //  // 2.) use this.set(parsedJunk) to update
-      //  // this.currentConfig, with the side effect of
-      //  // saving to localStorage.
-      //
-      // });
-
-      // you may need to bind another event here that responds to the
-      // user navigating history, for the purpose of popping the
-      // history entry back off.
-
-    },
-
-    cleanup: function(obj) {
-
-      /**
-       * Setup an array-based implementation of a Set
-       * to track the objects we have
-       * already cloned - this will generically clean circular refs.
-       **/
-      var clonedSet = [];
-
-      function cloner(obj) {
-
-        if(obj === null || typeof(obj) != 'object') {
-          return obj;
-        }
-
-        if (clonedSet.indexOf(obj) === -1) {
-          clonedSet.push(obj);
-          var temp = Array.isArray(obj) ? [] : {};
-          for(var key in obj) {
-            if (obj.hasOwnProperty(key)) {
-              temp[key] = cloner(obj[key]);
-            }
-          }
-          return temp;
-        }
-
-        return undefined;
-      }
-
-      return cloner(obj);
-    },
-
-    save: function() {
-      var _this = this;
-
-      // the hash must be stringified because
-      // localStorage is a key:value store that
-      // only accepts strings.
-
-      localStorage.setItem(_this.sessionID, JSON.stringify(_this.cleanup(_this.currentConfig)));
-    }
-
-  };
-
-}(Mirador));
diff --git a/js/src/utils/utils.js b/js/src/utils/utils.js
deleted file mode 100644
index 0d12427af8be1ba1dbefbec77e3fa1b506ce0668..0000000000000000000000000000000000000000
--- a/js/src/utils/utils.js
+++ /dev/null
@@ -1,283 +0,0 @@
-(function($) {
-
-  $.trimString = function(str) {
-    return str.replace(/^\s+|\s+$/g, '');
-  };
-
-  /* --------------------------------------------------------------------------
-     Methods related to manifest data
-     -------------------------------------------------------------------------- */
-
-  $.getImageIndexById = function(imagesList, id) {
-    var imgIndex = 0;
-
-    jQuery.each(imagesList, function(index, img) {
-      if ($.trimString(img['@id']) === $.trimString(id)) {
-        imgIndex = index;
-      }
-    });
-
-    return imgIndex;
-  };
-
-  $.getThumbnailForCanvas = function(canvas, width) {
-    var version = "1.1",
-    compliance = -1,
-    service,
-    thumbnailUrl;
-
-    // Ensure width is an integer...
-    width = parseInt(width, 10);
-
-    // Respecting the Model...
-    if (canvas.hasOwnProperty('thumbnail')) {
-      // use the thumbnail image, prefer via a service
-      if (typeof(canvas.thumbnail) == 'string') {
-        thumbnailUrl = canvas.thumbnail;
-      } else if (canvas.thumbnail.hasOwnProperty('service')) {
-        service = canvas.thumbnail.service;
-        if(service.hasOwnProperty('profile')) {
-            compliance = $.Iiif.getComplianceLevelFromProfile(service.profile);
-        }
-        if(compliance === 0){
-            // don't change existing behaviour unless compliance is explicitly 0
-            thumbnailUrl = canvas.thumbnail['@id'];
-        } else {
-            // Get the IIIF Image API via the @context
-            if (service.hasOwnProperty('@context')) {
-                version = $.Iiif.getVersionFromContext(service['@context']);
-            }
-            thumbnailUrl = $.Iiif.makeUriWithWidth(service['@id'], width, version);
-        }
-      } else {
-        thumbnailUrl = canvas.thumbnail['@id'];
-      }
-    } else {
-      // No thumbnail, use main image
-      var resource = canvas.images[0].resource;
-      service = resource['default'] ? resource['default'].service : resource.service;
-      if (service.hasOwnProperty('@context')) {
-        version = $.Iiif.getVersionFromContext(service['@context']);
-      }
-      thumbnailUrl = $.Iiif.makeUriWithWidth(service['@id'], width, version);
-    }
-    return thumbnailUrl;
-  };
-
-  /*
-     miscellaneous utilities
-     */
-
-  $.getQueryParams = function(url) {
-    var assoc  = {};
-    var decode = function (s) { return decodeURIComponent(s.replace(/\+/g, " ")); };
-    var queryString = url.split('?')[1];
-    if (typeof queryString === "undefined") {
-      return {};
-    }
-    var keyValues = queryString.split('&');
-
-    for(var i in keyValues) {
-      var key = keyValues[i].split('=');
-      if (key.length > 1) {
-        assoc[decode(key[0])] = decode(key[1]);
-      }
-    }
-
-    return assoc;
-  };
-
-  $.genUUID = function() {
-    var idNum = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
-      var r = Math.random() * 16|0, v = c == 'x' ? r : (r&0x3|0x8);
-      return v.toString(16);
-    });
-
-    return idNum;
-  };
-
-  jQuery.fn.slideFadeToggle  = function(speed, easing, callback) {
-    return this.animate({opacity: 'toggle', height: 'toggle'}, speed, easing, callback);
-  };
-
-  $.throttle = function(func, wait, options) {
-    var context, args, result;
-    var timeout = null;
-    var previous = 0;
-
-    if (typeof options !== 'undefined') {
-      options = {};
-    }
-
-    var later = function() {
-      previous = options.leading === false ? 0 : new Date();
-      timeout = null;
-      result = func.apply(context, args);
-    };
-    return function() {
-      var now = new Date();
-      if (!previous && options.leading === false) previous = now;
-      var remaining = wait - (now - previous);
-      context = this;
-      args = arguments;
-      if (remaining <= 0) {
-        clearTimeout(timeout);
-        timeout = null;
-        previous = now;
-        result = func.apply(context, args);
-      } else if (!timeout && options.trailing !== false) {
-        timeout = setTimeout(later, remaining);
-      }
-      return result;
-    };
-  };
-
-  $.debounce = function(func, wait, immediate) {
-    var timeout, args, context, timestamp, result;
-    return function() {
-      context = this;
-      args = arguments;
-      timestamp = new Date();
-      var later = function() {
-        var last = (new Date()) - timestamp;
-        if (last < wait) {
-          timeout = setTimeout(later, wait - last);
-        } else {
-          timeout = null;
-          if (!immediate) result = func.apply(context, args);
-        }
-      };
-      var callNow = immediate && !timeout;
-      if (!timeout) {
-        timeout = setTimeout(later, wait);
-      }
-      if (callNow) result = func.apply(context, args);
-      return result;
-    };
-  };
-
-  // http://upshots.org/javascript/jquery-test-if-element-is-in-viewport-visible-on-screen
-  $.isOnScreen = function(elem, outsideViewportFactor) {
-    var factor = 1;
-    if (outsideViewportFactor) {
-      factor = outsideViewportFactor;
-    }
-    var win = jQuery(window);
-    var viewport = {
-      top : (win.scrollTop() * factor),
-      left : (win.scrollLeft() * factor)
-    };
-    viewport.bottom = (viewport.top + win.outerHeight()) * factor;
-    viewport.right = (viewport.left + win.outerWidth()) * factor;
-
-    var el = jQuery(elem);
-    var bounds = el.offset();
-    bounds.bottom = bounds.top + el.height();
-    bounds.right = bounds.left + el.width();
-
-    return (!(viewport.right < bounds.left || viewport.left > bounds.right || viewport.bottom < bounds.top || viewport.top > bounds.bottom));
-  };
-
-  $.getRangeIDByCanvasID = function(structures, canvasID /*, [given parent range] (for multiple ranges, later) */) {
-    var ranges = jQuery.grep(structures, function(range) { return jQuery.inArray(canvasID, range.canvases) > -1; }),
-    rangeIDs = jQuery.map(ranges,  function(range) { return range['@id']; });
-
-    return rangeIDs;
-  };
-
-  $.layoutDescriptionFromGridString = function (gridString) {
-    var columns = parseInt(gridString.substring(gridString.indexOf("x") + 1, gridString.length),10),
-    rowsPerColumn = parseInt(gridString.substring(0, gridString.indexOf("x")),10),
-    layoutDescription = {
-      type:'row'
-    };
-
-    if (gridString === "1x1") return layoutDescription;
-
-    layoutDescription.children = [];
-
-    // Javascript does not have range expansions quite yet,
-    // long live the humble for loop.
-    // Use a closure to contain the column and row variables.
-    for (var i = 0, c = columns; i < c; i++) {
-      var column = { type: 'column'};
-
-      if (rowsPerColumn > 1) {
-        column.children = [];
-        for (var j = 0, r = rowsPerColumn; j < r; j++) {
-          column.children.push({
-            type: 'row'
-          });
-        }
-      }
-
-      layoutDescription.children.push(column);
-    }
-
-    return layoutDescription;
-  };
-
-  // Configurable Promises
-  $.createImagePromise = function(imageUrl) {
-    var img = new Image(),
-    dfd = jQuery.Deferred();
-
-    img.onload = function() {
-      dfd.resolve(img.src);
-    };
-
-    img.onerror = function() {
-      dfd.reject(img.src);
-    };
-
-    dfd.fail(function() {
-      console.log('image failed to load: ' + img.src);
-    });
-
-    img.src = imageUrl;
-    return dfd.promise();
-  };
-
-  $.enterFullscreen = function(el) {
-    if (el.requestFullscreen) {
-      el.requestFullscreen();
-    } else if (el.mozRequestFullScreen) {
-      el.mozRequestFullScreen();
-    } else if (el.webkitRequestFullscreen) {
-      el.webkitRequestFullscreen();
-    } else if (el.msRequestFullscreen) {
-      el.msRequestFullscreen();
-    }
-  };
-
-  $.exitFullscreen = function() {
-    if (document.exitFullscreen) {
-      document.exitFullscreen();
-    } else if (document.mozCancelFullScreen) {
-      document.mozCancelFullScreen();
-    } else if (document.webkitExitFullscreen) {
-      document.webkitExitFullscreen();
-    }
-  };
-
-  $.isFullscreen = function() {
-    var fullscreen = $.fullscreenElement();
-    return (fullscreen.length > 0);
-  };
-
-  $.fullscreenElement = function() {
-    return (document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement);
-  };
-
-  $.sanitizeHtml = function(dirty) {
-    return sanitizeHtml(dirty, {
-      allowedTags: ['a', 'b', 'br', 'i', 'img', 'p', 'span', 'strong', 'em', 'ul', 'ol', 'li'],
-      allowedAttributes: {
-        'a': ['href', 'target'],
-        'img': ['src', 'alt'],
-        'p': ['dir']
-      }
-    });
-  };
-
-}(Mirador));
diff --git a/js/src/viewer.js b/js/src/viewer.js
deleted file mode 100644
index 939e0973371fb4ff58a036d88d99fb4f12e866dd..0000000000000000000000000000000000000000
--- a/js/src/viewer.js
+++ /dev/null
@@ -1,325 +0,0 @@
-(function($) {
-
-  $.Viewer = function(options) {
-    jQuery.extend(true, this, {
-      id:                     null,
-      data:                   null,
-      element:                null,
-      canvas:                 null,
-      workspaceType:          null,
-      layout:                 null,
-      workspace:              null,
-      mainMenu:               null,
-      workspaceAutoSave:      null,
-      windowSize:             {},
-      resizeRatio:            {},
-      currentWorkspaceVisible: true,
-      state:                  null,
-      eventEmitter:           null,
-      overlayStates:          {
-        'workspacePanelVisible': false,
-        'manifestsPanelVisible': false,
-        'optionsPanelVisible': false,
-        'bookmarkPanelVisible': false
-      },
-      manifests:             []
-    }, options);
-
-    this.id = this.state.getStateProperty('id');
-    this.data = this.state.getStateProperty('data');
-    // get initial manifests
-    this.element = this.element || jQuery('#' + this.id);
-    if (options.availableAnnotationDrawingTools && options.availableAnnotationDrawingTools.length > 0) {
-      this.availableAnnotationDrawingTools = options.availableAnnotationDrawingTools;
-    }
-
-    if (this.data) {
-      this.init();
-    }
-  };
-
-  $.Viewer.prototype = {
-
-    init: function() {
-      var _this = this;
-
-      // i18next options
-      var i18nextOptions = {
-        fallbackLng: 'en',
-        load: 'unspecific',
-        debug: false,
-        backend: {
-          loadPath: _this.state.getStateProperty('buildPath') + _this.state.getStateProperty('i18nPath')+'{{lng}}/{{ns}}.json'
-        }
-      };
-
-      // set the language from configuration
-      var configuredLanguage = _this.state.getStateProperty('language');
-      if(configuredLanguage){
-        i18nextOptions.lng = configuredLanguage;
-      }
-
-      //initialize i18next
-      i18next.use(i18nextXHRBackend).use(i18nextBrowserLanguageDetector).init(
-        i18nextOptions,
-        _this.setupViewer.bind(_this)
-      );
-      // because this is a callback, we need to bind "_this" to explicitly retain the calling context of this function (the viewer object instance));
-    },
-
-    setupViewer: function() {
-      var _this = this;
-      //add background and positioning information on the root element that is provided in config
-      var backgroundImage = _this.state.getStateProperty('buildPath') + _this.state.getStateProperty('imagesPath') + 'debut_dark.png';
-      this.element.css('background-color', '#333').css('background-image','url('+backgroundImage+')').css('background-position','left top')
-      .css('background-repeat','repeat');
-
-      //register $.Handlebars helper
-      $.Handlebars.registerHelper('t', function(i18n_key) {
-        var result = i18next.t(i18n_key);
-        return new $.Handlebars.SafeString(result);
-      });
-
-      //check all buttons in mainMenu.  If they are all set to false, then don't show mainMenu
-      var showMainMenu = false;
-      jQuery.each(this.state.getStateProperty('mainMenuSettings').buttons, function(key, value) {
-        if (value) { showMainMenu = true; }
-      });
-      // but, mainMenu should be displayed if we have userButtons and/or userLogo defined
-      if (this.state.getStateProperty('mainMenuSettings').userButtons && this.state.getStateProperty('mainMenuSettings').userButtons.length > 0) {
-        showMainMenu = true;
-      }
-      if (this.state.getStateProperty('mainMenuSettings').userLogo && !jQuery.isEmptyObject(this.state.getStateProperty('mainMenuSettings').userLogo)) {
-        showMainMenu = true;
-      }
-
-      //even if all these buttons are available, developer can override and set show to false,
-      //in which case, don't show mainMenu at all
-      if (this.state.getStateProperty('mainMenuSettings').show === false) {
-        showMainMenu = false;
-      }
-
-      // add main menu
-      if (showMainMenu) {
-        this.mainMenu = new $.MainMenu({ appendTo: this.element, state: this.state, eventEmitter: this.eventEmitter });
-        this.eventEmitter.publish('mainMenuInitialized');
-      }
-
-      // add viewer area
-      this.canvas = jQuery('<div/>')
-      .addClass('mirador-viewer')
-      .appendTo(this.element);
-
-      if (!showMainMenu) {
-        this.canvas.css("top", "0px");
-      }
-
-      // add workspace configuration
-      this.layout = typeof this.state.getStateProperty('layout') !== 'string' ? JSON.stringify(this.state.getStateProperty('layout')) : this.state.getStateProperty('layout');
-      this.workspace = new $.Workspace({
-        layoutDescription: this.layout.charAt(0) === '{' ? JSON.parse(this.layout) : $.layoutDescriptionFromGridString(this.layout),
-        appendTo: this.element.find('.mirador-viewer'),
-        state: this.state,
-        eventEmitter: this.eventEmitter
-      });
-
-      this.workspacePanel = new $.WorkspacePanel({
-        appendTo: this.element.find('.mirador-viewer'),
-        state: this.state,
-        eventEmitter: this.eventEmitter
-      });
-
-      this.manifestsPanel = new $[this.state.getStateProperty('manifestsPanel').module](jQuery.extend({}, this.state.getStateProperty('manifestsPanel').options, { appendTo: this.element.find('.mirador-viewer'), state: this.state, eventEmitter: this.eventEmitter }));
-      //only instatiate bookmarkPanel if we need it
-      if (showMainMenu && this.state.getStateProperty('mainMenuSettings').buttons.bookmark) {
-        this.bookmarkPanel = new $.BookmarkPanel({ appendTo: this.element.find('.mirador-viewer'), state: this.state, eventEmitter: this.eventEmitter });
-      }
-
-      // set this to be displayed
-      this.set('currentWorkspaceVisible', true);
-
-      this.bindEvents();
-      this.listenForActions();
-      // retrieve manifests
-      this.getManifestsData();
-
-      if (this.state.getStateProperty('windowObjects').length === 0 && this.state.getStateProperty('openManifestsPage')) {
-        this.workspace.slots[0].addItem();
-      }
-    },
-
-    listenForActions: function() {
-      var _this = this;
-
-      // check that windows are loading first to set state of slot?
-      _this.eventEmitter.subscribe('manifestReceived', function(event, newManifest) {
-        if (_this.state.getStateProperty('windowObjects')) {
-          var check = jQuery.grep(_this.state.getStateProperty('windowObjects'), function(object, index) {
-            return object.loadedManifest === newManifest.uri;
-          });
-          jQuery.each(check, function(index, config) {
-            _this.loadManifestFromConfig(config);
-          });
-        }
-      });
-
-      _this.eventEmitter.subscribe('TOGGLE_WORKSPACE_PANEL', function(event) {
-        _this.toggleWorkspacePanel();
-      });
-
-      _this.eventEmitter.subscribe('TOGGLE_BOOKMARK_PANEL', function(event) {
-        _this.toggleBookmarkPanel();
-      });
-
-      _this.eventEmitter.subscribe('TOGGLE_FULLSCREEN', function(event) {
-        if ($.fullscreenElement()) {
-          $.exitFullscreen();
-          //enable any window-specific fullscreen buttons
-          _this.eventEmitter.publish('ENABLE_WINDOW_FULLSCREEN');
-        } else {
-          $.enterFullscreen(_this.element[0]);
-          //disable any window-specific fullscreen buttons
-          _this.eventEmitter.publish('DISABLE_WINDOW_FULLSCREEN');
-        }
-      });
-
-      jQuery(document).on("webkitfullscreenchange mozfullscreenchange fullscreenchange", function() {
-        _this.eventEmitter.publish('MAINMENU_FULLSCREEN_BUTTON');
-        // in case the user clicked ESC instead of clicking on the toggle fullscreen button, reenable the window fullscreen button
-        if (!$.fullscreenElement()) {
-          _this.eventEmitter.publish('ENABLE_WINDOW_FULLSCREEN');
-        }
-      });
-
-      _this.eventEmitter.subscribe('TOGGLE_LOAD_WINDOW', function(event) {
-        _this.toggleLoadWindow();
-      });
-
-      _this.eventEmitter.subscribe('ADD_MANIFEST_FROM_URL', function(event, url, location) {
-        _this.addManifestFromUrl(url, location);
-      });
-
-      _this.eventEmitter.subscribe('TOGGLE_OVERLAYS_FALSE', function(event) {
-        jQuery.each(_this.overlayStates, function(oState, value) {
-          // toggles the other top-level panels closed and focuses the
-          // workspace. For instance, after selecting an object from the
-          // manifestPanel.
-          _this.set(oState, false, {parent: 'overlayStates'});
-        });
-      });
-
-    },
-
-    bindEvents: function() {
-      var _this = this;
-    },
-
-    get: function(prop, parent) {
-      if (parent) {
-        return this[parent][prop];
-      }
-      return this[prop];
-    },
-
-    set: function(prop, value, options) {
-      var _this = this;
-      if (options) {
-        this[options.parent][prop] = value;
-      } else {
-        this[prop] = value;
-      }
-      _this.eventEmitter.publish(prop + '.set', value);
-    },
-
-    // Sets state of overlays that layer over the UI state
-    toggleOverlay: function(state) {
-      var _this = this;
-      // first confirm all others are off
-      jQuery.each(this.overlayStates, function(oState, value) {
-        if (state !== oState) {
-          _this.set(oState, false, {parent: 'overlayStates'});
-        }
-      });
-      var currentState = this.get(state, 'overlayStates');
-      this.set(state, !currentState, {parent: 'overlayStates'});
-    },
-
-    toggleLoadWindow: function() {
-      this.toggleOverlay('manifestsPanelVisible');
-    },
-
-    toggleWorkspacePanel: function() {
-      this.toggleOverlay('workspacePanelVisible');
-    },
-
-    toggleBookmarkPanel: function() {
-      this.toggleOverlay('bookmarkPanelVisible');
-    },
-
-    getManifestsData: function() {
-      var _this = this;
-
-      _this.data.forEach(function(manifest) {
-        if (manifest.hasOwnProperty('manifestContent')) {
-          var content = manifest.manifestContent;
-          _this.addManifestFromUrl(content['@id'], manifest.location ? manifest.location : '', content);
-        } else if (manifest.hasOwnProperty('manifestUri')) {
-          var url = manifest.manifestUri;
-          _this.addManifestFromUrl(url, manifest.location ? manifest.location : '', null);
-        } else if (manifest.hasOwnProperty('collectionContent')) {
-          var collectionContent = manifest.collectionContent;
-          _this.addCollectionFromUrl(collectionContent['@id'], manifest.location ? manifest.location : '', collectionContent);
-        } else if (manifest.hasOwnProperty('collectionUri')) {
-          var collectionUrl = manifest.collectionUri;
-          _this.addCollectionFromUrl(collectionUrl, manifest.location ? manifest.location : '', null);
-        }
-      });
-    },
-
-    hasWidgets: function(collection) {
-      return (
-        typeof collection.widgets !== 'undefined' &&
-        collection.widgets &&
-        !jQuery.isEmptyObject(collection.widgets) &&
-        collection.widgets.length > 0
-      );
-    },
-
-    addManifestFromUrl: function(url, location, content) {
-      var _this = this,
-        manifest;
-
-      if (!_this.state.getStateProperty('manifests')[url]) {
-        manifest = new $.Manifest(url, location, content);
-        _this.eventEmitter.publish('manifestQueued', manifest, location);
-        manifest.request.done(function() {
-          _this.eventEmitter.publish('manifestReceived', manifest);
-        });
-      }
-    },
-    
-    addCollectionFromUrl: function(url, location, content) {
-      var _this = this,
-        collection;
-      if (!_this.state.getStateProperty('manifests')[url]) {
-        collection = new $.Collection(url, location, content);
-        _this.eventEmitter.publish('manifestQueued', collection, location);
-        collection.request.done(function() {
-          _this.eventEmitter.publish('collectionReceived', [collection, url, null]);
-        });
-      }
-    },
-
-    loadManifestFromConfig: function(options) {
-      var _this = this;
-
-      //make a copy of options and pass that so we don't get a circular reference
-      var windowConfig = jQuery.extend(true, {}, options);
-      //delete this old set of options (because they will be replaced by the actions from ADD_WINDOW)
-      _this.eventEmitter.publish('DELETE_FROM_CONFIG', options);
-
-      _this.eventEmitter.publish('ADD_WINDOW', windowConfig);
-    }
-  };
-
-}(Mirador));
diff --git a/js/src/viewer/bookmarkPanel.js b/js/src/viewer/bookmarkPanel.js
deleted file mode 100644
index 62a19b43d124d10e4a4002c2591faa972572cdf7..0000000000000000000000000000000000000000
--- a/js/src/viewer/bookmarkPanel.js
+++ /dev/null
@@ -1,76 +0,0 @@
-(function($) {
-
-  $.BookmarkPanel = function(options) {
-
-    jQuery.extend(true, this, {
-      element: null,
-      appendTo: null,
-	  state: null,
-	  eventEmitter: null
-    }, options);
-
-    this.init();
-
-  };
-
-  $.BookmarkPanel.prototype = {
-    init: function () {
-      this.element = jQuery(this.template()).appendTo(this.appendTo);
-      var jsonStorageEndpoint = this.state.getStateProperty('jsonStorageEndpoint'),
-      saveModule = jsonStorageEndpoint.module,
-      saveOptions = jsonStorageEndpoint.options;
-      this.storageModule = new $[saveModule](saveOptions);
-
-      this.bindEvents();
-      this.listenForActions();
-    },
-
-    bindEvents: function() {
-      var _this = this;
-    },
-
-    listenForActions: function() {
-      var _this = this;
-      _this.eventEmitter.subscribe('bookmarkPanelVisible.set', function(_, stateValue) {
-        _this.onPanelVisible(_, stateValue);
-      });
-      _this.eventEmitter.subscribe('saveControllerConfigUpdated', function() {
-        _this.onConfigUpdated();
-      });
-    },
-
-    onPanelVisible: function(_, stateValue) {
-      var _this = this;
-      if (stateValue) { _this.show(); return; }
-      _this.hide();
-    },
-
-    onConfigUpdated: function() {
-      var _this = this;
-      _this.storageModule.save(_this.state.cleanup(_this.state.currentConfig))
-      .then(function(blobId) {
-        var bookmarkURL = window.location.href.replace(window.location.hash, '') + "?json="+blobId;
-        _this.element.find('#share-url').val(bookmarkURL).focus().select();
-      });
-    },
-
-    hide: function() {
-      jQuery(this.element).hide({effect: "slide", direction: "up", duration: 300, easing: "swing"});
-    },
-
-    show: function() {
-      jQuery(this.element).show({effect: "slide", direction: "up", duration: 300, easing: "swing"});
-    },
-
-    template: $.Handlebars.compile([
-       '<div id="bookmark-panel">',
-         '<h3>{{t "bookmarkTitle"}}</h3>',
-         '<span>',
-         '{{t "url"}}: <input id="share-url" type="text"></input>',
-         '<a href="javascript:;" class="mirador-btn mirador-icon-copy" data-clipboard-target="share-url"><i class="fa fa-files-o fa-lg"></i></a>',
-         '</span>',
-       '</div>'
-    ].join(''))
-  };
-
-}(Mirador));
diff --git a/js/src/viewer/collectionTreeManifestsPanel.js b/js/src/viewer/collectionTreeManifestsPanel.js
deleted file mode 100644
index 0251e569db3dc998f424b900e1e9e90a635c62c2..0000000000000000000000000000000000000000
--- a/js/src/viewer/collectionTreeManifestsPanel.js
+++ /dev/null
@@ -1,579 +0,0 @@
-(function($) {
-
-    $.CollectionTreeManifestsPanel = function(options) {
-
-        jQuery.extend(true, this, {
-            element:                    null,
-            listItems:                  null,
-            appendTo:                   null,
-            manifestListItems:          [],
-            manifestListElement:        null,
-            manifestLoadStatusIndicator: null,
-            treeElement:                null, //The container element around the collection tree
-            expectedThings:             [], //A list of manifest URIs expected for the current collection "folder"
-            preloadedManifests:         [], //A list of manifest URIs loaded in through the data attribute
-            userManifests:              [], //A list of manifest URIs loaded in through the "Load Object from URL" form
-            nodeManifests:              {}, //Maps node IDs to a list of manifest URIs its collection holds
-            nodeCollections:            {}, //Maps node IDs to a list of collection URIs its collection holds
-            nodeIdToUri:                {}, //Maps node IDs to their respective URIs
-            uriToNodeId:                {}, //Maps URIs to a list of node IDs that represent it (Inverse of nodeIdToUri)
-            nodeChildren:               {}, //Maps node IDs to a list of children node IDs
-            unexpandedNodes:            {}, //A set of node ID => true entries that contains all node IDs pending expansion (i.e. may have more content)
-            topCollectionsUris:         {}, //A set of URIs already placed at the top level of the collection tree
-            treeQueue:                  [], //A list that holds event triggers before the tree is ready; will be removed when ready
-            resultsWidth:               0,
-            state:                      null,
-            eventEmitter:               null
-        }, options);
-
-        var _this = this;
-        _this.init();
-        
-    };
-
-    $.CollectionTreeManifestsPanel.prototype = {
-
-        init: function() {
-            var _this = this;
-            this.element = jQuery(this.template({
-                showURLBox : this.state.getStateProperty('showAddFromURLBox')
-            })).appendTo(this.appendTo);
-            this.manifestListElement = this.element.find('ul');
-            
-            // Populate the preloads folder with manifests in the configuration
-            jQuery.each(this.state.currentConfig.data, function(_, v) {
-              if (v.hasOwnProperty('manifestUri')) {
-                _this.preloadedManifests.push(v.manifestUri);
-              }
-            });
-            // Expect these preloads by default
-            this.expectedThings = this.preloadedManifests;
-            // Create the collection tree
-            this.treeElement = jQuery('#collection-tree').jstree({
-              core: {
-                // Seed the tree with the two basic "folders"
-                data: [
-                  {
-                    id: 'preload',
-                    text: i18next.t('preloadedManifests'),
-                    icon: 'fa fa-suitcase',
-                    state: {
-                      selected: true
-                    },
-                    children: []
-                  }, 
-                  {
-                    id: 'user',
-                    text: i18next.t('myManifests'),
-                    icon: 'fa fa-user',
-                    children: []
-                  }
-                ],
-                // Tune looks
-                themes: {
-                  dots: false
-                },
-                check_callback: true, // IMPORTANT: This line allows code to edit the tree later
-                multiple: false // IMPORTANT: This prevents multiple nodes from being selected
-              }
-            // Hook up event for when a node is selected
-            }).on('select_node.jstree', function(event, data) {
-              _this.changeNode(data.node);
-            // Hook up event for when a node is expanded (> clicked)
-            }).on('open_node.jstree', function(event, data) {
-              _this.expandNode(data.node);
-            // Hook up "ready" event to handle backlogged collection loads
-            }).on('ready.jstree', function() {
-              // Cache the backlog and remove the original; this signals to other methods that it's OK to manipulate the tree
-              var theQueue = _this.treeQueue.slice(0);
-              delete _this.treeQueue;
-              // Process the backlog
-              jQuery.each(theQueue, function(_, v) {
-                if (v.length == 4) { // When a collection is loaded successfully, the logged entry is 4 elements long
-                  _this.onCollectionReceived.apply(_this, v);
-                } else { // When a collection fails to load, the logged entry is 3 elements long
-                  _this.onCollectionNotReceived.apply(_this, v);
-                }
-              });
-            });
-            
-            //this code gives us the max width of the results area, used to determine how many preview images to show
-            //cloning the element and adjusting the display and visibility means it won't break the normal flow
-            var clone = this.element.clone().css("visibility","hidden").css("display", "block").appendTo(this.appendTo);
-            this.resultsWidth = clone.find('.member-select-results').outerWidth();
-            this.controlsHeight = clone.find('.manifest-panel-controls').outerHeight();
-            this.paddingListElement = this.controlsHeight;
-            this.manifestListElement.css("padding-bottom", this.paddingListElement);
-            clone.remove();
-            
-            // this.manifestLoadStatusIndicator = new $.ManifestLoadStatusIndicator({
-            //   manifests: this.parent.manifests,
-            //   appendTo: this.element.find('.member-select-results')
-            // });
-            this.bindEvents();
-            this.listenForActions();
-        },
-
-        listenForActions: function() {
-          var _this = this;
-
-          // handle subscribed events
-          // When the manifest selection panel is brought up or hidden
-          _this.eventEmitter.subscribe('manifestsPanelVisible.set', function(_, stateValue) {
-            _this.onPanelVisible(_, stateValue);
-          });
-
-          // When a manifest is received
-          _this.eventEmitter.subscribe('manifestReceived', function(event, newManifest) {
-            _this.onManifestReceived(event, newManifest);
-          });
-          
-          // When a collection is received
-          _this.eventEmitter.subscribe('collectionReceived', function(event, newCollection, parentUri, parentNodeId) {
-            _this.onCollectionReceived(event, newCollection, parentUri, parentNodeId);
-          });
-          
-          // When a collection failed to load
-          _this.eventEmitter.subscribe('collectionNotReceived', function(event, parentUri, parentNodeId) {
-            _this.onCollectionNotReceived(event, parentUri, parentNodeId);
-          });
-          
-          // When Mirador gets an explicit request to load a manifest from a URL
-          _this.eventEmitter.subscribe('ADD_MANIFEST_FROM_URL', function(event, url) {
-            // Add it if it has not been loaded before
-            if (_this.userManifests.indexOf(url) == -1) {
-              _this.userManifests.push(url);
-            }
-            // Shift to the "User-Loaded Manifests" folder
-            _this.treeElement.jstree('deselect_all');
-            _this.treeElement.jstree('select_node', 'user');
-          });
-          
-          // When Mirador gets an explicit request to load a collection from a URL
-          _this.eventEmitter.subscribe('ADD_COLLECTION_FROM_URL', function(event, url, source) {
-            _this.addCollectionFromUrl(url, null, true);
-          });
-          
-          // When Mirador gets a request to load an object (manifest or collection) from a URL (e.g. the "Add object from URL" form)
-          _this.eventEmitter.subscribe('ADD_OBJECT_FROM_URL', function(event, url, source) {
-            _this.addObjectFromUrl(url, source, true);
-          });
-        },
-
-        bindEvents: function() {
-            var _this = this;
-
-            // handle interface events
-            this.element.find('form#url-load-form').on('submit', function(event) {
-              event.preventDefault();
-              _this.addObjectUrl(jQuery(this).find('input').val());
-            });
-
-            this.element.find('.remove-object-option').on('click', function(event) {
-              _this.togglePanel(event);
-            });
-
-            // Filter manifests based on user input
-            this.element.find('#manifest-search').on('keyup input', function(event) {
-              _this.filterManifests(this.value);
-            });
-
-            this.element.find('#manifest-search-form').on('submit', function(event) {
-              event.preventDefault();
-            });
-
-            jQuery(window).resize($.throttle(function() {
-              _this.resizePanel();
-            }, 50, true));
-        },
-        
-        hide: function() {
-            var _this = this;
-            jQuery(this.element).hide({effect: "fade", duration: 160, easing: "easeOutCubic"});
-        },
-
-        show: function() {
-            var _this = this;
-            jQuery(this.element).show({effect: "fade", duration: 160, easing: "easeInCubic"});
-        },
-        
-        // Send explicit request for adding a manifest from a URL
-        addManifestUrl: function(url) {
-          var _this = this;
-          _this.eventEmitter.publish('ADD_MANIFEST_FROM_URL', [url, "(Added from URL)"]);
-        },
-        
-        // Send explicit request for adding a manifest or collection from a URL
-        addObjectUrl: function(url) {
-          var _this = this;
-          _this.eventEmitter.publish('ADD_OBJECT_FROM_URL', [url, "(Added from URL)"]);
-        },
-        
-        togglePanel: function(event) {
-          var _this = this;
-          _this.eventEmitter.publish('TOGGLE_LOAD_WINDOW');
-        },
-        
-        filterManifests: function(value) {
-          var _this = this;
-          if (value.length > 0) {
-             _this.element.find('.items-listing li').show().filter(function() {
-                return jQuery(this).text().toLowerCase().indexOf(value.toLowerCase()) === -1;
-             }).hide();
-          } else {
-             _this.element.find('.items-listing li').show();
-          }
-        },
-
-        resizePanel: function() {
-          var _this = this;
-          var clone = _this.element.clone().css("visibility","hidden").css("display", "block").appendTo(_this.appendTo);
-          _this.resultsWidth = clone.find('.member-select-results').outerWidth();
-          clone.remove();
-          _this.eventEmitter.publish("manifestPanelWidthChanged", _this.resultsWidth);
-        },
-        
-        onPanelVisible: function(_, stateValue) {
-          var _this = this;
-          if (stateValue) { _this.show(); return; }
-           _this.hide();
-        },
-
-        // Handler for when manifest data is loaded for the first time
-        onManifestReceived: function(event, newManifest) {
-          var _this = this;
-          // Show a manifest list item only if the currently selected "folder" expects it
-          if (_this.expectedThings.indexOf(newManifest.uri) != -1) {
-            _this.manifestListItems.push(new $.ManifestListItem({ 
-              manifest: newManifest, 
-              resultsWidth: _this.resultsWidth, 
-              state: _this.state,
-              eventEmitter: _this.eventEmitter,
-              forcedIndex: _this.expectedThings.indexOf(newManifest.uri),
-              appendTo: _this.manifestListElement }));
-            _this.element.find('#manifest-search').keyup();
-          }
-        },
-        
-        // Handler for when collection data is loaded for the first time
-        onCollectionReceived: function(event, newCollection, uri, parentNodeId) {
-          // If the tree isn't ready, hold it and move on
-          if (typeof this.treeQueue !== 'undefined') {
-            this.treeQueue.push([event, newCollection, uri, parentNodeId]);
-            return;
-          }
-          // Update nodes if the target isn't top; create new node if the target is top
-          if (parentNodeId) {
-            this.updateCollectionNode(parentNodeId, newCollection);
-          } else {
-            this.addCollectionNode(parentNodeId, newCollection);
-          }
-        },
-        
-        // Handler for when collection data is loaded for the first time and failed
-        onCollectionNotReceived: function(event, uri, parentNodeId) {
-          // If the tree isn't ready, hold it and move on
-          if (typeof this.treeQueue !== 'undefined') {
-            this.treeQueue.push([event, uri, parentNodeId]);
-            return;
-          }
-          // Mark the child node belonging to this as a fail
-          var _this = this;
-          jQuery.each(this.uriToNodeId[uri], function(_, nodeId) {
-            _this.treeElement.jstree('set_icon', nodeId, 'fa fa-ban'); // Set icon to (/)
-            _this.treeElement.jstree('disable_node', nodeId); // Don't let the user click it
-          });
-        },
-        
-        // Clean out the list of manifest items on the right side
-        clearManifestItems: function() {
-          this.manifestListItems = [];
-          this.manifestListElement.html('');
-        },
-        
-        // Set up 2-way correspondence between node IDs and URIs
-        registerNodeIdUriPair: function(nodeId, uri) {
-          // Map node ID to URI
-          this.nodeIdToUri[nodeId] = uri;
-          if (this.uriToNodeId[uri]) {
-            this.uriToNodeId[uri].push(nodeId); // Existing URI => new node ID
-          } else {
-            this.uriToNodeId[uri] = [nodeId]; // New URI => new node ID
-          }
-        },
-        
-        // Handler for selecting a new node
-        changeNode: function(node) {
-          var _this = this;
-          // Clean out manifest items on the right side
-          this.clearManifestItems();
-          // Listen in on manifests in the "folder" or collection it represents
-          switch (node.id) {
-            case 'preload': _this.expectedThings = _this.preloadedManifests; break;
-            case 'user': _this.expectedThings = _this.userManifests; break;
-            default: _this.expectedThings = _this.nodeManifests[node.id]; break;
-          }
-          // Populate and refresh the manifests listings
-          jQuery.each(_this.expectedThings, function(_, expectedThing) {
-            _this.addManifestFromUrl(expectedThing);
-          });
-          this.element.find('#manifest-search').keyup();
-          
-        },
-        
-        // Handler for expanding a node (> clicked)
-        expandNode: function(node) {
-          var _this = this;
-          // Update its children by loading their stated URIs
-          jQuery.each(_this.nodeCollections[node.id], function(_, uri) {
-            _this.updateCollectionFromUrl(uri, node.id);
-          });
-        },
-        
-        // Helper for loading a manifest or collection from a URL
-        addObjectFromUrl: function(url, source) {
-          var _this = this,
-            object = _this.state.getStateProperty('manifests')[url]; // Attempt to get from cache
-          // Cache hit
-          if (object) {
-            // Fire off the correct event if its cache entry is loaded
-            if (object.jsonLd) {
-              switch (object.jsonLd['@type']) {
-                case 'sc:Collection':
-                  _this.eventEmitter.publish('ADD_COLLECTION_FROM_URL', [url, source]);
-                break;
-                case 'sc:Manifest':
-                  _this.eventEmitter.publish('ADD_MANIFEST_FROM_URL', [url, source]);
-                break;
-              }
-            }
-          }
-          // Cache miss
-          else {
-            // Get the manifest or collection with AJAX
-            jQuery.ajax({
-              url: url,
-              dataType: 'json',
-              type: 'GET',
-              // Fire off the correct event once it finishes loading
-              success: function(data) {
-                switch (data['@type']) {
-                  case 'sc:Collection':
-                    object = new $.Collection(url, source, data);
-                    _this.eventEmitter.publish('manifestQueued', object, '');
-                    _this.eventEmitter.publish('ADD_COLLECTION_FROM_URL', [url, source]);
-                  break;
-                  case 'sc:Manifest':
-                    object = new $.Manifest(url, source, data);
-                    _this.eventEmitter.publish('manifestQueued', object, ''); // Use the state manager's manifest caching to store collections too
-                    _this.eventEmitter.publish('ADD_MANIFEST_FROM_URL', [url, source]);
-                  break;
-                }
-              }
-            });
-          }
-        },
-        
-        // Helper for loading a manifest from a URL
-        addManifestFromUrl: function(url) {
-          var _this = this,
-            manifest;
-          // Cache hit: Show the manifest panel item if it is loaded
-          if (_this.state.getStateProperty('manifests')[url]) {
-            manifest = _this.state.getStateProperty('manifests')[url];
-            if (manifest.jsonLd) {
-              _this.manifestListItems.push(new $.ManifestListItem({ 
-                manifest: manifest, 
-                resultsWidth: _this.resultsWidth, 
-                state: _this.state,
-                eventEmitter: _this.eventEmitter,
-                forcedIndex: _this.expectedThings.indexOf(url),
-                appendTo: _this.manifestListElement }));
-            }
-          }
-          // Cache miss: Queue the loading and defer the received event until it is done
-          else {
-            manifest = new $.Manifest(url, '');
-            _this.eventEmitter.publish('manifestQueued', manifest, '');
-            manifest.request.done(function() {
-              _this.eventEmitter.publish('manifestReceived', manifest);
-            });
-          }
-        },
-        
-        // Helper for loading a manifest from a URL as a child node of some other node (null = top level)
-        // Optionally, jump to that new child node if jumpToIt is specified as true
-        addCollectionFromUrl: function(url, nodeId, jumpToIt) {
-          var _this = this,
-            collection;
-          // Is it adding to the top level?
-          if (!nodeId) {
-            // Pass if it is already loaded
-            if (_this.topCollectionsUris[url]) {
-              return;
-            }
-            // Otherwise, make note of it
-            else {
-              _this.topCollectionsUris[url] = true;
-            }
-          }
-          // Cache hit: Add the node right away if it is loaded
-          if (typeof _this.state.getStateProperty('manifests')[url] !== 'undefined') {
-            collection = _this.state.getStateProperty('manifests')[url];
-            if (collection.jsonLd) {
-              var newNode = _this.addCollectionNode(nodeId, collection);
-              // Also jump to the node if specified
-              if (jumpToIt) {
-                _this.treeElement.jstree('deselect_all');
-                _this.treeElement.jstree('select_node', newNode);
-                // Expand the node if it has children
-                if (collection.getCollectionUris().length > 0) {
-                  _this.treeElement.jstree('open_node', newNode);
-                }
-              }
-            }
-          }
-          // Cache miss: Queue the loading and defer the received event until it is done or failed
-          else {
-            collection = new $.Collection(url, '');
-            _this.eventEmitter.publish('manifestQueued', collection, ''); // Use the state manager's manifest caching to store collections too
-            collection.request.done(function() {
-              _this.eventEmitter.publish('collectionReceived', [collection, url, nodeId ? nodeId : null]);
-            });
-            collection.request.fail(function() {
-              _this.eventEmitter.publish('collectionNotReceived', [url, nodeId ? nodeId : null]);
-            });
-          }
-        },
-        
-        // Helper for updating a subnode of nodeId corresponding to the specified URL
-        updateCollectionFromUrl: function(url, nodeId) {
-          var _this = this,
-            collection;
-          // Cache hit: Get the collection object and update right away
-          if (typeof _this.state.getStateProperty('manifests')[url] !== 'undefined') {
-            collection = _this.state.getStateProperty('manifests')[url];
-            if (collection.jsonLd) {
-              _this.updateCollectionNode(nodeId, collection);
-            }
-          }
-          // Cache miss: Queue the loading and defer the received event until it is done or failed
-          else {
-            collection = new $.Collection(url, '');
-            _this.eventEmitter.publish('manifestQueued', collection, ''); // Use the state manager's manifest caching to store collections too
-            collection.request.done(function() {
-              _this.eventEmitter.publish('collectionReceived', [collection, url, nodeId ? nodeId : null]);
-            });
-            collection.request.fail(function() {
-              _this.eventEmitter.publish('collectionNotReceived', [url, nodeId ? nodeId : null]);
-            });
-          }
-        },
-        
-        // Helper for loading a Collection object as a child of nodeId
-        // Optionally, skip seeding subnodes under this collection if unexpanded is specified; this marks it as "still loading"
-        addCollectionNode: function(nodeId, collection, unexpanded) {
-          var _this = this,
-              subcollectionBlocks = collection.getCollectionBlocks();
-          // Add the new node
-          var newNodeId = _this.treeElement.jstree('create_node', nodeId ? nodeId : null, {
-            text: collection.jsonLd.label,
-            icon: unexpanded ? 'fa fa-spinner fa-pulse' : 'fa fa-folder', // Unexpanded = still loading, expanded = loaded
-            children: []
-          }, 'last');
-          // Don't let nodes that are still loading be selected
-          if (unexpanded) {
-            _this.treeElement.jstree('disable_node', newNodeId);
-          }
-          // Register the new node's apparent contents
-          _this.registerNodeIdUriPair(newNodeId, collection.jsonLd['@id']);
-          _this.nodeCollections[newNodeId] = collection.getCollectionUris();
-          _this.nodeManifests[newNodeId] = collection.getManifestUris();
-          _this.nodeChildren[newNodeId] = [];
-          // Add subcollections if unexpanded is not specified
-          if (!unexpanded) {
-            jQuery.each(subcollectionBlocks, function(i, v) {
-              // Create the subnode
-              var nid = _this.treeElement.jstree('create_node', newNodeId, {
-                text: v.label,
-                icon: 'fa fa-spinner fa-pulse',
-                children: []
-              }, 'last');
-              // Register the subnode's apparent contents
-              _this.registerNodeIdUriPair(nid, v['@id']);
-              _this.unexpandedNodes[nid] = true;
-              _this.nodeChildren[newNodeId].push(nid);
-              // Don't let it be selected yet
-              _this.treeElement.jstree('disable_node', nid);
-            });
-          }
-          // If unexpanded is specified, mark this node as requiring expansion later
-          else {
-            _this.unexpandedNodes[newNodeId] = true;
-          }
-          // Return newly created node ID for future reference
-          return newNodeId;
-        },
-        
-        // Helper for updating a subnode of nodeId corresponding to the specified URL
-        updateCollectionNode: function(nodeId, collection) {
-          var _this = this,
-              atId = collection.uri,
-              collectionBlocks = collection.getCollectionBlocks(),
-              collectionUris = collection.getCollectionUris(),
-              manifestUris = collection.getManifestUris();
-          // Find the right node to update that corresponds to the collection's URI
-          jQuery.each(_this.nodeChildren[nodeId], function(_, n) {
-            if (_this.nodeIdToUri[n] == atId && _this.unexpandedNodes[n]) {
-              // Register the node's contents
-              _this.nodeCollections[n] = collectionUris;
-              _this.nodeManifests[n] = manifestUris;
-              _this.nodeChildren[n] = [];
-              // Add children under the node if it has any subcollections, but don't expand them yet
-              jQuery.each(collectionBlocks, function(i, v) {
-                var nn = _this.addCollectionNode(n, new $.Collection(v['@id'], null, v), true);
-                _this.nodeChildren[n].push(nn);
-                _this.unexpandedNodes[nn] = true;
-              });
-              // This node is already expanded, unmark it
-              delete _this.unexpandedNodes[n];
-              // Change its icon to a folder and allow it to be selected
-              _this.treeElement.jstree('set_icon', n, 'fa fa-folder');
-              _this.treeElement.jstree('enable_node', n);
-            }
-          });
-          
-        },
-
-        template: $.Handlebars.compile([
-          '<div id="manifest-select-menu">',
-          '<div class="container">',
-            '<div class="manifest-panel-controls">',
-              '<a class="remove-object-option"><i class="fa fa-times fa-lg fa-fw"></i>{{t "close"}}</a>',
-              '<div id="load-controls">',
-                '{{#if showURLBox}}',
-                  '<form action="" id="url-load-form">',
-                    '<label for="url-loader">{{t "addNewObject"}}:</label>',
-                    '<input type="text" id="url-loader" name="url-load" placeholder="https://...">',
-                    '<input type="submit" value="{{t "load"}}">',
-                  '</form>',
-                '{{/if}}',
-                '<form action="" id="manifest-search-form">',
-                  '<label for="manifest-search">{{t "filterObjects"}}:</label>',
-                  '<input id="manifest-search" type="text" name="manifest-filter">',
-                '</form>',
-              '</div>',
-            '</div>',
-              '<div id="collection-tree">',
-              '</div>',
-              '<div class="member-select-results">',
-                '<ul class="items-listing">',
-                '</ul>',
-              '</div>',
-          '</div>',
-          '</div>'
-        ].join(''))
-    };
-
-}(Mirador));
-
diff --git a/js/src/viewer/mainMenu.js b/js/src/viewer/mainMenu.js
deleted file mode 100644
index 1e87852ee188008761cf24781686a8a4cd774222..0000000000000000000000000000000000000000
--- a/js/src/viewer/mainMenu.js
+++ /dev/null
@@ -1,259 +0,0 @@
-(function($) {
-
-    $.MainMenu = function(options) {
-
-        jQuery.extend(true, this, {
-            element:                    null,
-            mainMenuHeight:             null,
-            mainMenuWidth:              null,
-            windowOptionsMenu:          null,
-            loadWindow:                 null,
-            clearLocalStorage:          '',
-            viewerCls:                  'mirador-viewer',
-            mainMenuBarCls:             'mirador-main-menu-bar',
-            mainMenuCls:                'mirador-main-menu',
-            windowOptionsMenuCls:       'mirador-window-options-menu',
-            clearLocalStorageCls:       'clear-local-storage',
-            clearLocalStorageDialogCls: 'mirador-main-menu-clear-local-storage',
-            collectionsListingCls:      'mirador-listing-collections',
-            state:                      null,
-            eventEmitter:               null
-        }, options);
-
-        this.element  = this.element || jQuery('<div/>');
-
-        this.init();
-
-    };
-
-
-    $.MainMenu.prototype = {
-
-        init: function() {
-            //this.mainMenuHeight = this.parent.mainMenuSettings.height;
-            //this.mainMenuWidth = this.parent.mainMenuSettings.width;
-            this.element
-            .addClass(this.mainMenuBarCls)
-            //.height(this.mainMenuHeight)
-            //.width(this.mainMenuWidth)
-            .appendTo(this.appendTo);
-
-            this.element.append(this.template({
-                mainMenuCls: this.mainMenuCls,
-                showBookmark : this.state.getStateProperty('mainMenuSettings').buttons.bookmark,
-                showLayout : this.state.getStateProperty('mainMenuSettings').buttons.layout,
-                showOptions: this.state.getStateProperty('mainMenuSettings').buttons.options,
-                showFullScreenViewer : this.state.getStateProperty('mainMenuSettings').buttons.fullScreenViewer,
-                userButtons: this.state.getStateProperty('mainMenuSettings').userButtons,
-                userLogo:    this.state.getStateProperty('mainMenuSettings').userLogo
-            }));
-
-            this.element.find('.mainmenu-button').each(function() {
-              jQuery(this).qtip({
-                content: {
-                  text: jQuery(this).attr('title'),
-                },
-                position: {
-                  my: 'top center',
-                  at: 'bottom center'
-                },
-                style: {
-                  classes: 'qtip-dark qtip-shadow qtip-rounded'
-                },
-              });
-            });
-
-            this.listenForActions();
-            this.bindEvents();
-        },
-
-        listenForActions: function() {
-          var _this = this;
-
-          _this.eventEmitter.subscribe('MAINMENU_FULLSCREEN_BUTTON', function(event) {
-            var fullScreenButton = _this.element.find('.fullscreen-viewer span');
-            if (fullScreenButton.hasClass('fa-expand')) {
-              fullScreenButton.removeClass('fa-expand').addClass('fa-compress');
-            } else {
-              fullScreenButton.removeClass('fa-compress').addClass('fa-expand');
-            }
-          });
-        },
-
-        bindEvents: function() {
-            var _this = this;
-            //change 'change-layout' to mouseover events rather than click?
-            this.element.find('.change-layout').on('click', function() { 
-              _this.eventEmitter.publish('TOGGLE_WORKSPACE_PANEL');
-              //remove active class from other buttons
-              _this.element.find('.bookmark-workspace').removeClass('active');
-              if (jQuery(this).hasClass('active')) {
-                jQuery(this).removeClass('active');
-              } else {
-                jQuery(this).addClass('active');
-              }
-            });
-
-            this.element.find('.bookmark-workspace').on('click', function() { 
-              _this.eventEmitter.publish('TOGGLE_BOOKMARK_PANEL');
-              //remove active class from other buttons
-              _this.element.find('.change-layout').removeClass('active');
-              if (jQuery(this).hasClass('active')) {
-                jQuery(this).removeClass('active');
-              } else {
-                jQuery(this).addClass('active');
-              }
-            });
-
-            // when options are implemented, this will need to do something
-            this.element.find('.window-options').on('click', function() { });
-            this.element.find('.fullscreen-viewer').on('click', function() {
-              _this.eventEmitter.publish('TOGGLE_FULLSCREEN');
-            });
-        },
-
-        template: $.Handlebars.compile([
-        '{{#if userLogo}}',
-          '<ul class="user-logo {{mainMenuCls}}">',
-            '{{userlogo userLogo}}',
-          '</ul>',
-        '{{/if}}',
-        '<ul class="{{mainMenuCls}}">',
-        '{{#if showBookmark}}',
-          '<li>',
-            '<a href="javascript:;" class="bookmark-workspace mainmenu-button" title="{{t "bookmarkTooltip"}}" aria-label="{{t "bookmarkTooltip"}}">',
-              '<span class="fa fa-bookmark fa-lg fa-fw"></span> {{t "bookmark"}}',
-            '</a>',
-          '</li>',
-        '{{/if}}',
-        /*'{{#if showOptions}}',
-          '<li>',
-            '<a href="javascript:;" class="window-options" title="Window Options">',
-              '<span class=""></span>Options',
-            '</a>',
-          '</li>',
-        '{{/if}}',*/
-        '{{#if showLayout}}',
-          '<li>',
-            '<a href="javascript:;" class="change-layout mainmenu-button" title="{{t "changeLayoutTooltip"}}" aria-label="{{t "changeLayoutTooltip"}}">',
-              '<span class="fa fa-th-large fa-lg fa-fw"></span> {{t "changeLayout"}}',
-            '</a>',
-          '</li>',
-        '{{/if}}',
-        '{{#if showFullScreenViewer}}',
-          '<li>',
-            '<a href="javascript:;" class="fullscreen-viewer mainmenu-button" title="{{t "fullScreenTooltip"}}" aria-label="{{t "fullScreenTooltip"}}">',
-              '<span class="fa fa-expand fa-lg fa-fw"></span> {{t "fullScreen"}}',
-            '</a>',
-          '</li>',
-        '{{/if}}',
-        '</ul>',
-        '{{#if userButtons}}',
-          '{{userbtns userButtons}}',
-        '{{/if}}'
-        ].join(''))
-    };
-
-    /* Helper methods for processing userButtons provided in configuration */
-
-    /*    Processes userButtons configuration setting   *
-     ****************************************************
-     * userButtons, if present, should be an array      *
-     *                                                  *
-     * Its elements should be objects, which can        *
-     * have the following attributes:                   *
-     *                                                  *
-     *   label: text label assigned to the link         *
-     *          created. (required)                     *
-     *   attributes: HTML attributes to add to the      *
-     *          button.  If there is a "callback"       *
-     *          attribute for the button, this MUST     *
-     *          exist and MUST contain an "id" value    *
-     *   li_attributes: HTML attributes to add to the   *
-     *          list item containing the button.        *
-     *   iconClass: class or space-separated list of    *
-     *          classes. If present, an empty span with *
-     *          these classes will be prepended to the  *
-     *          content of the link element
-     *   sublist: Sublist of buttons, to be implemented *
-     *          as a dropdown via CSS/JS                *
-     *   ul_attributes: HTML attributes to add to the   *
-     *          sublist UL contained in the button.     *
-     *          Ignored if button isn't representing    *
-     *          a sublist.                              *
-     *                                                  *
-     * NOTE: sublist dropdown functionality is not yet  *
-     *       implemented                                *
-     ****************************************************/
-    var processUserButtons = function (btns) {
-        var output = [];
-        var btn;
-        var btns_len = btns.length;
-
-        for (var i = 0; i < btns_len; i++){
-            output.push(processUserBtn(btns[i]));
-        }
-        return output;
-    };
-
-    var processUserBtn = function (btn) {
-        var $li = jQuery('<li>');
-        var $a = jQuery('<a>');
-        var $sub_ul;
-
-        try {
-            /* Enclosing <li> for button */
-            if (btn.li_attributes){
-                $li.attr(btn.li_attributes);
-            }
-
-            /* Link for button. */
-            if (!btn.label) {
-                throw "userButtons must have labels";
-            }
-
-            $a.text(btn.label);
-
-            if (btn.iconClass) {
-                $a.prepend('<span class="' + btn.iconClass + '"></span> ');
-            }
-
-            if (btn.attributes){
-                $a.attr(btn.attributes);
-            }
-
-            $li.append($a);
-
-            /* Sublist if present */
-            if (btn.sublist) {
-                $sub_ul = jQuery('<ul>');
-                if (btn.ul_attributes){
-                    $sub_ul.attr(btn.ul_attributes);
-                }
-                /* Recurse! */
-                $sub_ul.append(processUserButtons(btn.sublist));
-
-                $li.append($sub_ul);
-            }
-
-            return $li;
-        }
-        catch (err) {
-            console && console.log && console.log(err);
-            return jQuery();
-        }
-    };
-
-    $.Handlebars.registerHelper('userbtns', function (userButtons) {
-        return new $.Handlebars.SafeString(
-            jQuery('<ul class="user-buttons ' + this.mainMenuCls +'"></ul>').append(processUserButtons(userButtons)).get(0).outerHTML
-        );
-    });
-
-    $.Handlebars.registerHelper('userlogo', function (userLogo) {
-        return new $.Handlebars.SafeString(
-            processUserBtn(userLogo).get(0).outerHTML
-        );
-    });
-
-}(Mirador));
diff --git a/js/src/viewer/manifestListItem.js b/js/src/viewer/manifestListItem.js
deleted file mode 100644
index f55c7391dd8a6cd1553da31ba33a20a56c809b2d..0000000000000000000000000000000000000000
--- a/js/src/viewer/manifestListItem.js
+++ /dev/null
@@ -1,289 +0,0 @@
-(function($) {
-
-  $.ManifestListItem = function(options) {
-
-    jQuery.extend(true, this, {
-      element:                    null,
-      appendTo:                   null,
-      manifest:                   null,
-      loadStatus:                 null,
-      thumbHeight:                80,
-      urlHeight:                  150,
-      resultsWidth:               0,  // based on screen width
-      maxPreviewImagesWidth:      0,
-      repoWidth:                  80,
-      metadataWidth:              450,
-      margin:                     15,
-      remainingWidth:             20,
-      imagesTotalWidth:           0,
-      tplData:                    null,
-      allImages:                  [],
-      remaining:                  0,
-      forcedIndex:                null,
-      state:                      null,
-      eventEmitter:               null
-    }, options);
-
-    this.init();
-
-  };
-
-  $.ManifestListItem.prototype = {
-
-    init: function() {
-      var _this = this;
-      //need a better way of calculating this because JS can't get width and margin of hidden elements, so must manually set that info
-      //ultimately use 95% of space available, since sometimes it still displays too many images
-      this.maxPreviewImagesWidth = this.resultsWidth - (this.repoWidth + this.margin + this.metadataWidth + this.margin + this.remainingWidth);
-      this.maxPreviewImagesWidth = this.maxPreviewImagesWidth * 0.95;
-
-      $.Handlebars.registerHelper('pluralize', function(count, singular, plural) {
-        if (count === 1) {
-          return singular;
-        } else {
-          return plural;
-        }
-      });
-
-      this.fetchTplData(this.manifestId);
-      if (this.forcedIndex !== null) {
-        this.tplData.index = this.forcedIndex;
-      }
-
-      if (_this.state.getStateProperty('preserveManifestOrder')) {
-        if (this.appendTo.children().length === 0) {
-          this.element = jQuery(this.template(this.tplData)).prependTo(this.appendTo).hide().fadeIn('slow');
-        } else {
-          var liList = _this.appendTo.find('li');
-          jQuery.each(liList, function(index, item) {
-              var prev = parseFloat(jQuery(item).attr('data-index-number'));
-              var next = parseFloat(jQuery(liList[index+1]).attr('data-index-number'));
-              var current = _this.tplData.index;
-              if (current <= prev && (next > current || isNaN(next)) ) {
-                _this.element = jQuery(_this.template(_this.tplData)).insertBefore(jQuery(item)).hide().fadeIn('slow');
-                return false;
-              } else if (current > prev && (current < next || isNaN(next))) {
-                _this.element = jQuery(_this.template(_this.tplData)).insertAfter(jQuery(item)).hide().fadeIn('slow');
-                return false;
-              }
-          });
-        }
-      } else {
-        this.element = jQuery(this.template(this.tplData)).prependTo(this.appendTo).hide().fadeIn('slow');
-      }
-
-      this.bindEvents();
-      this.listenForActions();
-    },
-
-    fetchTplData: function() {
-      var _this = this,
-      location = _this.manifest.location,
-      manifest = _this.manifest.jsonLd;
-
-      this.tplData = {
-        label: $.JsonLd.getTextValue(manifest.label),
-        repository: location,
-        canvasCount: manifest.sequences[0].canvases.length,
-        images: [],
-        index: _this.state.getManifestIndex(manifest['@id'])
-      };
-
-      this.tplData.repoImage = (function() {
-        var repo = _this.tplData.repository;
-        if (manifest.logo) {
-          if (typeof manifest.logo === "string")
-            return manifest.logo;
-          if (typeof manifest.logo['@id'] !== 'undefined')
-            return manifest.logo['@id'];
-        }
-        return '';
-      })();
-
-      for ( var i=0; i < manifest.sequences[0].canvases.length; i++) {
-        var canvas = manifest.sequences[0].canvases[i];
-        if (canvas.width === 0) {
-          continue;
-        }
-
-        var aspectRatio = canvas.height/canvas.width,
-        width = (_this.thumbHeight/aspectRatio);
-        var url = _this.manifest.getThumbnailForCanvas(canvas, width);
-
-        _this.allImages.push({
-          url: url,
-          width: width,
-          height: _this.thumbHeight,
-          id: canvas['@id'],
-          index: i
-        });
-      }
-
-      jQuery.each(_this.allImages, function(index, value) {
-        var width = value.width;
-
-        _this.imagesTotalWidth += (width + _this.margin);
-        if (_this.imagesTotalWidth >= _this.maxPreviewImagesWidth) {
-          // outsized image will inherited
-          if (value.width > _this.maxPreviewImagesWidth) {
-            _this.tplData.images.push(value);
-          }
-          _this.imagesTotalWidth -= (width + _this.margin);
-          return false;
-        }
-        _this.tplData.images.push(value);
-      });
-
-      _this.remaining = this.tplData.remaining = (function() {
-        var remaining = _this.allImages.length - _this.tplData.images.length;
-        if (remaining > 0) {
-          return remaining;
-        }
-      })();
-
-    },
-
-    render: function() {
-
-    },
-
-    listenForActions: function() {
-      var _this = this;
-
-      _this.eventEmitter.subscribe('manifestPanelWidthChanged', function(event, newWidth){
-        _this.updateDisplay(newWidth);
-      });
-    },
-
-    bindEvents: function() {
-      var _this = this;
-
-      this.element.find('img').on('load', function() {
-        //if img width is not equal to the width in the html, change height
-        jQuery(this).hide().fadeIn(600);
-      });
-
-      this.element.on('click', function() {
-        var windowConfig = {
-          manifest: _this.manifest,
-          canvasID: null,
-          viewType: 'ThumbnailsView'
-        };
-        _this.eventEmitter.publish('ADD_WINDOW', windowConfig);
-      });
-
-      this.element.find('.preview-image').on('click', function(e) {
-        e.stopPropagation();
-        var windowConfig = {
-          manifest: _this.manifest,
-          canvasID: jQuery(this).attr('data-image-id'),
-          viewType: _this.state.getStateProperty('windowSettings').viewType //get the view type from settings rather than always defaulting to ImageView
-        };
-        _this.eventEmitter.publish('ADD_WINDOW', windowConfig);
-      });
-    },
-
-    updateDisplay: function(newWidth) {
-        var _this = this,
-        newMaxPreviewWidth = newWidth - (_this.repoWidth + _this.margin + _this.metadataWidth + _this.margin + _this.remainingWidth);
-        newMaxPreviewWidth = newMaxPreviewWidth * 0.95;
-        var image = null;
-
-        //width of browser window has been made smaller
-        if (newMaxPreviewWidth < _this.maxPreviewImagesWidth ) {
-          while (_this.imagesTotalWidth >= newMaxPreviewWidth) {
-            image = _this.tplData.images.pop();
-
-            if (image) {
-              _this.imagesTotalWidth -= (image.width + _this.margin);
-
-              //remove image from dom
-              _this.element.find('img[data-image-id="'+image.id+'"]').remove();
-            } else {
-              break;
-            }
-          }
-          //check if need to add ellipsis
-          if (_this.remaining === 0 && _this.allImages.length - _this.tplData.images.length > 0) {
-              _this.element.find('.preview-images').after('<i class="fa fa fa-ellipsis-h remaining"></i>');
-          }
-          _this.remaining = _this.allImages.length - _this.tplData.images.length;
-
-        } else if (newMaxPreviewWidth > _this.maxPreviewImagesWidth) {
-          //width of browser window has been made larger
-          var currentLastImage = _this.tplData.images[_this.tplData.images.length-1],
-            index = currentLastImage ? currentLastImage.index+1 : 0;
-
-          image = _this.allImages[index];
-
-          if (image) {
-            while (_this.imagesTotalWidth + image.width + _this.margin < newMaxPreviewWidth) {
-              _this.tplData.images.push(image);
-              _this.imagesTotalWidth += (image.width + _this.margin);
-
-              //add image to dom
-              _this.element.find('.preview-images').append('<img src="'+image.url+'" width="'+image.width+'" height="'+image.height+'" class="preview-image flash" data-image-id="'+image.id+'">');
-
-              //get next image
-              index++;
-              image = _this.allImages[index];
-              if (!image) {
-                break;
-              }
-            }
-            //check if need to remove ellipsis
-          if (_this.remaining > 0 && _this.allImages.length - _this.tplData.images.length === 0) {
-            _this.element.find('.remaining').remove();
-          }
-          _this.remaining = _this.allImages.length - _this.tplData.images.length;
-          }
-        }
-        _this.maxPreviewImagesWidth = newMaxPreviewWidth;
-        _this.eventEmitter.publish('manifestListItemRendered');
-    },
-
-    hide: function() {
-      var _this = this;
-    },
-
-    show: function() {
-      var _this = this;
-    },
-
-    template: $.Handlebars.compile([
-      '<li data-index-number={{index}}>',
-      '<div class="repo-image">',
-        '{{#if repoImage}}',
-        '<img src="{{repoImage}}" alt="repoImg">',
-        '{{else}}',
-        '<span class="default-logo"></span>',
-        '{{/if}}',
-      '</div>',
-      '<div class="select-metadata">',
-        '<div class="manifest-title">',
-          '<h3 title="{{{label}}}">{{{label}}}</h3>',
-        '</div>',
-        '<div class="item-info">',
-          '<div class="item-info-row">',
-            '{{#if repository}}',
-              '<div class="repo-label">{{repository}}</div>',
-            '{{/if}}',
-            '<div class="canvas-count">{{canvasCount}} {{pluralize canvasCount (t "item") (t "items")}}</div>',
-          '</div>',
-        '</div>',
-      '</div>',
-      '<div class="preview-thumb">',
-        '<div class="preview-images">',
-        '{{#each images}}',
-          '<img src="{{url}}" width="{{width}}" height="{{height}}" class="preview-image flash" data-image-id="{{id}}">',
-        '{{/each}}',
-        '</div>',
-        '{{#if remaining}}',
-          '<i class="fa fa fa-ellipsis-h remaining"></i>',
-        '{{/if}}',
-      '</div>',
-      '</li>'
-    ].join(''))
-  };
-
-}(Mirador));
diff --git a/js/src/viewer/manifestsPanel.js b/js/src/viewer/manifestsPanel.js
deleted file mode 100644
index 47e1c250900cbb3272b13d029bde49192ad18af5..0000000000000000000000000000000000000000
--- a/js/src/viewer/manifestsPanel.js
+++ /dev/null
@@ -1,182 +0,0 @@
-(function($) {
-
-    $.ManifestsPanel = function(options) {
-
-        jQuery.extend(true, this, {
-            element:                    null,
-            listItems:                  null,
-            appendTo:                   null,
-            manifestListItems:          [],
-            manifestListElement:        null,
-            manifestLoadStatusIndicator: null,
-            resultsWidth:               0,
-            state:                      null,
-            eventEmitter:               null
-        }, options);
-
-        var _this = this;
-        _this.init();
-        
-    };
-
-    $.ManifestsPanel.prototype = {
-
-        init: function() {
-            this.element = jQuery(this.template({
-                showURLBox : this.state.getStateProperty('showAddFromURLBox')
-            })).appendTo(this.appendTo);
-            this.manifestListElement = this.element.find('ul');
-            
-            //this code gives us the max width of the results area, used to determine how many preview images to show
-            //cloning the element and adjusting the display and visibility means it won't break the normal flow
-            var clone = this.element.clone().css("visibility","hidden").css("display", "block").appendTo(this.appendTo);
-            this.resultsWidth = clone.find('.select-results').outerWidth();
-            this.controlsHeight = clone.find('.manifest-panel-controls').outerHeight();
-            this.paddingListElement = this.controlsHeight;
-            this.manifestListElement.css("padding-bottom", this.paddingListElement);
-            clone.remove();
-            
-            // this.manifestLoadStatusIndicator = new $.ManifestLoadStatusIndicator({
-            //   manifests: this.parent.manifests,
-            //   appendTo: this.element.find('.select-results')
-            // });
-            this.bindEvents();
-            this.listenForActions();
-        },
-
-        listenForActions: function() {
-          var _this = this;
-
-          // handle subscribed events
-          _this.eventEmitter.subscribe('manifestsPanelVisible.set', function(_, stateValue) {
-            _this.onPanelVisible(_, stateValue);
-          });
-
-          _this.eventEmitter.subscribe('manifestReceived', function(event, newManifest) {
-            _this.onManifestReceived(event, newManifest);
-          });
-          
-          _this.eventEmitter.subscribe('collectionReceived', function(event, newCollection) {
-            _this.onCollectionReceived(event, newCollection);
-          });
-        },
-
-        bindEvents: function() {
-            var _this = this;
-
-            // handle interface events
-            this.element.find('form#url-load-form').on('submit', function(event) {
-              event.preventDefault();
-              _this.addManifestUrl(jQuery(this).find('input').val());
-            });
-
-            this.element.find('.remove-object-option').on('click', function(event) {
-              _this.togglePanel(event);
-            });
-
-            // Filter manifests based on user input
-            this.element.find('#manifest-search').on('keyup input', function(event) {
-              _this.filterManifests(this.value);
-            });
-
-            this.element.find('#manifest-search-form').on('submit', function(event) {
-              event.preventDefault();
-            });
-
-            jQuery(window).resize($.throttle(function() {
-              _this.resizePanel();
-            }, 50, true));
-        },
-        
-        hide: function() {
-            var _this = this;
-            jQuery(this.element).hide({effect: "fade", duration: 160, easing: "easeOutCubic"});
-        },
-
-        show: function() {
-            var _this = this;
-            jQuery(this.element).show({effect: "fade", duration: 160, easing: "easeInCubic"});
-        },
-        
-        addManifestUrl: function(url) {
-          var _this = this;
-          _this.eventEmitter.publish('ADD_MANIFEST_FROM_URL', [url, "(Added from URL)"]);
-        },
-        
-        togglePanel: function(event) {
-          var _this = this;
-          _this.eventEmitter.publish('TOGGLE_LOAD_WINDOW');
-        },
-        
-        filterManifests: function(value) {
-          var _this = this;
-          if (value.length > 0) {
-             _this.element.find('.items-listing li').show().filter(function() {
-                return jQuery(this).text().toLowerCase().indexOf(value.toLowerCase()) === -1;
-             }).hide();
-          } else {
-             _this.element.find('.items-listing li').show();
-          }
-        },
-
-        resizePanel: function() {
-          var _this = this;
-          var clone = _this.element.clone().css("visibility","hidden").css("display", "block").appendTo(_this.appendTo);
-          _this.resultsWidth = clone.find('.select-results').outerWidth();
-          clone.remove();
-          _this.eventEmitter.publish("manifestPanelWidthChanged", _this.resultsWidth);
-        },
-        
-        onPanelVisible: function(_, stateValue) {
-          var _this = this;
-          if (stateValue) { _this.show(); return; }
-           _this.hide();
-        },
-
-        onManifestReceived: function(event, newManifest) {
-          var _this = this;
-          _this.manifestListItems.push(new $.ManifestListItem({ 
-            manifest: newManifest, 
-            resultsWidth: _this.resultsWidth, 
-            state: _this.state,
-            eventEmitter: _this.eventEmitter,
-            appendTo: _this.manifestListElement }));
-          _this.element.find('#manifest-search').keyup();
-        },
-        
-        onCollectionReceived: function(event, newCollection) {
-          var _this = this;
-          jQuery.each(newCollection.getManifestUris(), function(_, v) {
-            _this.eventEmitter.publish('ADD_MANIFEST_FROM_URL', [v, newCollection.location]);
-          });
-        },
-
-        template: $.Handlebars.compile([
-          '<div id="manifest-select-menu">',
-          '<div class="container">',
-            '<div class="manifest-panel-controls">',
-              '<a class="remove-object-option"><i class="fa fa-times fa-lg fa-fw"></i>{{t "close"}}</a>',
-              '<div id="load-controls">',
-                '{{#if showURLBox}}',
-                  '<form action="" id="url-load-form">',
-                    '<label for="url-loader">{{t "addNewObject"}}:</label>',
-                    '<input type="text" id="url-loader" name="url-load" placeholder="https://...">',
-                    '<input type="submit" value="{{t "load"}}">',
-                  '</form>',
-                '{{/if}}',
-                '<form action="" id="manifest-search-form">',
-                  '<label for="manifest-search">{{t "filterObjects"}}:</label>',
-                  '<input id="manifest-search" type="text" name="manifest-filter">',
-                '</form>',
-              '</div>',
-            '</div>',
-              '<div class="select-results">',
-                '<ul class="items-listing">',
-                '</ul>',
-              '</div>',
-          '</div>',
-          '</div>'
-        ].join(''))
-    };
-
-}(Mirador));
diff --git a/js/src/viewer/workspacePanel.js b/js/src/viewer/workspacePanel.js
deleted file mode 100644
index ecabe43fdacbd071c2dc111b2cdb95841e2c4d1d..0000000000000000000000000000000000000000
--- a/js/src/viewer/workspacePanel.js
+++ /dev/null
@@ -1,137 +0,0 @@
-(function($) {
-
-  $.WorkspacePanel = function(options) {
-
-    jQuery.extend(true, this, {
-      element: null,
-      appendTo: null,
-      workspace: null,
-      state: null,
-      eventEmitter: null
-    }, options);
-
-    this.init();
-
-  };
-
-  $.WorkspacePanel.prototype = {
-    init: function () {
-      var _this = this,
-      templateData = {
-        rows: $.layoutDescriptionFromGridString(_this.state.getStateProperty('workspacePanelSettings').maxColumns + 'x' + _this.state.getStateProperty('workspacePanelSettings').maxRows).children.map(function(column, rowIndex) {
-          column.columns = column.children.map(function(row, columnIndex) {
-            row.gridString = (rowIndex+1) + 'x' + (columnIndex+1);
-            return row;
-          });
-          return column;
-        })
-      };
-
-      this.element = jQuery(this.template(templateData)).appendTo(this.appendTo);
-      var backgroundImage = _this.state.getStateProperty('buildPath') + _this.state.getStateProperty('imagesPath') + 'debut_dark.png';
-      this.element.css('background-image','url('+backgroundImage+')').css('background-repeat','repeat');
-      
-      this.bindEvents();
-      this.listenForActions();
-    },
-
-    listenForActions: function() {
-      var _this = this;
-      _this.eventEmitter.subscribe('workspacePanelVisible.set', function(_, stateValue) {
-        _this.onPanelVisible(_, stateValue);
-      });
-    },
-
-    bindEvents: function() {
-      var _this = this;
-
-      _this.element.find('.grid-item').on('click', function() {
-        var gridString = jQuery(this).data('gridstring');
-        _this.select(gridString);
-      });
-
-      _this.element.find('.grid-item').on('mouseover', function() {
-        var gridString = jQuery(this).data('gridstring');
-        _this.hover(gridString);
-      });
-      
-      _this.element.find('.select-grid').on('mouseout', function() {
-        _this.reset();
-      });
-    },
-
-    select: function(gridString) {
-      var _this = this;
-      var layoutDescription = $.layoutDescriptionFromGridString(gridString);
-      _this.eventEmitter.publish('RESET_WORKSPACE_LAYOUT', {layoutDescription: layoutDescription});
-      _this.eventEmitter.publish('TOGGLE_WORKSPACE_PANEL');
-    },
-
-    hover: function(gridString) {
-      var _this = this,
-      highestRow = gridString.charAt(0),
-      highestColumn = gridString.charAt(2),
-      gridItems = _this.element.find('.grid-item');
-      gridItems.removeClass('hovered');
-      gridItems.filter(function(index) {
-        var gridString = jQuery(this).data('gridstring');
-        var change = gridString.charAt(0) <= highestRow && gridString.charAt(2) <= highestColumn;
-        return change;
-      }).addClass('hovered');
-      _this.element.find('.grid-instructions').hide();
-      _this.element.find('.grid-text').text(gridString).show();
-    },
-    
-    reset: function() {
-      var _this = this;
-      _this.element.find('.grid-item').removeClass('hovered');
-      _this.element.find('.grid-instructions').show();
-      _this.element.find('.grid-text').hide();
-    },
-
-    hide: function() {
-      jQuery(this.element).hide({effect: "fade", duration: 160, easing: "easeOutCubic"});
-    },
-
-    show: function() {
-      var onComplete = function () {
-        // Under firefox $.show() used under display:none iframe does not change the display.
-        // This is workaround for https://github.com/IIIF/mirador/issues/929
-        jQuery(this).css('display', 'block');
-      };
-
-      jQuery(this.element).show({
-        effect: "fade", duration: 160, easing: "easeInCubic", complete: onComplete
-      });
-    },
-
-    onPanelVisible: function(_, stateValue) {
-      var _this = this;
-      if (stateValue) { _this.show(); return; }
-      _this.hide();
-    },
-
-    template: $.Handlebars.compile([
-                                 '<div id="workspace-select-menu">',
-                                 '<h1>{{t "changeLayout"}}</h1>',
-                                 '<h3 class="grid-text"></h3>',
-                                 '<h3 class="grid-instructions">{{t "selectGrid"}}</h3>',
-                                 '<div class="select-grid">',
-                                 '{{#each rows}}',
-                                 '<div class="grid-row">',
-                                   '{{#each columns}}',
-                                   '<a class="grid-item" data-gridString="{{gridString}}">',
-                                   '<div class="grid-icon"></div>',
-                                   '</a>',
-                                   '{{/each}}',
-                                 '</div>',
-                                 '{{/each}}',
-                                 '</div>',
-                                 // '<div class="preview-container">',
-                                 // '</div>',
-                                 '</div>'
-    ].join(''))
-  };
-
-}(Mirador));
-
diff --git a/js/src/widgets/annotationsLayer.js b/js/src/widgets/annotationsLayer.js
deleted file mode 100755
index 2b5a19491b9bba5b2c9bd8f985506949f9231d5e..0000000000000000000000000000000000000000
--- a/js/src/widgets/annotationsLayer.js
+++ /dev/null
@@ -1,142 +0,0 @@
-(function($) {
-
-  $.AnnotationsLayer = function(options) {
-
-    jQuery.extend(true, this, {
-      annotationsList:   null,
-      viewer:            null,
-      drawTool:          null,
-      selected:          null,
-      hovered:           null,
-      windowId:          null,
-      mode:              'default',
-      element:           null,
-      eventEmitter:      null
-    }, options);
-
-    this.init();
-  };
-
-  $.AnnotationsLayer.DISPLAY_ANNOTATIONS = 'displayAnnotations';
-
-  $.AnnotationsLayer.prototype = {
-
-    init: function() {
-      var _this = this;
-      _this.eventEmitter.unsubscribe(('modeChange.' + _this.windowId));
-      _this.eventEmitter.unsubscribe(('slotLeave.' + _this.windowId));
-      _this.eventEmitter.unsubscribe(('slotEnter.' + _this.windowId));
-
-      this.createStateMachine();
-      this.createRenderer();
-      this.bindEvents();
-      this.listenForActions();
-    },
-
-    listenForActions: function() {
-      var _this = this;
-
-      _this.eventEmitter.subscribe('modeChange.' + _this.windowId, function(event, modeName) {
-        _this.mode = modeName;
-        _this.modeSwitch();
-      });
-
-      _this.eventEmitter.subscribe('annotationListLoaded.' + _this.windowId, function(event) {
-        _this.annotationsList = _this.state.getWindowAnnotationsList(_this.windowId);
-        _this.updateRenderer();
-      });
-
-      _this.eventEmitter.subscribe('slotLeave.' + _this.windowId, function(event, eventData) {
-        if (_this.layerState.current == "display") {
-          _this.layerState.defaultState();
-          _this.modeSwitch();
-        }
-      });
-
-      _this.eventEmitter.subscribe('slotEnter.' + _this.windowId, function(event, eventData) {
-        if (_this.element.showAnno && _this.layerState.current == "display") {
-          _this.layerState.defaultState();
-          _this.modeSwitch();
-        }
-      });
-    },
-
-    bindEvents: function() {
-      var _this = this;
-    },
-
-    createStateMachine: function() {
-      var _this = this;
-      this.layerState = StateMachine.create({
-        events: [
-          { name: 'startup', from: 'none', to: 'default' },
-          { name: 'defaultState', from: ['default', 'display', 'create', 'edit'], to: 'default' },
-          { name: 'displayAnnotations', from: ['default', 'display', 'create', 'edit', 'newShape'], to: 'display' },
-          { name: 'createAnnotation', from: ['default','display'], to: 'create' },
-          { name: 'createShape', from: 'edit', to: 'newShape'},
-          { name: 'editAnnotation', from: ['default','display', 'newShape'], to: 'edit' }
-        ],
-        callbacks: {
-          onstartup: function(event) {
-            _this.drawTool.enterDefault();
-          },
-          ondefaultState: function(event) {
-            _this.drawTool.enterDefault();
-          },
-          ondisplayAnnotations: function(event) {
-            _this.drawTool.enterDisplayAnnotations();
-          },
-          oncreateAnnotation: function(event) {
-            _this.drawTool.enterCreateAnnotation();
-          },
-          oncreateShape: function(event) {
-            _this.drawTool.enterCreateShape();
-          },
-          oneditAnnotation: function(event) {
-            _this.drawTool.enterEditAnnotation();
-          }
-        }
-      });
-    },
-
-    createRenderer: function() {
-      var _this = this;
-      this.drawTool = new $.OsdRegionDrawTool({
-        osdViewer: _this.viewer,
-        parent: _this,
-        list: _this.annotationsList, // must be passed by reference.
-        visible: false,
-        windowId: _this.windowId,
-        state: _this.state,
-        eventEmitter: _this.eventEmitter
-      });
-      this.layerState.startup();
-    },
-
-    updateRenderer: function() {
-      this.drawTool.list = this.annotationsList;
-      // this.modeSwitch();
-    },
-
-    modeSwitch: function() {
-      if (this.mode === 'displayAnnotations') {
-        this.layerState.displayAnnotations();
-      }
-      else if (this.mode === 'editingAnnotation') {
-        this.layerState.editAnnotation();
-      }
-      else if (this.mode === 'creatingAnnotation') {
-        if (this.layerState.current !== 'edit') {
-          this.layerState.createAnnotation();
-        } else {
-          this.layerState.createShape();
-        }
-      }
-      else if (this.mode === 'default') {
-        this.layerState.defaultState();
-      }
-      else {}
-    }
-  };
-
-}(Mirador));
diff --git a/js/src/widgets/annotationsTab.js b/js/src/widgets/annotationsTab.js
deleted file mode 100644
index f35bf99fd7c285229043ad5551e9b3ba857ad6aa..0000000000000000000000000000000000000000
--- a/js/src/widgets/annotationsTab.js
+++ /dev/null
@@ -1,207 +0,0 @@
-(function($) {
-
-    $.AnnotationsTab = function(options) {
-        jQuery.extend(true, this, {
-            element:           null,
-            appendTo:          null,
-            manifest:          null,
-            visible:           null,
-            state:             null,
-            eventEmitter:      null
-        }, options);
-
-        this.init();
-    };
-
-    $.AnnotationsTab.prototype = {
-        init: function() {
-            var _this = this;
-            this.windowId = this.windowId;
-
-            this.localState({
-                id: 'annotationsTab',
-                visible: this.visible,
-                annotationLists: [],
-                selectedList: null,
-                empty: true,
-                focusedList: null
-            }, true);
-
-            this.listenForActions();
-            this.render(this.localState());
-            this.loadTabComponents();
-            this.bindEvents();
-        },
-        localState: function(state, initial) {
-            var _this = this;
-            if (!arguments.length) return this.annoTabState;
-            this.annoTabState = state;
-
-            if (!initial) {
-                _this.eventEmitter.publish('annotationsTabStateUpdated.' + this.windowId, this.annoTabState);
-            }
-
-            return this.annoTabState;
-        },
-        loadTabComponents: function() {
-            var _this = this;
-
-        },
-        tabStateUpdated: function(visible) {
-            localState = this.localState();
-            localState.visible = visible;
-            this.localState(localState);
-            visible ? this.element.show() : this.element.hide();
-        },
-        annotationListLoaded: function() {
-            var _this = this,
-            annotationSources = [],
-            localState = this.localState();
-            jQuery.each(_this.state.getWindowAnnotationsList(_this.windowId), function(index, value) {
-              //loads annoations from external annotationLists
-              if(value.endpoint && typeof value.endpoint === 'string') {
-                  annotationSources.push(value.resource);
-              }
-              else if (value.resource){
-                //loads annoations from external annotationLists
-                if(value.resource.endpoint && typeof value.resource.endpoint === 'string') {
-                  annotationSources.push(value.resource);
-                }
-                //loads annoations from local annotation endpoint
-                else {
-                  annotationSources.push(value.resource[0]);
-                }
-              }
-            });
-            // make unique
-            annotationSources = annotationSources.filter(function(itm,i,annotationSources){
-                return i==annotationSources.indexOf(itm);
-            });
-
-            localState.annotationLists = annotationSources.map(function(annotationSource) {
-                //var s = (annotationSource === localState.selectedList ? true : false);
-                return {
-                    annotationSource: annotationSource,
-                    layer: null,
-                    selected: (annotationSource === localState.selectedList ? true : false),
-                    focused: false
-                };
-            });
-
-            if(localState.annotationLists.length){
-              localState.empty = false;
-            }
-            this.localState(localState);
-        },
-        deselectList: function(listId) {
-            var _this = this;
-            var localState = this.localState();
-            localState.selectedList = null;
-            localState.annotationLists.forEach(function(list){ list.selected = false; });
-            this.localState(localState);
-        },
-        selectList: function(listId) {
-            var _this = this;
-            var localState = this.localState();
-            localState.selectedList = listId;
-            localState.annotationLists.forEach(function(list){ list.selected = list.annotationSource === listId ? true : false; });
-            this.localState(localState);
-        },
-        focusList: function(listId) {
-            var localState = this.localState();
-            localState.focusedList = listId;
-            localState.annotationLists.forEach(function(list){ list.focused = list.annotationSource === listId ? true : false;});
-            this.localState(localState);
-        },
-        toggle: function() {},
-        listenForActions: function() {
-            var _this = this;
-
-            _this.eventEmitter.subscribe('annotationsTabStateUpdated.' + _this.windowId, function(_, data) {
-                _this.render(data);
-            });
-
-            _this.eventEmitter.subscribe('tabStateUpdated.' + _this.windowId, function(_, data) {
-                _this.tabStateUpdated(data.tabs[data.selectedTabIndex].options.id == 'annotationsTab');
-            });
-
-
-            _this.eventEmitter.subscribe('annotationListLoaded.' + _this.windowId, function(_, data) {
-                _this.annotationListLoaded();
-            });
-
-            _this.eventEmitter.subscribe('currentCanvasIDUpdated.' + _this.windowId, function(event) {
-
-            _this.eventEmitter.subscribe('annotationListLoaded.' + _this.windowId, function(event) {
-                _this.annotationListLoaded();
-            });
-
-              _this.selectList(_this.localState().selectedList);
-
-            });
-
-            _this.eventEmitter.subscribe('listSelected.' + _this.windowId, function(event, listId) {
-                _this.selectList(listId);
-            });
-
-            _this.eventEmitter.subscribe('listDeselected.' + _this.windowId, function(event, listId) {
-                _this.deselectList(listId);
-            });
-
-        },
-        bindEvents: function() {
-            var _this = this,
-                listItems = this.element.find('.annotationListItem');
-
-            // listItems.on('click', function(event) {
-            //     //event.stopImmediatePropagation();
-            //     var listClicked = jQuery(this).data('id');
-            //     if(_this.localState().selectedList === listClicked){
-            //         //_this.deselectList(listClicked);
-            //         _this.eventEmitter.publish('listDeselected.' + _this.windowId, listClicked);
-            //     }else{
-            //         //_this.selectList(listClicked);
-            //         _this.eventEmitter.publish('listSelected.' + _this.windowId, listClicked);
-            //     }
-            //
-            // });
-
-        },
-        render: function(state) {
-            var _this = this,
-                templateData = {
-                    annotationSources: state.annotationLists
-                };
-            if (!this.element) {
-                this.element = jQuery(_this.template(templateData)).appendTo(_this.appendTo);
-            } else {
-                jQuery(_this.appendTo).find(".annotationsPanel").remove();
-                this.element = jQuery(_this.template(templateData)).appendTo(_this.appendTo);
-            }
-            _this.bindEvents();
-
-
-            if (state.visible) {
-                this.element.show();
-            } else {
-                this.element.hide();
-            }
-        },
-        template: $.Handlebars.compile([
-            '<div class="annotationsPanel">',
-            '<ul class="annotationSources">',
-            '{{#each annotationSources}}',
-            //'<li class="annotationListItem {{#if this.selected}}selected{{/if}} {{#if this.focused }}focused{{/if}}" data-id="{{this.annotationSource.chars}}">',
-            '<li class="annotationListItem" {{#if this.selected}}selected{{/if}} {{#if this.focused }}focused{{/if}}">',
-            '<span style="font-weight: bold">{{{this.annotationSource.label}}}</span>',
-            '<br/>',
-            '<span>{{{this.annotationSource.chars}}}</span>',
-            //'<span>{{this.annotationSource}}</span>',
-            '</li>',
-            '{{/each}}',
-            '</ul>',
-            '</div>',
-        ].join(''))
-    };
-
-}(Mirador));
diff --git a/js/src/widgets/bookView.js b/js/src/widgets/bookView.js
deleted file mode 100755
index 8b67917dc759f496be2a6ce67248ad0f16dd638b..0000000000000000000000000000000000000000
--- a/js/src/widgets/bookView.js
+++ /dev/null
@@ -1,492 +0,0 @@
-(function($) {
-
-  $.BookView = function(options) {
-
-    jQuery.extend(this, {
-      currentImg:       null,
-      windowId:         null,
-      currentImgIndex:  0,
-      stitchList:       [],
-      canvasID:          null,
-      imagesList:       [],
-      imagesListRtl:       [],
-      element:          null,
-      focusImages:      [],
-      manifest:         null,
-      viewingDirection: 'left-to-right',
-      viewingHint:      'paged',
-      osd:              null,
-      osdCls:           'mirador-osd',
-      osdOptions: {
-        osdBounds:        null,
-        zoomLevel:        null
-      },
-      stitchTileMargin: 10,
-      eventEmitter: null
-    }, options);
-
-    this.init();
-  };
-
-
-  $.BookView.prototype = {
-
-    init: function() {
-      var _this = this;
-      if(this.vDirectionStatus == 'rtl'){
-        this.imagesList =  this.imagesListRtl.concat();
-      }
-      if (this.canvasID !== null) {
-        this.currentImgIndex = $.getImageIndexById(this.imagesList, this.canvasID);
-      }
-
-      if (!this.osdOptions) {
-        this.osdOptions = {
-          osdBounds:        null,
-          zoomLevel:        null
-        };
-      }
-
-      this.currentImg = this.imagesList[this.currentImgIndex];
-
-      this.element = jQuery(this.template()).appendTo(this.appendTo);
-
-      this.hud = new $.Hud({
-        appendTo: this.element,
-        bottomPanelAvailable: this.bottomPanelAvailable,
-        windowId: this.windowId,
-        annotationLayerAvailable: false,
-        showNextPrev : this.imagesList.length !== 1,
-        eventEmitter: this.eventEmitter,
-        showAnno: false,
-        showImageControls: false
-      });
-
-      if (this.manifest.jsonLd.sequences[0].viewingDirection) {
-        this.viewingDirection = this.manifest.jsonLd.sequences[0].viewingDirection.toLowerCase();
-      }
-      if (this.manifest.jsonLd.sequences[0].viewingHint) {
-        this.viewingHint = this.manifest.jsonLd.sequences[0].viewingHint.toLowerCase();
-      }
-
-      this.stitchList = this.getStitchList();
-      this.createOpenSeadragonInstance();
-
-      this.bindEvents();
-      this.listenForActions();
-
-      if (typeof this.bottomPanelAvailable !== 'undefined' && !this.bottomPanelAvailable) {
-        _this.eventEmitter.publish('SET_BOTTOM_PANEL_VISIBILITY.' + this.windowId, false);
-      } else {
-        _this.eventEmitter.publish('SET_BOTTOM_PANEL_VISIBILITY.' + this.windowId, null);
-      }
-    },
-
-    template: $.Handlebars.compile([
-      '<div class="book-view">',
-      '</div>'
-    ].join('')),
-
-    listenForActions: function() {
-      var _this = this,
-          firstCanvasId = _this.imagesList[0]['@id'],
-          lastCanvasId = _this.imagesList[_this.imagesList.length-1]['@id'];
-
-      _this.eventEmitter.subscribe('bottomPanelSet.' + _this.windowId, function(event, visible) {
-        var dodgers = _this.element.find('.mirador-osd-toggle-bottom-panel, .mirador-pan-zoom-controls');
-        var arrows = _this.element.find('.mirador-osd-next, .mirador-osd-previous');
-        if (visible === true) {
-          dodgers.addClass('bottom-panel-open');
-          arrows.addClass('bottom-panel-open');
-        } else {
-          dodgers.removeClass('bottom-panel-open');
-          arrows.removeClass('bottom-panel-open');
-        }
-      });
-
-      _this.eventEmitter.subscribe('fitBounds.' + _this.windowId, function(event, bounds) {
-        var rect = _this.osd.viewport.imageToViewportRectangle(Number(bounds.x), Number(bounds.y), Number(bounds.width), Number(bounds.height));
-        _this.osd.viewport.fitBoundsWithConstraints(rect, false);
-      });
-
-      _this.eventEmitter.subscribe('currentCanvasIDUpdated.' + _this.windowId, function(event, canvasId) {
-        // If it is the first canvas, hide the "go to previous" button, otherwise show it.
-        if (canvasId === firstCanvasId) {
-          _this.element.find('.mirador-osd-previous').hide();
-          _this.element.find('.mirador-osd-next').show();
-        } else if (canvasId === lastCanvasId) {
-          _this.element.find('.mirador-osd-next').hide();
-          _this.element.find('.mirador-osd-previous').show();
-        } else {
-          _this.element.find('.mirador-osd-next').show();
-          _this.element.find('.mirador-osd-previous').show();
-        }
-        // If it is the last canvas, hide the "go to previous" button, otherwise show it.
-      });
-    },
-
-    bindEvents: function() {
-      var _this = this;
-
-      this.element.find('.mirador-osd-next').on('click', function() {
-        _this.next();
-      });
-
-      this.element.find('.mirador-osd-previous').on('click', function() {
-        _this.previous();
-      });
-
-      this.element.find('.mirador-osd-go-home').on('click', function() {
-        _this.osd.viewport.goHome();
-      });
-
-      this.element.find('.mirador-osd-up').on('click', function() {
-        var panBy = _this.getPanByValue();
-        _this.osd.viewport.panBy(new OpenSeadragon.Point(0, -panBy.y));
-        _this.osd.viewport.applyConstraints();
-      });
-      this.element.find('.mirador-osd-right').on('click', function() {
-        var panBy = _this.getPanByValue();
-        _this.osd.viewport.panBy(new OpenSeadragon.Point(panBy.x, 0));
-        _this.osd.viewport.applyConstraints();
-      });
-      this.element.find('.mirador-osd-down').on('click', function() {
-        var panBy = _this.getPanByValue();
-        _this.osd.viewport.panBy(new OpenSeadragon.Point(0, panBy.y));
-        _this.osd.viewport.applyConstraints();
-      });
-      this.element.find('.mirador-osd-left').on('click', function() {
-        var panBy = _this.getPanByValue();
-        _this.osd.viewport.panBy(new OpenSeadragon.Point(-panBy.x, 0));
-        _this.osd.viewport.applyConstraints();
-      });
-
-      this.element.find('.mirador-osd-zoom-in').on('click', function() {
-        var osd = _this.osd;
-        if ( osd.viewport ) {
-          osd.viewport.zoomBy(
-            osd.zoomPerClick / 1.0
-          );
-          osd.viewport.applyConstraints();
-        }
-      });
-      this.element.find('.mirador-osd-zoom-out').on('click', function() {
-        var osd = _this.osd;
-        if ( osd.viewport ) {
-          osd.viewport.zoomBy(
-            1.0 / osd.zoomPerClick
-          );
-          osd.viewport.applyConstraints();
-        }
-      });
-
-      this.element.find('.mirador-osd-toggle-bottom-panel').on('click', function() {
-        _this.eventEmitter.publish('TOGGLE_BOTTOM_PANEL_VISIBILITY.' + _this.windowId);
-      });
-    },
-
-    getPanByValue: function() {
-      var bounds = this.osd.viewport.getBounds(true);
-      //for now, let's keep 50% of the image on the screen
-      var panBy = {
-        "x" : bounds.width * 0.5,
-        "y" : bounds.height * 0.5
-      };
-      return panBy;
-    },
-
-    setBounds: function() {
-      var _this = this;
-      this.osdOptions.osdBounds = this.osd.viewport.getBounds(true);
-      _this.eventEmitter.publish("imageBoundsUpdated", {
-        id: _this.windowId,
-        osdBounds: {
-          x: _this.osdOptions.osdBounds.x,
-          y: _this.osdOptions.osdBounds.y,
-          width: _this.osdOptions.osdBounds.width,
-          height: _this.osdOptions.osdBounds.height
-        }
-      });
-    },
-
-    toggle: function(stateValue) {
-      if (stateValue) {
-        this.show();
-      } else {
-        this.hide();
-      }
-    },
-
-    hide: function() {
-      jQuery(this.element).hide({effect: "fade", duration: 300, easing: "easeOutCubic"});
-    },
-
-    show: function() {
-      jQuery(this.element).show({
-        effect: "fade", duration: 300, easing: "easeInCubic", complete: function () {
-          // Under firefox $.show() used under display:none iframe does not change the display.
-          // This is workaround for https://github.com/IIIF/mirador/issues/929
-          jQuery(this).css('display', 'block');
-        }
-      });
-    },
-
-    adjustWidth: function(className, hasClass) {
-      var _this = this;
-      if (hasClass) {
-        _this.eventEmitter.publish('REMOVE_CLASS.'+this.windowId, className);
-      } else {
-        _this.eventEmitter.publish('ADD_CLASS.'+this.windowId, className);
-      }
-    },
-
-    adjustHeight: function(className, hasClass) {
-      if (hasClass) {
-        this.element.removeClass(className);
-      } else {
-        this.element.addClass(className);
-      }
-    },
-
-    updateImage: function(canvasID) {
-      this.canvasID = canvasID;
-      this.currentImgIndex = $.getImageIndexById(this.imagesList, this.canvasID);
-      this.currentImg = this.imagesList[this.currentImgIndex];
-      var newList = this.getStitchList();
-      var is_same = this.stitchList.length == newList.length && this.stitchList.every(function(element, index) {
-        return element === newList[index];
-      });
-      if (!is_same) {
-        this.stitchList = newList;
-        this.osdOptions = {
-          osdBounds:        null,
-          zoomLevel:        null
-        };
-        this.osd.close();
-        this.createOpenSeadragonInstance();
-      }
-    },
-
-    createOpenSeadragonInstance: function() {
-      var uniqueID = $.genUUID(),
-          osdId = 'mirador-osd-' + uniqueID,
-          osdToolBarId = osdId + '-toolbar',
-          elemOsd,
-          tileSources = [],
-          _this = this,
-          toolbarID = 'osd-toolbar-' + uniqueID,
-          dfd = jQuery.Deferred();
-
-      this.element.find('.' + this.osdCls).remove();
-
-      jQuery.each(this.stitchList, function(index, image) {
-        var imageUrl = $.Iiif.getImageUrl(image),
-            infoJsonUrl = imageUrl + '/info.json';
-
-        jQuery.getJSON(infoJsonUrl).done(function (data, status, jqXHR) {
-          tileSources.splice(index, 0, data);
-          if (tileSources.length === _this.stitchList.length ) { dfd.resolve(); }
-        });
-      });
-
-      dfd.done(function () {
-        var aspectRatio = tileSources[0].height / tileSources[0].width;
-
-        elemOsd =
-          jQuery('<div/>')
-          .addClass(_this.osdCls)
-          .attr('id', osdId)
-          .appendTo(_this.element);
-
-        _this.osd = $.OpenSeadragon({
-          'id':           elemOsd.attr('id'),
-          'toolbarID' : toolbarID
-        });
-
-        // if (_this.state.getStateProperty('autoHideControls')) {
-        //   var timeoutID = null,
-        //   fadeDuration = _this.state.getStateProperty('fadeDuration'),
-        //   timeoutDuration = _this.state.getStateProperty('timeoutDuration');
-        //   var hideHUD = function() {
-        //     _this.element.find(".hud-control").stop(true, true).addClass('hidden', fadeDuration);
-        //   };
-        //   hideHUD();
-        //   jQuery(_this.element).on('mousemove', function() {
-        //     window.clearTimeout(timeoutID);
-        //     _this.element.find(".hud-control").stop(true, true).removeClass('hidden', fadeDuration);
-        //     timeoutID = window.setTimeout(hideHUD, timeoutDuration);
-        //   }).on('mouseleave', function() {
-        //     window.clearTimeout(timeoutID);
-        //     hideHUD();
-        //   });
-        // }
-
-        _this.osd.addHandler('open', function(){
-          _this.addLayer(tileSources.slice(1), aspectRatio);
-          var addItemHandler = function( event ) {
-            _this.osd.world.removeHandler( "add-item", addItemHandler );
-            if (_this.osdOptions.osdBounds) {
-              var rect = new OpenSeadragon.Rect(_this.osdOptions.osdBounds.x, _this.osdOptions.osdBounds.y, _this.osdOptions.osdBounds.width, _this.osdOptions.osdBounds.height);
-              _this.osd.viewport.fitBounds(rect, true);
-            } else {
-              _this.osd.viewport.goHome(true);
-            }
-          };
-
-          if (_this.boundsToFocusOnNextOpen) {
-            _this.eventEmitter.publish('fitBounds.' + _this.windowId, _this.boundsToFocusOnNextOpen);
-            _this.boundsToFocusOnNextOpen = null;
-          }
-
-          _this.osd.world.addHandler( "add-item", addItemHandler );
-
-          _this.osd.addHandler('zoom', $.debounce(function(){
-            _this.setBounds();
-          }, 300));
-
-          _this.osd.addHandler('pan', $.debounce(function(){
-            _this.setBounds();
-          }, 300));
-        });
-
-        _this.osd.open(tileSources[0], {opacity:1, x:0, y:0, width:1});
-      });
-
-    },
-
-    addLayer: function(tileSources, aspectRatio) {
-      var _this = this;
-      jQuery.each(tileSources, function(index, value) {
-        var newAR = (value.height / value.width);
-        var options = {
-          tileSource: value,
-          opacity: 1,
-          x: 1.01,
-          y: 0,
-          width: aspectRatio / newAR
-        };
-        _this.osd.addTiledImage(options);
-      });
-    },
-
-    // next two pages for paged objects
-    // need next single page for lining pages up
-    // don't need for continuous or individuals
-    next: function() {
-      var _this = this;
-      var next;
-      if (this.currentImgIndex % 2 === 0) {
-        next = this.currentImgIndex + 1;
-      } else {
-        next = this.currentImgIndex + 2;
-      }
-      if (next < this.imagesList.length) {
-        _this.eventEmitter.publish('SET_CURRENT_CANVAS_ID.' + this.windowId, this.imagesList[next]['@id']);
-      }
-    },
-
-    // previous two pages for paged objects
-    // need previous single page for lining things up
-    // don't need for continuous or individuals
-    previous: function() {
-      var _this = this;
-      var prev;
-      if (this.currentImgIndex % 2 === 0) {
-        prev = this.currentImgIndex - 2;
-      } else {
-        prev = this.currentImgIndex - 1;
-      }
-      if (prev >= 0) {
-        _this.eventEmitter.publish('SET_CURRENT_CANVAS_ID.' + this.windowId, this.imagesList[prev]['@id']);
-      }
-    },
-
-    getStitchList: function() {
-      // Need to check metadata for object type and viewing direction
-      // Default to 'paged' and 'left-to-right'
-      // Set index(es) for any other images to stitch with selected image
-      var stitchList = [],
-          leftIndex = [],
-          rightIndex = [],
-          topIndex = [],
-          bottomIndex = [],
-          viewAdjustedImgIndex = this.currentImgIndex,
-          _this = this;
-
-      this.focusImages = [];
-
-      if (this.viewingHint === 'individuals') {
-        // don't do any stitching, display like an imageView
-        stitchList = [this.currentImg];
-      } else if (this.viewingHint === 'paged') {
-
-        // For RTL work out index from right hand side.
-        if (this.viewingDirection === 'right-to-left') {
-          viewAdjustedImgIndex = (this.imagesList.length-1) - this.currentImgIndex;
-        }
-
-        // determine the other image for this pair based on index and viewingDirection
-        if (viewAdjustedImgIndex === 0 || viewAdjustedImgIndex === this.imagesList.length-1) {
-          //first page (front cover) or last page (back cover), display on its own
-          stitchList = [this.currentImg];
-        } else if (viewAdjustedImgIndex % 2 === 0) {
-          // even, get previous page.  set order in array based on viewingDirection
-          switch (this.viewingDirection) {
-          case "left-to-right":
-            leftIndex[0] = this.currentImgIndex-1;
-            stitchList = [this.imagesList[this.currentImgIndex-1], this.currentImg];
-            break;
-          case "right-to-left":
-            rightIndex[0] = this.currentImgIndex+1;
-            stitchList = [this.currentImg, this.imagesList[this.currentImgIndex+1]];
-            break;
-          case "top-to-bottom":
-            topIndex[0] = this.currentImgIndex-1;
-            stitchList = [this.imagesList[this.currentImgIndex-1], this.currentImg];
-            break;
-          case "bottom-to-top":
-            bottomIndex[0] = this.currentImgIndex-1;
-            stitchList = [this.currentImg, this.imagesList[this.currentImgIndex-1]];
-            break;
-          default:
-            break;
-          }
-        } else {
-          // odd, get next page
-          switch (this.viewingDirection) {
-          case "left-to-right":
-            rightIndex[0] = this.currentImgIndex+1;
-            stitchList = [this.currentImg, this.imagesList[this.currentImgIndex+1]];
-            break;
-          case "right-to-left":
-            leftIndex[0] = this.currentImgIndex-1;
-            stitchList = [this.imagesList[this.currentImgIndex-1], this.currentImg];
-            break;
-          case "top-to-bottom":
-            bottomIndex[0] = this.currentImgIndex+1;
-            stitchList = [this.currentImg, this.imagesList[this.currentImgIndex+1]];
-            break;
-          case "bottom-to-top":
-            topIndex[0] = this.currentImgIndex+1;
-            stitchList = [this.imagesList[this.currentImgIndex+1], this.currentImg];
-            break;
-          default:
-            break;
-          }
-        }
-      } else if (this.viewingHint === 'continuous') {
-        // TODO: stitch all images together per the viewingDirection
-      } else {
-        // undefined viewingHint, don't do anything
-      }
-
-      //set the focusImages for highlighting in panels
-      jQuery.each(stitchList, function(index, image) {
-        _this.focusImages.push(image['@id']);
-      });
-      _this.eventEmitter.publish('UPDATE_FOCUS_IMAGES.' + this.windowId, {array: this.focusImages});
-      return stitchList;
-    }
-  };
-
-}(Mirador));
diff --git a/js/src/widgets/contextControls.js b/js/src/widgets/contextControls.js
deleted file mode 100644
index ebbd15d7830acf164d24e3651519619d0c107f5d..0000000000000000000000000000000000000000
--- a/js/src/widgets/contextControls.js
+++ /dev/null
@@ -1,372 +0,0 @@
-(function($) {
-
-  $.ContextControls = function(options) {
-
-    jQuery.extend(this, {
-      element: null,
-      container: null,
-      mode: null,
-      windowId: null,
-      annoEndpointAvailable: false,
-      eventEmitter: null
-    }, options);
-
-    this.init();
-  };
-
-  $.ContextControls.prototype = {
-
-    init: function() {
-      var _this = this;
-      var showStrokeStyle = false,
-      showStrokeColor = false,
-      showFillColor = false;
-      this.availableAnnotationStylePickers.forEach(function(picker) {
-        if (picker === 'StrokeType') {
-          showStrokeStyle = true;
-        }
-        if (picker === 'FillColor') {
-          showFillColor = true;
-        }
-        if (picker === 'StrokeColor') {
-          showStrokeColor = true;
-        }
-      });
-      this.setBackground = {
-        'solid':function(el){
-          _this.setBackgroundImage(el, 'border_type_1.png');
-        },
-        'dashed':function(el){
-          _this.setBackgroundImage(el, 'border_type_2.png');
-        },
-        'dotdashed':function(el){
-          _this.setBackgroundImage(el, 'border_type_3.png');
-        },
-        'thick':function(el){
-          _this.setBackgroundImage(el, 'border_type_4.png');
-        },
-        'thickest':function(el){
-          _this.setBackgroundImage(el, 'border_type_5.png');
-        },
-      };
-      var annotationProperties = this.canvasControls.annotations;
-
-      if (annotationProperties.annotationLayer && this.annoEndpointAvailable) {
-        this.annotationElement = jQuery(this.annotationTemplate({
-          tools : _this.availableAnnotationTools,
-          showEdit : annotationProperties.annotationCreation,
-          showStrokeStyle: showStrokeStyle,
-          showStrokeColor: showStrokeColor,
-          showFillColor: showFillColor,
-          showRefresh : annotationProperties.annotationRefresh
-        })).appendTo(this.container.find('.mirador-osd-annotation-controls'));
-        this.annotationElement.hide();
-        this.setQtips(this.container.find('.mirador-osd-annotation-controls'));
-        this.setBorderFillColorPickers();
-      }
-
-      if(showStrokeStyle){
-        this.addStrokeStylePicker();
-      }
-
-      if (this.canvasControls.imageManipulation.manipulationLayer) {
-        this.manipulationElement = jQuery(this.manipulationTemplate({
-          filtersSupported: Modernizr.cssfilters,
-          showRotate: this.canvasControls.imageManipulation.controls.rotate,
-          showBrightness: this.canvasControls.imageManipulation.controls.brightness,
-          showContrast: this.canvasControls.imageManipulation.controls.contrast,
-          showSaturate: this.canvasControls.imageManipulation.controls.saturate,
-          showGrayscale: this.canvasControls.imageManipulation.controls.grayscale,
-          showInvert: this.canvasControls.imageManipulation.controls.invert,
-          showMirror: this.canvasControls.imageManipulation.controls.mirror
-        })).appendTo(this.container.find('.mirador-manipulation-controls'));
-        this.setQtips(this.container.find('.mirador-manipulation-controls'));
-        this.manipulationElement.hide();
-      }
-
-      this.bindEvents();
-    },
-
-    setQtips: function(element) {
-      var _this = this;
-      element.find('a').each(function() {
-        jQuery(this).qtip({
-          content: {
-            text: jQuery(this).attr('title'),
-          },
-          position: {
-            my: 'bottom center',
-            at: 'top center',
-            viewport: true,
-            container: _this.qtipElement
-          },
-          style: {
-            classes: 'qtip-dark qtip-shadow qtip-rounded'
-          }
-        });
-      });
-    },
-
-    addColorPicker:function(selector,options){
-      this.container.find(selector).spectrum(options);
-    },
-
-    getImagePath:function(imageName){
-      return this.state.getStateProperty('buildPath') + this.state.getStateProperty('imagesPath') + imageName;
-    },
-
-    setBackgroundImage:function(el,imageName){
-      el.css('background-image','url('+this.getImagePath(imageName)+')');
-    },
-
-    removeBackgroundImage:function(el){
-      el.css('background-image','');
-    },
-
-    addStrokeStylePicker:function(){
-      this.setBackground.solid(this.container.find('.mirador-line-type .solid'));
-      this.setBackground.thick(this.container.find('.mirador-line-type .thick'));
-      this.setBackground.thickest(this.container.find('.mirador-line-type .thickest'));
-      this.setBackground.dashed(this.container.find('.mirador-line-type .dashed'));
-      this.setBackground.dotdashed(this.container.find('.mirador-line-type .dotdashed'));
-    },
-
-    setBorderFillColorPickers: function() {
-      var _this = this;
-      var defaultBorderColor = _this.state.getStateProperty('drawingToolsSettings').strokeColor,
-      defaultFillColor = _this.state.getStateProperty('drawingToolsSettings').fillColor,
-      defaultAlpha = _this.state.getStateProperty('drawingToolsSettings').fillColorAlpha,
-      colorObj = tinycolor(defaultFillColor);
-      colorObj.setAlpha(defaultAlpha);
-
-      this.addColorPicker('.borderColorPicker',{
-        showInput: true,
-        showInitial: false,
-        showPalette: true,
-        showButtons: false,
-        showSelectionPalette: true,
-        hideAfterPaletteSelect: true,
-        appendTo: 'parent',
-        containerClassName: 'borderColorPickerPop'+_this.windowId,
-        preferredFormat: "rgb",
-        hide: function(color) {
-          _this.eventEmitter.publish('changeBorderColor.' + _this.windowId, color.toHexString());
-          jQuery(this).spectrum("set", color.toHexString());
-        },
-        move: function(color) {
-          _this.eventEmitter.publish('changeBorderColor.' + _this.windowId, color.toHexString());
-        },
-        show: function(color) {
-          _this.setColorPickerInCanvas('.borderColorPicker');
-        },
-        maxSelectionSize: 4,
-        color: defaultBorderColor,
-        palette: [
-          [defaultBorderColor, "black", "red", "green"],
-          ["white", "blue", "magenta", "yellow"]
-        ]
-      });
-
-      _this.container.find(".borderColorPicker").next(".sp-replacer").prepend("<i class='material-icons'>border_color</i>");
-      // _this.container.find(".borderColorPicker").next(".sp-replacer").append('<i class="fa fa-caret-down dropdown-icon"></i>');
-
-      _this.addColorPicker('.fillColorPicker',{
-        showInput: true,
-        showInitial: false,
-        showAlpha: true,
-        showPalette: true,
-        showButtons: false,
-        showSelectionPalette: true,
-        appendTo: 'parent',
-        clickoutFiresChange: true,
-        containerClassName: 'fillColorPickerPop'+_this.windowId,
-        preferredFormat: "rgb",
-        hide: function(color) {
-          _this.eventEmitter.publish('changeFillColor.' + _this.windowId, [color.toHexString(), color.getAlpha()]);
-          jQuery(this).spectrum("set", color);
-        },
-        move: function(color) {
-          _this.eventEmitter.publish('changeFillColor.' + _this.windowId, [color.toHexString(), color.getAlpha()]);
-        },
-        show: function(color) {
-          _this.setColorPickerInCanvas('.fillColorPicker');
-        },
-        maxSelectionSize: 4,
-        color: colorObj,
-        palette: [
-          [colorObj, "black", "red", "green"],
-          ["white", "blue", "magenta", "yellow"]
-        ]
-      });
-
-      _this.container.find(".fillColorPicker").next(".sp-replacer").prepend("<i class='material-icons'>format_color_fill</i>");
-      // _this.container.find(".fillColorPicker").next(".sp-replacer").append('<i class="fa fa-caret-down dropdown-icon"></i>');
-    },
-
-    setColorPickerInCanvas: function(selector) {
-      // check for the selector being out of canvas
-      var pickerContainer=this.container.find(selector).siblings('.sp-container').first(),
-      pickerOffset=pickerContainer.offset(),
-      windowWidth = this.state.windowsElements[this.windowId].width();
-      if (pickerContainer.width() + pickerOffset.left > windowWidth) {
-        pickerContainer.css('left', windowWidth - (pickerContainer.outerWidth()));
-      }
-    },
-
-    annotationShow: function() {
-      this.annotationElement.fadeIn("150");
-    },
-
-    annotationHide: function() {
-      this.annotationElement.fadeOut("150");
-    },
-
-    manipulationShow: function() {
-      this.manipulationElement.fadeIn("150");
-    },
-
-    manipulationHide: function() {
-      this.manipulationElement.fadeOut("150");
-    },
-
-    bindEvents: function() {
-      var _this = this;
-      // for some reason using :not selector isn't working for mouseenter/mouseleave,
-      // so check for hud-disabled at the beginning instead
-      this.container.find('.mirador-line-type').on('mouseenter', function() {
-        if (jQuery(this).hasClass('hud-disabled')) {
-          return false;
-        }
-        _this.container.find('.type-list').stop().slideFadeToggle(300);
-      });
-      this.container.find('.mirador-line-type').on('mouseleave', function() {
-        if (jQuery(this).hasClass('hud-disabled')) {
-          return false;
-        }
-        _this.container.find('.type-list').stop().slideFadeToggle(300);
-      });
-      this.container.find('.mirador-line-type').find('ul li').on('click', function() {
-        if (jQuery(this).hasClass('hud-disabled')) {
-          return false;
-        }
-        var className = jQuery(this).find('i').attr('class').replace(/fa/, '').replace(/ /, '');
-        _this.removeBackgroundImage(_this.container.find('.mirador-line-type .border-type-image'));
-        _this.setBackground[className](_this.container.find('.mirador-line-type .border-type-image'));
-        _this.eventEmitter.publish('toggleBorderType.' + _this.windowId, className);
-      });
-    },
-
-    annotationTemplate: $.Handlebars.compile([
-                                   '{{#if showEdit}}',
-                                   '<a class="mirador-osd-pointer-mode hud-control selected" title="{{t "pointerTooltip"}}">',
-                                   '<i class="fa fa-mouse-pointer"></i>',
-                                   '</a>',
-                                   '{{#each tools}}',
-                                   '<a class="mirador-osd-{{this.logoClass}}-mode hud-control mirador-osd-edit-mode" title="{{t this.tooltip}}">',
-                                   '<i class="material-icons">{{this.logoClass}}</i>',
-                                   '</a>',
-                                   '{{/each}}',
-                                   '{{#if showStrokeStyle}}',
-                                   '<a class="hud-control hud-dropdown hud-disabled mirador-line-type" aria-label="{{t "borderTypeTooltip"}}" title="{{t "borderTypeTooltip"}}">',
-                                   '<i class="material-icons mirador-border-icon">create</i>',
-                                   '<i class="border-type-image solid"></i>',
-                                   '<i class="fa fa-caret-down dropdown-icon"></i>',
-                                   '<ul class="dropdown type-list">',
-                                   '<li><i class="fa solid"></i> {{t "solid"}}</li>',
-                                   '<li><i class="fa thick"></i> {{t "thick"}}</li>',
-                                   '<li><i class="fa thickest"></i> {{t "thickest"}}</li>',
-                                   '<li><i class="fa dashed"></i> {{t "dashed"}}</li>',
-                                   '<li><i class="fa dotdashed"></i> {{t "dotDashed"}}</li>',
-                                   '</ul>',
-                                   '</a>',
-                                   '{{/if}}',
-                                   '{{#if showStrokeColor}}',
-                                   '<a class="hud-control hud-dropdown hud-disabled mirador-osd-color-picker" title="{{t "borderColorTooltip"}}">',
-                                   '<input type="text" class="borderColorPicker"/>',
-                                   '</a>',
-                                   '{{/if}}',
-                                   '{{#if showFillColor}}',
-                                   '<a class="hud-control hud-dropdown hud-disabled mirador-osd-color-picker" title="{{t "fillColorTooltip"}}">',
-                                   '<input type="text" class="fillColorPicker"/>',
-                                   '</a>',
-                                   '{{/if}}',
-                                   '{{#if showRefresh}}',
-                                     '<a class="hud-control mirador-osd-refresh-mode">',
-                                     '<i class="fa fa-lg fa-refresh"></i>',
-                                     '</a>',
-                                   '{{/if}}',
-                                   '{{/if}}'
-    ].join('')),
-
-    manipulationTemplate: $.Handlebars.compile([
-                                   '{{#if showRotate}}',
-                                   '<a class="hud-control mirador-osd-rotate-right" title="{{t "rotateRightTooltip"}}">',
-                                   '<i class="fa fa-lg fa-rotate-right"></i>',
-                                   '</a>',
-                                   '<a class="hud-control mirador-osd-rotate-left" title="{{t "rotateLeftTooltip"}}">',
-                                   '<i class="fa fa-lg fa-rotate-left"></i>',
-                                   '</a>',
-                                   '{{/if}}',
-
-                                '{{#if filtersSupported}}',
-                                   '{{#if showBrightness}}',
-                                   '<a class="hud-control mirador-osd-brightness" title="{{t "brightnessTooltip"}}">',
-                                   '<i class="material-icons">wb_sunny</i>',
-                                   '<i class="fa fa-caret-down"></i>',
-                                   '<div class="mirador-osd-brightness-slider mirador-slider"/>',
-                                   '</a>',
-                                   '{{/if}}',
-                                   '{{#if showContrast}}',
-                                   '<a class="hud-control mirador-osd-contrast" title="{{t "contrastTooltip"}}">',
-                                   '<i class="material-icons">brightness_6</i>',
-                                   '<i class="fa fa-caret-down"></i>',
-                                   '<div class="mirador-osd-contrast-slider mirador-slider"/>',
-                                   '</a>',
-                                   '{{/if}}',
-                                   '{{#if showSaturate}}',
-                                   '<a class="hud-control mirador-osd-saturation" title="{{t "saturationTooltip"}}">',
-                                   '<i class="material-icons">gradient</i>',
-                                   '<i class="fa fa-caret-down"></i>',
-                                   '<div class="mirador-osd-saturation-slider mirador-slider"/>',
-                                   '</a>',
-                                   '{{/if}}',
-                                   '{{#if showGrayscale}}',
-                                   '<a class="hud-control mirador-osd-grayscale" title="{{t "grayscaleTooltip"}}">',
-                                   '<i class="material-icons">filter_b_and_w</i>',
-                                   '</a>',
-                                   '{{/if}}',
-                                   '{{#if showInvert}}',
-                                   '<a class="hud-control mirador-osd-invert" title="{{t "invertTooltip"}}">',
-                                   '<i class="material-icons">invert_colors</i>',
-                                   '</a>',
-                                   '{{/if}}',
-                                   '{{#if showMirror}}',
-                                   '<a class="hud-control mirador-osd-mirror" title="{{t "mirrorTooltip"}}">',
-                                   '<i class="material-icons">swap_horiz</i>',
-                                   '</a>',
-                                   '{{/if}}',
-                                   '<a class="hud-control mirador-osd-reset" title="{{t "resetTooltip"}}">',
-                                   '<i class="fa fa-lg fa-refresh"></i>',
-                                   '</a>',
-      '{{/if}}',
-    ].join('')),
-
-    // for accessibility, make sure to add aria-labels just like above
-    editorTemplate: $.Handlebars.compile([
-                                 '<div class="mirador-osd-context-controls hud-container">',
-                                   '<a class="mirador-osd-back hud-control" role="button">',
-                                   '<i class="fa fa-lg fa-arrow-left"></i>',
-                                   '</a>',
-                                   '<a class="mirador-osd-rect-tool hud-control" role ="buton">',
-                                   '<i class="fa fa-lg fa-pencil-square"></i>',
-                                   '</a>',
-                                   '<a class="mirador-osd-rect-tool hud-control" role="button">',
-                                   '<i class="fa fa-lg fa-ellipsis-h"></i>',
-                                   '</a>',
-                                   '<a class="mirador-osd-rect-tool hud-control" role="button">',
-                                   '<i class="fa fa-lg fa-gear"></i>',
-                                   '</a>',
-                                 '</div>'
-    ].join(''))
-  };
-}(Mirador));
diff --git a/js/src/widgets/hud.js b/js/src/widgets/hud.js
deleted file mode 100644
index 0b3b6f100d0cbf530ac6a561eec606cdd077a388..0000000000000000000000000000000000000000
--- a/js/src/widgets/hud.js
+++ /dev/null
@@ -1,270 +0,0 @@
-(function($) {
-
-  $.Hud = function(options) {
-
-    jQuery.extend(this, {
-      element:   null,
-      windowId:  null,
-      annoState: null,
-      annoEndpointAvailable: false,
-      eventEmitter: null
-    }, options);
-
-    this.init();
-  };
-
-  $.Hud.prototype = {
-
-    init: function() {
-      this.createStateMachines();
-
-      var showAnno = typeof this.showAnno !== 'undefined' ? this.showAnno : this.canvasControls.annotations.annotationLayer,
-      showImageControls = typeof this.showImageControls !== 'undefined' ? this.showImageControls : this.canvasControls.imageManipulation.manipulationLayer;
-      this.element = jQuery(this.template({
-        showNextPrev : this.showNextPrev,
-        showBottomPanel : typeof this.bottomPanelAvailable === 'undefined' ? true : this.bottomPanelAvailable,
-        showAnno : showAnno,
-        showImageControls : showImageControls
-      })).appendTo(this.appendTo);
-
-      if (showAnno || showImageControls) {
-        this.contextControls = new $.ContextControls({
-          element: null,
-          container: this.element.find('.mirador-osd-context-controls'),
-          qtipElement: this.qtipElement,
-          mode: 'displayAnnotations',
-          windowId: this.windowId,
-          canvasControls: this.canvasControls,
-          annoEndpointAvailable: this.annoEndpointAvailable,
-          availableAnnotationTools: this.availableAnnotationTools,
-          availableAnnotationStylePickers: this.availableAnnotationStylePickers,
-          state: this.state,
-          eventEmitter: this.eventEmitter
-        });
-      }
-
-      this.listenForActions();
-      this.bindEvents();
-    },
-
-    listenForActions: function() {
-      var _this = this;
-      this.eventEmitter.subscribe('DISABLE_TOOLTIPS_BY_CLASS.' + this.windowId, function(event, className) {
-        _this.element.find(className).qtip('disable');
-      });
-
-      this.eventEmitter.subscribe('ENABLE_TOOLTIPS_BY_CLASS.' + this.windowId, function(event, className) {
-        _this.element.find(className).qtip('enable');
-      });
-
-      this.eventEmitter.subscribe('SET_STATE_MACHINE_POINTER.' + this.windowId, function(event) {
-        if (_this.annoState.current === 'none') {
-          _this.annoState.startup();
-        } else if (_this.annoState.current === 'off') {
-          _this.annoState.displayOn();
-        } else {
-          _this.annoState.choosePointer();
-        }
-      });
-    },
-
-    bindEvents: function() {
-      var _this = this;
-    },
-
-    createStateMachines: function() {
-      var _this = this,
-      duration = "200";
-
-      //add more to these as AnnoState becomes more complex
-      //initial state is 'none'
-      this.annoState = StateMachine.create({
-        events: [
-          { name: 'startup', from: 'none', to: 'off' },
-          { name: 'displayOn', from: 'off', to: 'pointer'},
-          { name: 'displayOff', from: ['pointer', 'shape'], to: 'off'},
-          { name: 'choosePointer', from: ['pointer', 'shape'], to: 'pointer'},
-          { name: 'chooseShape', from: 'pointer', to: 'shape'},
-          { name: 'changeShape', from: 'shape', to: 'shape'},
-          { name: 'refresh', from: 'pointer', to: 'pointer'},
-          { name: 'refresh', from: 'shape', to: 'shape'}
-        ],
-        callbacks: {
-          onstartup: function(event, from, to) {
-            _this.eventEmitter.publish(('windowUpdated'), {
-              id: _this.windowId,
-              annotationState: to
-            });
-          },
-          ondisplayOn: function(event, from, to) {
-            _this.eventEmitter.publish('HUD_ADD_CLASS.'+_this.windowId, ['.mirador-osd-annotations-layer', 'selected']);
-            if (_this.annoEndpointAvailable) {
-                  _this.contextControls.annotationShow();
-            }
-            _this.eventEmitter.publish('modeChange.' + _this.windowId, 'displayAnnotations');
-            _this.eventEmitter.publish('HUD_ADD_CLASS.'+_this.windowId, ['.mirador-osd-pointer-mode', 'selected']);
-            _this.eventEmitter.publish('HUD_ADD_CLASS.'+_this.windowId, ['.hud-dropdown', 'hud-disabled']);
-            _this.eventEmitter.publish('DISABLE_TOOLTIPS_BY_CLASS.'+_this.windowId, '.hud-dropdown');
-            _this.eventEmitter.publish('DEFAULT_CURSOR.' + _this.windowId);
-            _this.eventEmitter.publish(('windowUpdated'), {
-              id: _this.windowId,
-              annotationState: to
-            });
-          },
-          ondisplayOff: function(event, from, to) {
-            if (_this.annoEndpointAvailable) {
-              _this.eventEmitter.publish('HUD_REMOVE_CLASS.'+_this.windowId, ['.mirador-osd-edit-mode', 'selected']);
-              _this.eventEmitter.publish('HUD_REMOVE_CLASS.'+_this.windowId, ['.mirador-osd-pointer-mode', 'selected']);
-              _this.eventEmitter.publish('CANCEL_ACTIVE_ANNOTATIONS.'+_this.windowId);
-              _this.contextControls.annotationHide();
-            }
-            _this.eventEmitter.publish('HUD_REMOVE_CLASS.'+_this.windowId, ['.mirador-osd-annotations-layer', 'selected']);
-            _this.eventEmitter.publish('modeChange.' + _this.windowId, 'default');
-            _this.eventEmitter.publish(('windowUpdated'), {
-              id: _this.windowId,
-              annotationState: to
-            });
-          },
-          onchoosePointer: function(event, from, to) {
-            _this.eventEmitter.publish('HUD_REMOVE_CLASS.'+_this.windowId, ['.mirador-osd-edit-mode', 'selected']);
-            _this.eventEmitter.publish('HUD_ADD_CLASS.'+_this.windowId, ['.mirador-osd-pointer-mode', 'selected']);
-            _this.eventEmitter.publish('HUD_ADD_CLASS.'+_this.windowId, ['.hud-dropdown', 'hud-disabled']);
-            _this.eventEmitter.publish('DISABLE_TOOLTIPS_BY_CLASS.'+_this.windowId, '.hud-dropdown');
-            _this.eventEmitter.publish('modeChange.' + _this.windowId, 'displayAnnotations');
-            _this.eventEmitter.publish('DEFAULT_CURSOR.' + _this.windowId);
-            _this.eventEmitter.publish(('windowUpdated'), {
-              id: _this.windowId,
-              annotationState: to
-            });
-          },
-          onchooseShape: function(event, from, to, shape) {
-            _this.eventEmitter.publish('HUD_REMOVE_CLASS.'+_this.windowId, ['.mirador-osd-pointer-mode', 'selected']);
-            _this.eventEmitter.publish('HUD_REMOVE_CLASS.'+_this.windowId, ['.mirador-osd-edit-mode', 'selected']);
-            _this.eventEmitter.publish('HUD_REMOVE_CLASS.'+_this.windowId, ['.hud-dropdown', 'hud-disabled']);
-            _this.eventEmitter.publish('ENABLE_TOOLTIPS_BY_CLASS.'+_this.windowId, '.hud-dropdown');
-            _this.eventEmitter.publish('HUD_ADD_CLASS.'+_this.windowId, ['.mirador-osd-'+shape+'-mode', 'selected']);
-            _this.eventEmitter.publish('modeChange.' + _this.windowId, 'creatingAnnotation');
-            _this.eventEmitter.publish('CROSSHAIR_CURSOR.' + _this.windowId);
-            _this.eventEmitter.publish('toggleDrawingTool.'+_this.windowId, shape);
-
-            _this.eventEmitter.publish(('windowUpdated'), {
-              id: _this.windowId,
-              annotationState: to
-            });
-          },
-          onchangeShape: function(event, from, to, shape) {
-            _this.eventEmitter.publish('HUD_REMOVE_CLASS.'+_this.windowId, ['.mirador-osd-pointer-mode', 'selected']);
-            _this.eventEmitter.publish('HUD_REMOVE_CLASS.'+_this.windowId, ['.mirador-osd-edit-mode', 'selected']);
-            _this.eventEmitter.publish('HUD_REMOVE_CLASS.'+_this.windowId, ['.hud-dropdown', 'hud-disabled']);
-            _this.eventEmitter.publish('ENABLE_TOOLTIPS_BY_CLASS.'+_this.windowId, '.hud-dropdown');
-            _this.eventEmitter.publish('HUD_ADD_CLASS.'+_this.windowId, ['.mirador-osd-'+shape+'-mode', 'selected']);
-            _this.eventEmitter.publish('CROSSHAIR_CURSOR.' + _this.windowId);
-            //don't need to trigger a mode change, just change tool
-            _this.eventEmitter.publish('toggleDrawingTool.'+_this.windowId, shape);
-
-            _this.eventEmitter.publish(('windowUpdated'), {
-              id: _this.windowId,
-              annotationState: to
-            });
-          },
-          onrefresh: function(event, from, to) {
-            //TODO
-          }
-        }
-      });
-
-      this.manipulationState = StateMachine.create({
-        events: [
-          { name: 'startup',  from: 'none',  to: 'manipulationOff' },
-          { name: 'displayOn',  from: 'manipulationOff',  to: 'manipulationOn' },
-          { name: 'displayOff', from: 'manipulationOn', to: 'manipulationOff' }
-        ],
-        callbacks: {
-          onstartup: function(event, from, to) {
-            _this.eventEmitter.publish(('windowUpdated'), {
-              id: _this.windowId,
-              manipulationState: to
-            });
-          },
-          ondisplayOn: function(event, from, to) {
-            _this.eventEmitter.publish('HUD_ADD_CLASS.'+_this.windowId, ['.mirador-manipulation-toggle', 'selected']);
-            _this.contextControls.manipulationShow();
-            _this.eventEmitter.publish(('windowUpdated'), {
-              id: _this.windowId,
-              manipulationState: to
-            });
-          },
-          ondisplayOff: function(event, from, to) {
-            _this.contextControls.manipulationHide();
-            _this.eventEmitter.publish('HUD_REMOVE_CLASS.'+_this.windowId, ['.mirador-manipulation-toggle', 'selected']);
-            _this.eventEmitter.publish(('windowUpdated'), {
-              id: _this.windowId,
-              manipulationState: to
-            });
-          }
-        }
-      });
-    },
-
-    template: $.Handlebars.compile([
-                                 '<div class="mirador-hud">',
-                                 '{{#if showNextPrev}}',
-                                 '<a class="mirador-osd-previous hud-control ">',
-                                 '<i class="fa fa-3x fa-chevron-left "></i>',
-                                 '</a>',
-                                 '{{/if}}',
-                                 '<div class="mirador-osd-context-controls hud-container">',
-                                 '{{#if showAnno}}',
-                                  '<div class="mirador-osd-annotation-controls">',
-                                  '<a class="mirador-osd-annotations-layer hud-control" role="button" title="{{t "annotationTooltip"}}" aria-label="{{t "annotationTooltip"}}">',
-                                  '<i class="fa fa-lg fa-comments"></i>',
-                                  '</a>',
-                                  '</div>',
-                                 '{{/if}}',
-                                 '{{#if showImageControls}}',
-                                  '<div class="mirador-manipulation-controls">',
-                                  '<a class="mirador-manipulation-toggle hud-control" role="button" title="{{t "imageManipulationTooltip"}}" aria-label="{{t "imageManipulationTooltip"}}">',
-                                  '<i class="material-icons">tune</i>',
-                                  '</a>',
-                                  '</div>',
-                                 '{{/if}}',
-                                 '</div>',
-                                 '{{#if showNextPrev}}',
-                                 '<a class="mirador-osd-next hud-control ">',
-                                 '<i class="fa fa-3x fa-chevron-right"></i>',
-                                 '</a>',
-                                 '{{/if}}',
-                                 '{{#if showBottomPanel}}',
-                                 '<a class="mirador-osd-toggle-bottom-panel hud-control" role="button" aria-label="Toggle Bottom Panel">',
-                                 '<i class="fa fa-2x fa-ellipsis-h"></i>',
-                                 '</a>',
-                                 '{{/if}}',
-                                 '<div class="mirador-pan-zoom-controls hud-control">',
-                                 '<a class="mirador-osd-up hud-control" role="button" aria-label="Move image up">',
-                                 '<i class="fa fa-chevron-circle-up"></i>',
-                                 '</a>',
-                                 '<a class="mirador-osd-right hud-control" role="button" aria-label="Move image right">',
-                                 '<i class="fa fa-chevron-circle-right"></i>',
-                                 '</a>',
-                                 '<a class="mirador-osd-down hud-control" role="button" aria-label="Move image down">',
-                                 '<i class="fa fa-chevron-circle-down"></i>',
-                                 '</a>',
-                                 '<a class="mirador-osd-left hud-control" role="button" aria-label="Move image left">',
-                                 '<i class="fa fa-chevron-circle-left"></i>',
-                                 '</a>',
-                                 '<a class="mirador-osd-zoom-in hud-control" role="button" aria-label="Zoom in">',
-                                 '<i class="fa fa-plus-circle"></i>',
-                                 '</a>',
-                                 '<a class="mirador-osd-zoom-out hud-control" role="button" aria-label="Zoom out">',
-                                 '<i class="fa fa-minus-circle"></i>',
-                                 '</a>',
-                                 '<a class="mirador-osd-go-home hud-control" role="button" aria-label="Reset image bounds">',
-                                 '<i class="fa fa-home"></i>',
-                                 '</a>',
-                                 '</div>',
-                                 '</div>'
-    ].join(''))
-
-  };
-
-}(Mirador));
diff --git a/js/src/widgets/imageView.js b/js/src/widgets/imageView.js
deleted file mode 100755
index 9376c5cfd57832c20a009e9f49e03b44c36e3aa4..0000000000000000000000000000000000000000
--- a/js/src/widgets/imageView.js
+++ /dev/null
@@ -1,841 +0,0 @@
-(function($) {
-
-  $.ImageView = function(options) {
-
-    jQuery.extend(this, {
-      currentImg:       null,
-      windowId:         null,
-      currentImgIndex:  0,
-      canvasID:         null,
-      canvases:         null,
-      imagesList:       [],
-      imagesListRtl:    [],
-      element:          null,
-      elemOsd:          null,
-      manifest:         null,
-      osd:              null,
-      osdOptions: {
-        osdBounds:        null,
-        zoomLevel:        null
-      },
-      osdCls: 'mirador-osd',
-      elemAnno:         null,
-      annoCls:          'annotation-canvas',
-      annotationsLayer: null,
-      forceShowControls: false,
-      eventEmitter:     null,
-      vDirectionStatus: ''
-    }, options);
-
-    this.init();
-  };
-
-  $.ImageView.prototype = {
-
-    init: function() {
-      var _this = this;
-      this.horizontallyFlipped = false;
-      this.originalDragHandler = null;
-      if(this.vDirectionStatus == 'rtl'){
-          this.imagesList =  this.imagesListRtl.concat();
-       }
-      // check (for thumbnail view) if the canvasID is set.
-      // If not, make it page/item 1.
-      if (this.canvasID !== null) {
-        this.currentImgIndex = $.getImageIndexById(this.imagesList, this.canvasID);
-      }
-
-      if (!this.osdOptions) {
-        this.osdOptions = {
-          osdBounds:        null,
-          zoomLevel:        null
-        };
-      }
-      this.currentImg = this.imagesList[this.currentImgIndex];
-      this.element = jQuery(this.template()).appendTo(this.appendTo);
-      this.elemAnno = jQuery('<div/>')
-        .addClass(this.annoCls)
-        .appendTo(this.element);
-
-
-      _this.eventEmitter.publish('UPDATE_FOCUS_IMAGES.' + this.windowId, {array: [this.canvasID]});
-
-      var allTools = $.getTools(this.state.getStateProperty('drawingToolsSettings'));
-      this.availableAnnotationTools = [];
-      for ( var i = 0; i < this.state.getStateProperty('availableAnnotationDrawingTools').length; i++) {
-        for ( var j = 0; j < allTools.length; j++) {
-          if (this.state.getStateProperty('availableAnnotationDrawingTools')[i] == allTools[j].name) {
-            var values = {};
-            values.logoClass = allTools[j].logoClass;
-            values.tooltip = allTools[j].tooltip;
-            this.availableAnnotationTools.push(values);
-          }
-        }
-      }
-      // The hud controls are consistent
-      // throughout any updates to the osd canvas.
-      this.hud = new $.Hud({
-        appendTo: this.element,
-        qtipElement: this.qtipElement,
-        bottomPanelAvailable: this.bottomPanelAvailable,
-        windowId: this.windowId,
-        canvasControls: this.canvasControls,
-        annoEndpointAvailable: this.annoEndpointAvailable,
-        showNextPrev : this.imagesList.length !== 1,
-        availableAnnotationStylePickers: this.state.getStateProperty('availableAnnotationStylePickers'),
-        availableAnnotationTools: this.availableAnnotationTools,
-        state: this.state,
-        eventEmitter: this.eventEmitter
-      });
-
-      this.initialiseImageCanvas();
-      this.bindEvents();
-      this.listenForActions();
-
-      if (typeof this.bottomPanelAvailable !== 'undefined' && !this.bottomPanelAvailable) {
-        _this.eventEmitter.publish('SET_BOTTOM_PANEL_VISIBILITY.' + this.windowId, false);
-      } else {
-        _this.eventEmitter.publish('SET_BOTTOM_PANEL_VISIBILITY.' + this.windowId, null);
-      }
-    },
-
-    template: $.Handlebars.compile([
-       '<div class="image-view">',
-       '</div>'
-
-    ].join('')),
-
-    listenForActions: function() {
-      var _this = this;
-
-      _this.eventEmitter.subscribe('bottomPanelSet.' + _this.windowId, function(event, visible) {
-        var dodgers = _this.element.find('.mirador-osd-toggle-bottom-panel, .mirador-pan-zoom-controls');
-        var arrows = _this.element.find('.mirador-osd-next, .mirador-osd-previous');
-        if (visible === true) {
-          dodgers.addClass('bottom-panel-open');
-          arrows.addClass('bottom-panel-open');
-        } else {
-          dodgers.removeClass('bottom-panel-open');
-          arrows.removeClass('bottom-panel-open');
-        }
-      });
-
-      _this.eventEmitter.subscribe('fitBounds.' + _this.windowId, function(event, bounds) {
-        var rect = new OpenSeadragon.Rect(bounds.x, bounds.y, bounds.width, bounds.height);
-        _this.osd.viewport.fitBoundsWithConstraints(rect, false);
-      });
-
-      _this.eventEmitter.subscribe('currentCanvasIDUpdated.' + _this.windowId, _this.currentCanvasIDUpdated.bind(_this));
-      _this.eventEmitter.subscribe('image-needed' + _this.windowId, _this.loadImage.bind(_this));
-      _this.eventEmitter.subscribe('image-show' + _this.windowId, _this.showImage.bind(_this));
-      _this.eventEmitter.subscribe('image-hide' + _this.windowId, _this.hideImage.bind(_this));
-      _this.eventEmitter.subscribe('image-removed' + _this.windowId, _this.removeImage.bind(_this));
-      _this.eventEmitter.subscribe('image-opacity-updated' + _this.windowId, _this.updateImageOpacity.bind(_this));
-      // These will come soon.
-      // _this.eventEmitter.subscribe('image-layering-index-updated');
-      // _this.eventEmitter.subscribe('image-position-updated');
-      // _this.eventEmitter.subscribe('image-rotation-updated');
-      // _this.eventEmitter.subscribe('image-scale-updated');
-      // _this.eventEmitter.subscribe('canvas-position-updated');
-
-      //Related to Annotations HUD
-      _this.eventEmitter.subscribe('HUD_REMOVE_CLASS.' + _this.windowId, function(event, elementSelector, className) {
-        _this.element.find(elementSelector).removeClass(className);
-      });
-
-      _this.eventEmitter.subscribe('HUD_ADD_CLASS.' + _this.windowId, function(event, elementSelector, className) {
-        _this.element.find(elementSelector).addClass(className);
-      });
-
-      _this.eventEmitter.subscribe('HUD_FADE_IN.' + _this.windowId, function(event, elementSelector, duration) {
-        _this.element.find(elementSelector).fadeIn(duration);
-      });
-
-      _this.eventEmitter.subscribe('HUD_FADE_OUT.' + _this.windowId, function(event, elementSelector, duration, complete) {
-        _this.element.find(elementSelector).fadeOut(duration, complete);
-      });
-
-      _this.eventEmitter.subscribe('DEFAULT_CURSOR.' + _this.windowId, function(event) {
-        jQuery(_this.osd.canvas).css("cursor", "default");
-      });
-      _this.eventEmitter.subscribe('CROSSHAIR_CURSOR.' + _this.windowId, function(event) {
-        jQuery(_this.osd.canvas).css("cursor", "crosshair");
-      });
-      _this.eventEmitter.subscribe('POINTER_CURSOR.' + _this.windowId, function(event) {
-        jQuery(_this.osd.canvas).css("cursor", "pointer");
-      });
-      //Related to Annotations HUD
-    },
-
-    bindEvents: function() {
-      var _this = this;
-
-      this.element.find('.mirador-osd-next').on('click', function() {
-        _this.next();
-      });
-
-      this.element.find('.mirador-osd-previous').on('click', function() {
-        _this.previous();
-      });
-
-      this.element.find('.mirador-osd-annotations-layer').on('click', function() {
-        if (_this.hud.annoState.current === 'none') {
-          _this.hud.annoState.startup(this);
-        }
-        if (_this.hud.annoState.current === 'off') {
-          _this.hud.annoState.displayOn(this);
-          _this.annotationState = 'on';
-        } else {
-          //make sure to force the controls back to auto fade
-          _this.forceShowControls = false;
-          _this.hud.annoState.displayOff(this);
-          _this.annotationState = 'off';
-        }
-      });
-
-      this.element.find('.mirador-manipulation-toggle').on('click', function() {
-        if (_this.hud.manipulationState.current === 'none') {
-          _this.hud.manipulationState.startup(this);
-        }
-        if (_this.hud.manipulationState.current === 'manipulationOff') {
-          _this.hud.manipulationState.displayOn(this);
-        } else {
-          _this.hud.manipulationState.displayOff(this);
-        }
-      });
-
-      this.element.find('.mirador-osd-go-home').on('click', function() {
-        _this.osd.viewport.goHome();
-      });
-
-      this.element.find('.mirador-osd-up').on('click', function() {
-        var panBy = _this.getPanByValue();
-        _this.osd.viewport.panBy(new OpenSeadragon.Point(0, -panBy.y));
-        _this.osd.viewport.applyConstraints();
-      });
-      this.element.find('.mirador-osd-right').on('click', function() {
-        var panBy = _this.getPanByValue();
-        if (_this.horizontallyFlipped) {
-          _this.osd.viewport.panBy(new OpenSeadragon.Point(-panBy.x, 0));
-        } else {
-          _this.osd.viewport.panBy(new OpenSeadragon.Point(panBy.x, 0));
-        }
-        _this.osd.viewport.applyConstraints();
-      });
-      this.element.find('.mirador-osd-down').on('click', function() {
-        var panBy = _this.getPanByValue();
-        _this.osd.viewport.panBy(new OpenSeadragon.Point(0, panBy.y));
-        _this.osd.viewport.applyConstraints();
-      });
-      this.element.find('.mirador-osd-left').on('click', function() {
-        var panBy = _this.getPanByValue();
-        if (_this.horizontallyFlipped) {
-          _this.osd.viewport.panBy(new OpenSeadragon.Point(panBy.x, 0));
-        } else {
-          _this.osd.viewport.panBy(new OpenSeadragon.Point(-panBy.x, 0));
-        }
-        _this.osd.viewport.applyConstraints();
-      });
-
-      this.element.find('.mirador-osd-zoom-in').on('click', function() {
-        var osd = _this.osd;
-        if ( osd.viewport ) {
-          osd.viewport.zoomBy(
-            osd.zoomPerClick / 1.0
-          );
-          osd.viewport.applyConstraints();
-        }
-      });
-      this.element.find('.mirador-osd-zoom-out').on('click', function() {
-        var osd = _this.osd;
-        if ( osd.viewport ) {
-          osd.viewport.zoomBy(
-            1.0 / osd.zoomPerClick
-          );
-          osd.viewport.applyConstraints();
-        }
-      });
-
-      this.element.find('.mirador-osd-toggle-bottom-panel').on('click', function() {
-        _this.eventEmitter.publish('TOGGLE_BOTTOM_PANEL_VISIBILITY.' + _this.windowId);
-      });
-
-      // Annotation specific controls
-      this.element.find('.mirador-osd-edit-mode').on('click', function() {
-        var shape = jQuery(this).find('.material-icons').html();
-        if (_this.hud.annoState.current === 'pointer') {
-          _this.hud.annoState.chooseShape(shape);
-        } else {
-          _this.hud.annoState.changeShape(shape);
-        }
-        //when a user is in Create mode, don't let the controls auto fade as it could be distracting to the user
-        _this.forceShowControls = true;
-        _this.element.find(".hud-control").stop(true, true).removeClass('hidden', _this.state.getStateProperty('fadeDuration'));
-      });
-
-      this.element.find('.mirador-osd-pointer-mode').on('click', function() {
-        // go back to pointer mode
-        if (_this.hud.annoState.current === 'shape') {
-          _this.hud.annoState.choosePointer();
-          //go back to allowing the controls to auto fade
-          _this.forceShowControls = false;
-        }
-      });
-
-      this.element.find('.mirador-osd-refresh-mode').on('click', function() {
-        //update annotation list from endpoint
-        _this.eventEmitter.publish('updateAnnotationList.' + _this.windowId);
-      });
-      //Annotation specific controls
-
-      //Image manipulation controls
-      //set the original values for all of the CSS filter options
-      var filterValues = {
-        "brightness" : "brightness(100%)",
-        "contrast" : "contrast(100%)",
-        "saturate" : "saturate(100%)",
-        "grayscale" : "grayscale(0%)",
-        "invert" : "invert(0%)"
-      };
-
-      function setFilterCSS() {
-        var filterCSS = jQuery.map(filterValues, function(value, key) { return value; }).join(" "),
-            osdCanvas = jQuery(_this.osd.drawer.canvas);
-        osdCanvas.css({
-          'filter'         : filterCSS,
-          '-webkit-filter' : filterCSS,
-          '-moz-filter'    : filterCSS,
-          '-o-filter'      : filterCSS,
-          '-ms-filter'     : filterCSS
-        });
-      }
-
-      function resetImageManipulationControls() {
-        //reset rotation
-        if (_this.osd) {
-          _this.osd.viewport.setRotation(0);
-        }
-
-        //reset brightness
-        filterValues.brightness = "brightness(100%)";
-        _this.element.find('.mirador-osd-brightness-slider').slider('option','value',100);
-        _this.element.find('.mirador-osd-brightness-slider').find('.percent').text(100 + '%');
-
-        //reset contrast
-        filterValues.contrast = "contrast(100%)";
-        _this.element.find('.mirador-osd-contrast-slider').slider('option','value',100);
-        _this.element.find('.mirador-osd-contrast-slider').find('.percent').text(100 + '%');
-
-        //reset saturation
-        filterValues.saturate = "saturate(100%)";
-        _this.element.find('.mirador-osd-saturation-slider').slider('option','value',100);
-        _this.element.find('.mirador-osd-saturation-slider').find('.percent').text(100 + '%');
-
-        //reset grayscale
-        filterValues.grayscale = "grayscale(0%)";
-        _this.element.find('.mirador-osd-grayscale').removeClass('selected');
-
-        //reset color inversion
-        filterValues.invert = "invert(0%)";
-        _this.element.find('.mirador-osd-invert').removeClass('selected');
-
-        //reset mirror
-        jQuery(_this.osd.canvas).removeClass('mirador-mirror');
-        if (_this.originalDragHandler) {
-          _this.osd.viewport.viewer.innerTracker.dragHandler = _this.originalDragHandler;
-        }
-
-        setFilterCSS();
-      }
-
-      this.element.find('.mirador-osd-rotate-right').on('click', function() {
-        if (_this.osd) {
-          var currentRotation = _this.osd.viewport.getRotation();
-          _this.osd.viewport.setRotation(currentRotation + 90);
-        }
-      });
-
-      this.element.find('.mirador-osd-rotate-left').on('click', function() {
-        if (_this.osd) {
-          var currentRotation = _this.osd.viewport.getRotation();
-          _this.osd.viewport.setRotation(currentRotation - 90);
-        }
-      });
-
-      this.element.find('.mirador-osd-brightness-slider').slider({
-        orientation: "vertical",
-        range: "min",
-        min: 0,
-        max: 200,
-        value: 100,
-        create: function(event, ui) {
-          var v = jQuery(this).slider('value'),
-              span = jQuery('<span class="percent">').text(v + '%');
-
-          jQuery(this).find('.ui-slider-handle').append(span);
-        },
-        slide: function(event, ui) {
-          filterValues.brightness = "brightness("+ui.value+"%)";
-          setFilterCSS();
-          jQuery(this).find('.percent').text(ui.value + '%');
-        }
-      }).hide();
-
-      this.element.find('.mirador-osd-brightness').on('mouseenter',
-                                                      function() {
-                                                        _this.element.find('.mirador-osd-brightness-slider').stop(true, true).show();
-                                                      }).on('mouseleave',
-                                                            function() {
-                                                              _this.element.find('.mirador-osd-brightness-slider').stop(true, true).hide();
-                                                            });
-
-      this.element.find('.mirador-osd-contrast-slider').slider({
-        orientation: "vertical",
-        range: "min",
-        min: 0,
-        max: 200,
-        value: 100,
-        create: function(event, ui) {
-          var v = jQuery(this).slider('value'),
-              span = jQuery('<span class="percent">').text(v + '%');
-
-          jQuery(this).find('.ui-slider-handle').append(span);
-        },
-        slide: function(event, ui) {
-          filterValues.contrast = "contrast("+ui.value+"%)";
-          setFilterCSS();
-          jQuery(this).find('.percent').text(ui.value + '%');
-        }
-      }).hide();
-
-      this.element.find('.mirador-osd-contrast').on('mouseenter',
-                                                    function() {
-                                                      _this.element.find('.mirador-osd-contrast-slider').stop(true, true).show();
-                                                    }).on('mouseleave',
-                                                          function() {
-                                                            _this.element.find('.mirador-osd-contrast-slider').stop(true, true).hide();
-                                                          });
-
-      this.element.find('.mirador-osd-saturation-slider').slider({
-        orientation: "vertical",
-        range: "min",
-        min: 0,
-        max: 200,
-        value: 100,
-        create: function(event, ui) {
-          var v = jQuery(this).slider('value'),
-              span = jQuery('<span class="percent">').text(v + '%');
-
-          jQuery(this).find('.ui-slider-handle').append(span);
-        },
-        slide: function(event, ui) {
-          filterValues.saturate = "saturate("+ui.value+"%)";
-          setFilterCSS();
-          jQuery(this).find('.percent').text(ui.value + '%');
-        }
-      }).hide();
-
-      this.element.find('.mirador-osd-saturation').on('mouseenter',
-                                                      function() {
-                                                        _this.element.find('.mirador-osd-saturation-slider').stop(true, true).show();
-                                                      }).on('mouseleave',
-                                                            function() {
-                                                              _this.element.find('.mirador-osd-saturation-slider').stop(true, true).hide();
-                                                            });
-
-      this.element.find('.mirador-osd-grayscale').on('click', function() {
-        if (jQuery(this).hasClass('selected')) {
-          filterValues.grayscale = "grayscale(0%)";
-          jQuery(this).removeClass('selected');
-        } else {
-          filterValues.grayscale = "grayscale(100%)";
-          jQuery(this).addClass('selected');
-        }
-        setFilterCSS();
-      });
-
-      this.element.find('.mirador-osd-invert').on('click', function() {
-        if (jQuery(this).hasClass('selected')) {
-          filterValues.invert = "invert(0%)";
-          jQuery(this).removeClass('selected');
-        } else {
-          filterValues.invert = "invert(100%)";
-          jQuery(this).addClass('selected');
-        }
-        setFilterCSS();
-      });
-
-      this.element.find('.mirador-osd-mirror').on('click', function() {
-        if (!_this.originalDragHandler) {
-          _this.originalDragHandler = _this.osd.viewport && _this.osd.viewport.viewer.innerTracker.dragHandler;
-        }
-        if (jQuery(this).hasClass('selected')) {
-          jQuery(_this.osd.canvas).removeClass('mirador-mirror');
-          jQuery(this).removeClass('selected');
-          _this.eventEmitter.publish('disableManipulation', 'mirror');
-          if (_this.osd.viewport) {
-            _this.osd.viewport.viewer.innerTracker.dragHandler = _this.originalDragHandler;
-          }
-          _this.horizontallyFlipped = false;
-        } else {
-          jQuery(_this.osd.canvas).addClass('mirador-mirror');
-          jQuery(this).addClass('selected');
-          _this.eventEmitter.publish('enableManipulation', 'mirror');
-          if (_this.osd.viewport) {
-            var viewer = _this.osd.viewport.viewer;
-            viewer.innerTracker.dragHandler = OpenSeadragon.delegate(viewer, function(event) {
-              event.delta.x = -event.delta.x;
-              _this.originalDragHandler(event);
-            });
-          }
-          _this.horizontallyFlipped = true;
-        }
-    });
-
-      this.element.find('.mirador-osd-reset').on('click', function() {
-        resetImageManipulationControls();
-      });
-
-      this.eventEmitter.subscribe('resetImageManipulationControls.'+this.windowId, function() {
-        resetImageManipulationControls();
-      });
-      //Image manipulation controls
-    },
-
-    currentCanvasIDUpdated: function(event, canvasId) {
-      var _this = this,
-          firstCanvasId = _this.imagesList[0]['@id'],
-          lastCanvasId = _this.imagesList[_this.imagesList.length-1]['@id'];
-
-      // If it is the first canvas, hide the "go to previous" button, otherwise show it.
-      if (canvasId === firstCanvasId) {
-        _this.element.find('.mirador-osd-previous').hide();
-        _this.element.find('.mirador-osd-next').show();
-      } else if (canvasId === lastCanvasId) {
-        _this.element.find('.mirador-osd-next').hide();
-        _this.element.find('.mirador-osd-previous').show();
-      } else {
-        _this.element.find('.mirador-osd-next').show();
-        _this.element.find('.mirador-osd-previous').show();
-      }
-      // If it is the last canvas, hide the "go to previous" button, otherwise show it.
-    },
-
-    loadImage: function(event, imageResource) {
-      var _this = this;
-
-      // We've already loaded this tilesource
-      if(imageResource.status === 'drawn') {
-        return;
-      }
-
-      imageResource.setStatus('requested');
-      var bounds = imageResource.getGlobalBounds();
-
-      _this.osd.addTiledImage({
-        x: bounds.x,
-        y: bounds.y,
-        width: bounds.width,
-        tileSource: imageResource.tileSource,
-        opacity: imageResource.opacity,
-        clip: imageResource.clipRegion,
-        index: imageResource.zIndex,
-
-        success: function(event) {
-          var tiledImage = event.item;
-
-          imageResource.osdTiledImage = tiledImage;
-          imageResource.setStatus('loaded');
-          _this.syncAllImageResourceProperties(imageResource);
-
-          var tileDrawnHandler = function(event) {
-            if (event.tiledImage === tiledImage) {
-              imageResource.setStatus('drawn');
-              _this.osd.removeHandler('tile-drawn', tileDrawnHandler);
-            }
-          };
-          _this.osd.addHandler('tile-drawn', tileDrawnHandler);
-        },
-
-        error: function(event) {
-          // Add any auth information here.
-          //
-          // var errorInfo = {
-          //   id: imageResource.osdTileSource,
-          //   message: event.message,
-          //   source: event.source
-          // };
-          imageResource.setStatus('failed');
-        }
-      });
-    },
-    showImage: function(event, imageResource) {
-      // Check whether or not this item has been drawn.
-      // This implies that the request has been issued already
-      // and the opacity can be updated.
-      if (imageResource.getStatus() === 'drawn') {
-        this.updateImageOpacity(null, imageResource);
-      }
-    },
-    hideImage: function(event, imageResource) {
-      if (imageResource.getStatus() === 'drawn') {
-        imageResource.osdTiledImage.setOpacity(0);
-      }
-    },
-    removeImage: function() {
-    },
-    updateImageOpacity: function(event, imageResource) {
-      if(imageResource.osdTiledImage) {
-        imageResource.osdTiledImage.setOpacity(imageResource.opacity * imageResource.parent.getOpacity());
-      }
-    },
-    syncAllImageResourceProperties: function(imageResource) {
-      if(imageResource.osdTiledImage) {
-        var bounds = imageResource.getGlobalBounds();
-        // If ever the clipRegion parameter becomes
-        // writable, add it here.
-        imageResource.osdTiledImage.setPosition({
-          x:bounds.x,
-          y:bounds.y
-        }, true);
-        imageResource.osdTiledImage.setWidth(bounds.width, true);
-        imageResource.osdTiledImage.setOpacity(
-          imageResource.getOpacity() * imageResource.parent.getOpacity()
-        );
-        // This will be for the drag and drop functionality.
-        // _this.updateImageLayeringIndex(imageResource);
-      }
-    },
-
-    getPanByValue: function() {
-      var bounds = this.osd.viewport.getBounds(true);
-      //for now, let's keep 50% of the image on the screen
-      var panBy = {
-        "x" : bounds.width * 0.5,
-        "y" : bounds.height * 0.5
-      };
-      return panBy;
-    },
-
-    setBounds: function() {
-      var _this = this;
-
-      this.osdOptions.osdBounds = this.osd.viewport.getBounds(true);
-      _this.eventEmitter.publish("imageBoundsUpdated", {
-        id: _this.windowId,
-        osdBounds: {
-          x: _this.osdOptions.osdBounds.x,
-          y: _this.osdOptions.osdBounds.y,
-          width: _this.osdOptions.osdBounds.width,
-          height: _this.osdOptions.osdBounds.height
-        }
-      });
-      var rectangle = this.osdOptions.osdBounds; // In ImageView, viewport coordinates are in the same as Canvas Coordinates.
-      _this.eventEmitter.publish("imageRectangleUpdated", {
-        id: _this.windowId,
-        osdBounds: {
-          x: Math.round(rectangle.x),
-          y: Math.round(rectangle.y),
-          width: Math.round(rectangle.width),
-          height: Math.round(rectangle.height)
-        },
-        warning: 'Warning, image rectangle now based on canvas dimensions, not the constituent images.'
-      });
-    },
-
-    toggle: function(stateValue) {
-      if (stateValue) {
-        this.show();
-      } else {
-        this.hide();
-      }
-    },
-
-    hide: function() {
-      jQuery(this.element).hide({effect: "fade", duration: 300, easing: "easeOutCubic"});
-    },
-
-    show: function() {
-      jQuery(this.element).show({
-        effect: "fade", duration: 300, easing: "easeInCubic", complete: function () {
-          // Under firefox $.show() used under display:none iframe does not change the display.
-          // This is workaround for https://github.com/IIIF/mirador/issues/929
-          jQuery(this).css('display', 'block');
-        }
-      });
-    },
-
-    adjustWidth: function(className, hasClass) {
-      var _this = this;
-      if (hasClass) {
-        _this.eventEmitter.publish('REMOVE_CLASS.'+this.windowId, className);
-      } else {
-        _this.eventEmitter.publish('ADD_CLASS.'+this.windowId, className);
-      }
-    },
-
-    adjustHeight: function(className, hasClass) {
-      if (hasClass) {
-        this.element.removeClass(className);
-      } else {
-        this.element.addClass(className);
-      }
-    },
-
-    initialiseImageCanvas: function() {
-      var _this = this,
-          osdID = 'mirador-osd-' + $.genUUID(),
-          canvasModel = _this.canvases[_this.canvasID];
-
-      _this.elemOsd =
-        jQuery('<div/>')
-        .addClass(_this.osdCls)
-        .attr('id', osdID)
-        .appendTo(_this.element);
-
-      _this.osd = $.OpenSeadragon({
-        id: osdID,
-        uniqueID: osdID,
-        preserveViewport: true,
-        blendTime: 0.1,
-        alwaysBlend: false,
-        showNavigationControl: false
-      });
-
-      var canvasBounds = canvasModel.getBounds();
-      var rect = new OpenSeadragon.Rect(
-        canvasBounds.x,
-        canvasBounds.y,
-        canvasBounds.width,
-        canvasBounds.height
-      );
-      _this.osd.viewport.fitBounds(rect, true); // center viewport before image is placed.
-
-      canvasModel.show();
-      canvasModel.getVisibleImages().forEach(function(imageResource) {
-        _this.loadImage(null, imageResource);
-      });
-
-      _this.osd.addHandler('zoom', $.debounce(function(){
-        var point = {
-          'x': -10000000,
-          'y': -10000000
-        };
-        _this.eventEmitter.publish('updateTooltips.' + _this.windowId, [point, point]);
-      }, 30));
-
-      _this.osd.addHandler('pan', $.debounce(function(){
-        var point = {
-          'x': -10000000,
-          'y': -10000000
-        };
-        _this.eventEmitter.publish('updateTooltips.' + _this.windowId, [point, point]);
-      }, 30));
-
-      // Maintain this as an external API.
-      _this.eventEmitter.publish('osdOpen.'+_this.windowId);
-      _this.addAnnotationsLayer(_this.elemAnno);
-
-      if (_this.osdOptions.osdBounds) {
-        var newBounds = new OpenSeadragon.Rect(_this.osdOptions.osdBounds.x, _this.osdOptions.osdBounds.y, _this.osdOptions.osdBounds.width, _this.osdOptions.osdBounds.height);
-        _this.osd.viewport.fitBounds(newBounds, true);
-      } else {
-        // else reset bounds for this image
-        _this.setBounds();
-      }
-
-      // get the state before resetting it so we can get back to that state
-      var originalState = _this.hud.annoState.current;
-      var selected = _this.element.find('.mirador-osd-edit-mode.selected');
-      var shape = null;
-      if (selected) {
-        shape = selected.find('.material-icons').html();
-      }
-      if (originalState === 'none') {
-        _this.hud.annoState.startup();
-      } else if (originalState === 'off' || _this.annotationState === 'off') {
-        //original state is off, so don't need to do anything
-      } else {
-        _this.hud.annoState.displayOff();
-      }
-
-      if (originalState === 'pointer' || _this.annotationState === 'on') {
-        _this.hud.annoState.displayOn();
-      } else if (originalState === 'shape') {
-        _this.hud.annoState.displayOn();
-        _this.hud.annoState.chooseShape(shape);
-      } else {
-        //original state is off, so don't need to do anything
-      }
-
-      _this.osd.addHandler('zoom', $.debounce(function() {
-        _this.setBounds();
-      }, 500));
-
-      _this.osd.addHandler('pan', $.debounce(function(){
-        _this.setBounds();
-      }, 500));
-    },
-
-    //TODO reuse annotationsLayer with IIIFManifestLayouts
-    addAnnotationsLayer: function(element) {
-      var _this = this;
-      _this.annotationsLayer = new $.AnnotationsLayer({
-        state: _this.state,
-        annotationsList: _this.state.getWindowAnnotationsList(_this.windowId) || [],
-        viewer: _this.osd,
-        windowId: _this.windowId,
-        element: element,
-        eventEmitter: _this.eventEmitter
-      });
-    },
-
-    updateImage: function(canvasID) {
-      var _this = this;
-      if (this.canvasID !== canvasID) {
-        this.canvases[_this.canvasID].getVisibleImages().forEach(function(imageResource){
-          imageResource.hide();
-        });
-        this.canvasID = canvasID;
-        this.currentImgIndex = $.getImageIndexById(this.imagesList, canvasID);
-        this.currentImg = this.imagesList[this.currentImgIndex];
-
-        var newCanvas = this.canvases[_this.canvasID];
-        var canvasBounds = newCanvas.getBounds();
-        var rect = new OpenSeadragon.Rect(
-          canvasBounds.x,
-          canvasBounds.y,
-          canvasBounds.width,
-          canvasBounds.height
-        );
-        _this.osd.viewport.fitBounds(rect, true); // center viewport before image is placed.
-        newCanvas.show();
-
-        this.osdOptions = {
-          osdBounds:        null,
-          zoomLevel:        null
-        };
-        this.eventEmitter.publish('resetImageManipulationControls.'+this.windowId);
-      }
-      _this.eventEmitter.publish('UPDATE_FOCUS_IMAGES.' + this.windowId, {array: [canvasID]});
-      },
-
-    next: function() {
-      var _this = this;
-      var next = this.currentImgIndex + 1;
-      if (next < this.imagesList.length) {
-        _this.eventEmitter.publish('SET_CURRENT_CANVAS_ID.' + this.windowId, this.imagesList[next]['@id']);
-      }
-    },
-
-    previous: function() {
-      var _this = this;
-      var prev = this.currentImgIndex - 1;
-
-      if (prev >= 0) {
-        _this.eventEmitter.publish('SET_CURRENT_CANVAS_ID.' + this.windowId, this.imagesList[prev]['@id']);
-      }
-    }
-  };
-
-}(Mirador));
diff --git a/js/src/widgets/layersTab.js b/js/src/widgets/layersTab.js
deleted file mode 100644
index eb6b74853bce404e935c826a4ea26dc70697a4c0..0000000000000000000000000000000000000000
--- a/js/src/widgets/layersTab.js
+++ /dev/null
@@ -1,232 +0,0 @@
-(function($) {
-
-  $.LayersTab = function(options) {
-    jQuery.extend(true, this, {
-      windowId:          null,
-      element:           null,
-      appendTo:          null,
-      manifest:          null,
-      visible:           null,
-      state:             null,
-      eventEmitter:      null,
-      canvasID:          null,
-      canvases:          null
-    }, options);
-
-    this.init();
-  };
-
-  $.LayersTab.prototype = {
-    init: function() {
-      var _this = this;
-
-      this.localState({
-        id: 'layersTab',
-        visible: this.visible,
-        active: true, // needs to be a function of the window state
-        canvasID: _this.canvasID,
-        empty: false // needs to be a function of the canvasModel
-      }, true);
-
-      this.render(this.localState());
-      this.bindEvents();
-      this.listenForActions();
-    },
-
-    localState: function(state, initial) {
-      var _this = this;
-      if (!arguments.length) return this.layerTabState;
-      this.layerTabState = state;
-
-      if (!initial) {
-        _this.eventEmitter.publish('layersTabStateUpdated.' + this.windowId, this.layerTabState);
-      }
-
-      return this.layerTabState;
-    },
-
-    tabStateUpdated: function(visible) {
-      var localState = this.localState();
-      localState.visible =  visible;
-
-      this.localState(localState);
-    },
-
-    canvasIdUpdated: function(event, canvasID) {
-      var localState = this.localState();
-      localState.canvasID = canvasID;
-
-      this.localState(localState);
-    },
-
-    imageFocusUpdated: function(focus) {
-      var localState = this.localState();
-      localState.active = (focus !== 'ImageView') ? false : true;
-
-      this.localState(localState);
-    },
-
-    updateImageResourceStatus: function(event, imageResource) {
-      var _this = this;
-
-      ['loaded', 'requested', 'initialized', 'drawn'].forEach(function(statusString){
-        _this.element.find('.layers-list-item[data-imageid="'+ imageResource.id + '"]').removeClass(statusString);
-      });
-
-      this.element.find('.layers-list-item[data-imageid="'+ imageResource.id + '"]').addClass(imageResource.getStatus());
-    },
-    showImageResource: function(event, imageResource) {
-      this.element.find('.visibility-toggle[data-imageid="'+ imageResource.id + '"]').prop('checked', true);
-      this.element.find('.opacity-slider[data-imageid="'+ imageResource.id + '"]').prop('disabled', false);
-      this.element.find('.opacity-label[data-imageid="'+ imageResource.id + '"]').removeClass('disabled').text("(" + Math.ceil(imageResource.getOpacity()*100) + ")%");
-    },
-    hideImageResource: function(event, imageResource) {
-      this.element.find('.visibility-toggle[data-imageid="'+ imageResource.id + '"]').prop('checked', false);
-      this.element.find('.opacity-slider[data-imageid="'+ imageResource.id + '"]').prop('disabled', true);
-      this.element.find('.opacity-label[data-imageid="'+ imageResource.id + '"]').addClass('disabled').text("(" + i18next.t('disabledOpacityMessage') + ")");
-    },
-    updateImageResourceOpacity: function(event, imageResource) {
-      this.element.find('.opacity-slider[data-imageid="'+ imageResource.id + '"]').val(imageResource.getOpacity()*100);
-      this.element.find('.opacity-label[data-imageid="'+ imageResource.id + '"]').text("(" + Math.ceil(imageResource.getOpacity()*100) + ")%");
-    },
-
-    listenForActions: function() {
-      var _this = this;
-
-      // This event is fired by the component itself anytime its local state is updated.
-      _this.eventEmitter.subscribe('layersTabStateUpdated.' + _this.windowId, function(_, data) {
-        _this.render(data);
-      });
-
-      _this.eventEmitter.subscribe('tabStateUpdated.' + _this.windowId, function(_, data) {
-        var visible = data.tabs[data.selectedTabIndex].options.id === 'layersTab';
-        _this.tabStateUpdated(visible);
-      });
-
-      _this.eventEmitter.subscribe('currentCanvasIDUpdated.' + _this.windowId, _this.canvasIdUpdated.bind(_this));
-      _this.eventEmitter.subscribe('image-status-updated' + _this.windowId, _this.updateImageResourceStatus.bind(_this));
-      _this.eventEmitter.subscribe('image-show' + _this.windowId, _this.showImageResource.bind(_this));
-      _this.eventEmitter.subscribe('image-hide' + _this.windowId, _this.hideImageResource.bind(_this));
-      _this.eventEmitter.subscribe('image-opacity-updated' + _this.windowId, _this.updateImageResourceOpacity.bind(_this));
-
-      _this.eventEmitter.subscribe('focusUpdated' + _this.windowId, function(event, focus) {
-
-
-        // update the disabled state of the layersTab
-        // since it cannot be used in overview mode
-        // but is visible/available in image mode.
-        _this.imageFocusUpdated(focus);
-      });
-    },
-
-    bindEvents: function() {
-      var _this = this;
-
-      this.element.find('img').on('load', function(event) {
-        // fades in thumbs when they finish loading.
-        jQuery(this).addClass('loaded');
-        jQuery(this).closest('.thumb-container').removeClass('awaiting-thumbnail');
-      });
-
-      this.element.find('img').on('error', function(event) {
-        // prevents failed images from showing.
-        jQuery(this).addClass('failed');
-        jQuery(this).closest('.thumb-container').removeClass('awaiting-thumbnail');
-        jQuery(this).closest('.thumb-container').addClass('thumb-failed');
-      });
-
-      this.element.on('input', '.opacity-slider', function(event) {
-        var canvasModel = _this.canvases[_this.localState().canvasID],
-            eventedImageResource = canvasModel.getImageById(event.currentTarget.attributes['data-imageid'].nodeValue);
-
-        eventedImageResource.setOpacity(event.currentTarget.value/100);
-      });
-
-      this.element.on('change', '.visibility-toggle', function(event) {
-        var canvasModel = _this.canvases[_this.localState().canvasID],
-            eventedImageResource = canvasModel.getImageById(event.currentTarget.attributes['data-imageid'].nodeValue);
-        if(event.currentTarget.checked) {
-          eventedImageResource.show();
-        } else {
-          eventedImageResource.hide();
-        }
-      });
-    },
-
-    render: function(state) {
-      var _this = this,
-          canvasModel = _this.canvases[state.canvasID],
-          templateData = {
-            active: state.active ? '' : 'inactive',
-            imagesFor: i18next.t('imagesFor'),
-            hasLayers: canvasModel.images.length > 0,
-            canvasTitle: canvasModel.label,
-            disabledLayersTabMessage: i18next.t('disabledLayersTabMessage'),
-            layers: canvasModel.images.map(function(imageResource){
-              return {
-                visibleLabel: i18next.t('visibleLabel'),
-                opacityLabel: i18next.t('opacityLabel'),
-                disabledOpacityMessage: i18next.t('disabledOpacityMessage'),
-                emptyTemplateMessage: i18next.t('emptyTemplateMessage'),
-                imageId: imageResource.id,
-                title: imageResource.label === 'No Label' ? i18next.t('noLabel') : imageResource.label,
-                opacity: imageResource.getOpacity()*100, // scale factor for limitations of html5 slider element
-                loadingStatus: imageResource.getStatus(),
-                visibility: imageResource.getVisible(),
-                url: imageResource.thumbUrl
-              };
-            })
-          };
-
-      if (this.element) {
-        _this.appendTo.find(".layersPanel").remove();
-      }
-      this.element = jQuery(_this.template(templateData)).appendTo(_this.appendTo);
-
-      _this.bindEvents();
-
-      if (state.visible) {
-        this.element.show();
-      } else {
-        this.element.hide();
-      }
-    },
-
-    template: $.Handlebars.compile([
-      '<div class="layersPanel {{active}}">',
-      '<h3>{{imagesFor}} {{canvasTitle}}</h3>',
-      '{{#if hasLayers}}',
-      '<ul class="layers-listing">',
-      '{{#each layers}}',
-      '<li class="layers-list-item {{loadingStatus}}" data-imageid="{{imageId}}">',
-      '<h4>{{this.title}}</h4>',
-      '<div class="thumb-container awaiting-thumbnail">',
-      '<img class="layer-thumb" src="{{url}}" alt="{{canvasTitle}} title="{{canvasTitle}}">',
-      '<span class="spinner"><i class="fa fa-circle-o-notch fa-spin fa-3x fa-fw"></i></span>',
-      '<span class="failed"><i class="fa fa-ban fa-3x fa-fw"></i></span>',
-      '<span class="thumb-failed"><i class="fa fa-picture-o fa-3x fa-fw"></i></span>',
-      '</div>',
-      '<form>',
-      '<div>',
-      '<input class="visibility-toggle" data-imageid="{{imageId}}" type=checkbox {{#if visibility}}checked{{/if}}>',
-      '<label> {{this.visibleLabel}}</label>',
-      '</div>',
-      '<label>{{this.opacityLabel}} <span class="opacity-label {{#unless visibility}}disabled{{/unless}}" data-imageid="{{imageId}}">',
-      '{{#unless visibility}}({{this.dsabledOpacityLabel}}){{else}}({{opacity}})%{{/unless}}',
-      '</span></label>',
-      '<input class="opacity-slider" data-imageid="{{imageId}}" type="range" min="0" max="100" step="2" value="{{opacity}}" {{#unless visibility}}disabled{{/unless}}>',
-      '</form>',
-      '</li>',
-      '{{/each}}',
-      '</ul>',
-      '{{else}}',
-      '<h4>{{emptyTemplateMessage}}</h4>',
-      '{{/if}}',
-      '<div class="disabled-overlay">',
-      '<h3>{{disabledLayersTabMessage}}</h3>',
-      '</div>',
-      '</div>',
-    ].join(''))
-  };
-
-}(Mirador));
diff --git a/js/src/widgets/metadataView.js b/js/src/widgets/metadataView.js
deleted file mode 100755
index 9c71f9ba6c90e2758f23f3bcb93f74efdea82b1a..0000000000000000000000000000000000000000
--- a/js/src/widgets/metadataView.js
+++ /dev/null
@@ -1,300 +0,0 @@
-(function($) {
-
-  $.MetadataView = function(options) {
-
-    jQuery.extend(this, {
-      manifest:             null,
-      element:              null,
-      metadataTypes:        null,
-      metadataListingCls:   'metadata-listing'
-    }, options);
-
-    this.init();
-  };
-
-  $.MetadataView.prototype = {
-
-    init: function() {
-      var _this = this,
-          tplData = {
-            metadataListingCls: this.metadataListingCls
-          };
-
-      _this.manifest = _this.manifest.jsonLd;
-      this.metadataTypes = {};
-
-      this.metadataTypes.details = _this.getMetadataDetails(_this.manifest);
-      this.metadataTypes.rights = _this.getMetadataRights(_this.manifest);
-      this.metadataTypes.links = _this.getMetadataLinks(_this.manifest);
-
-      //vvvvv This is *not* how this should be done.
-      jQuery.each(this.metadataTypes, function(metadataKey, metadataValues) {
-        tplData[metadataKey] = [];
-
-        jQuery.each(metadataValues, function(idx, itm) {
-          if (typeof itm.value === 'object') {
-            itm.value = _this.stringifyObject(itm.value);
-          }
-
-          if (typeof itm.value === 'string' && itm.value !== '') {
-            tplData[metadataKey].push({
-              identifier: itm.identifier || '',
-              label: _this.extractLabelFromAttribute(itm.label),
-              value: (metadataKey === 'links') ? itm.value : _this.addLinksToUris(itm.value)
-            });
-          }
-        });
-      });
-
-      if (_this.manifest.logo) {
-        var logo = '';
-        if (typeof _this.manifest.logo === "string") {
-          logo = _this.manifest.logo;
-        } else if (typeof _this.manifest.logo['@id'] !== 'undefined') {
-          logo = _this.manifest.logo['@id'];
-        }
-        tplData.logo = logo;
-      }
-
-      this.element = jQuery(this.template(tplData)).appendTo(this.appendTo);
-      this.bindEvents();
-    },
-
-  // Base code from https://github.com/padolsey/prettyprint.js. Modified to fit Mirador needs
-  stringifyObject: function(obj, nestingMargin) {
-    var type = typeof obj,
-        _this = this,
-        str,
-        first = true,
-        increment = 15,
-        delimiter = '<br/>';
-
-    if (obj instanceof RegExp) {
-      return '/' + obj.source + '/';
-    }
-
-    if (typeof nestingMargin === 'undefined') {
-      nestingMargin = 0;
-    }
-
-    if (obj instanceof Array) {
-      str = '[ ';
-      jQuery.each(obj, function (i, item) {
-        str += (i === 0 ? '' : ', ') + _this.stringifyObject(item, nestingMargin + increment);
-      });
-      return str + ' ]';
-    }
-
-    if (typeof obj === 'object' && obj['@type'] === 'sc:Collection') {
-      var collectionUrl = obj['@id'];
-      var collectionLabel = obj.label || collectionUrl;
-      return '<a href="' + collectionUrl + '" target="_blank">' + collectionLabel + '</a>';
-    } else if (typeof obj === 'object') {
-      str = '<div style="margin-left:' +  nestingMargin + 'px">';
-      for (var i in obj) {
-        if (obj.hasOwnProperty(i)) {
-          str += (first ? '' : delimiter) + i + ': ' + _this.stringifyObject(obj[i], nestingMargin + increment);
-          first = false;
-        }
-      }
-
-      return str + '</div>';
-    }
-    return obj.toString();
-  },
-
-  stringifyRelated: function(obj) {
-    var _this = this,
-        str,
-        next,
-        label,
-        format;
-    if (obj instanceof Array) {
-      str = '';
-      jQuery.each(obj, function (i, item) {
-        next = _this.stringifyRelated(item);
-        if (next !== '') str += (i === 0 ? '' : '<br/>') + next;
-      });
-      return str;
-    }
-
-    if (typeof obj === 'object' && '@id' in obj) {
-      label = ('label' in obj)? obj.label : obj['@id'];
-      format = ('format' in obj && obj.format !== 'text/html')? '(' + obj.format + ')' : '';
-      return '<a href="' + obj['@id'] + '"  target="_blank">' + label + '</a> ' + format;
-    }
-
-    return _this.addLinksToUris(obj.toString());
-  },
-
-  getMetadataDetails: function(jsonLd) {
-      var mdList = [
-        { label: i18next.t('label'),
-          value: '<b>' + ($.JsonLd.getTextValue(jsonLd.label) || '') + '</b>' },
-        { label: i18next.t('description'),
-          value: $.JsonLd.getTextValue(jsonLd.description) || '' }
-      ];
-
-      if (jsonLd.metadata) {
-        value = "";
-        label = "";
-        jQuery.each(jsonLd.metadata, function(index, item) {
-          label = $.JsonLd.getTextValue(item.label);
-          value = $.JsonLd.getTextValue(item.value);
-          mdList.push({label: label, value: value});
-        });
-      }
-
-      return mdList;
-    },
-
-  getMetadataRights: function(jsonLd) {
-    return [
-      {
-        identifier: 'license',
-        label: i18next.t('license'),
-        value: jsonLd.license || ''
-      }, {
-        identifier: 'attribution',
-        label: i18next.t('attribution'),
-        value: $.JsonLd.getTextValue(jsonLd.attribution) || ''
-      }
-    ];
-  },
-
-  getMetadataLinks: function(jsonLd) {
-    // #414
-    return [
-      {
-        identifier: 'related',
-        label: i18next.t('related'),
-        value: this.stringifyRelated(jsonLd.related || '')
-      }, {
-        identifier: 'seeAlso',
-        label: i18next.t('seeAlso'),
-        value: this.stringifyRelated(jsonLd.seeAlso || '')
-      }, {
-        identifier: 'manifest',
-        label: i18next.t('manifest'),
-        value: this.stringifyRelated(jsonLd['@id'] || '')
-      }, {
-        identifier: 'within',
-        label: i18next.t('within'),
-        value: this.getWithin(jsonLd.within || '')
-      }
-    ];
-  },
-
-   getWithin: function(within) {
-     if (typeof within === 'object' && within['@type'] === 'sc:Collection') {
-      var collectionUrl = within['@id'];
-      var collectionLabel = within.label || collectionUrl;
-      return '<a href="' + collectionUrl + '" target="_blank">' + collectionLabel + '</a>';
-     } else if (within instanceof Array) {
-       return within.map(this.getWithin, this).join("<br/>");
-     } else {
-       return this.stringifyObject(within);
-     }
-   },
-
-   extractLabelFromAttribute: function(attr) {
-    var label = attr;
-
-    label = label.replace(/^@/, '');
-    label = label.replace(/\s{2,}/g, ' ');
-
-    return label;
-  },
-
-    bindEvents: function() {
-    },
-
-    toggle: function(stateValue) {
-        if (stateValue) {
-            this.show();
-        } else {
-            this.hide();
-        }
-    },
-
-    show: function() {
-        var element = jQuery(this.element);
-        if (this.panel) {
-            element = element.parent();
-        }
-        element.show({effect: "slide", direction: "right", duration: 300, easing: "swing"});
-    },
-
-    hide: function() {
-        var element = jQuery(this.element);
-        if (this.panel) {
-            element = element.parent();
-        }
-        element.hide({effect: "slide", direction: "right", duration: 300, easing: "swing"});
-    },
-
-    addLinksToUris: function(text) {
-      // http://stackoverflow.com/questions/8188645/javascript-regex-to-match-a-url-in-a-field-of-text
-      var regexUrl = /(http|ftp|https):\/\/[\w\-]+(\.[\w\-]+)+([\w.,@?\^=%&amp;:\/~+#\-]*[\w@?\^=%&amp;\/~+#\-])?/gi,
-          textWithLinks = text,
-          matches,
-          parsedTextWithLinks;
-
-      if (typeof text === 'string') {
-        if (textWithLinks.indexOf('<a ') === -1) {
-          matches = text.match(regexUrl);
-
-          if (matches) {
-            jQuery.each(matches, function(index, match) {
-              textWithLinks = textWithLinks.replace(match, '<a href="' + match + '" target="_blank">' + match + '</a>');
-            });
-          }
-        } else {
-          parsedTextWithLinks = jQuery('<div />').append(textWithLinks);
-          jQuery(parsedTextWithLinks[0]).find('a').attr('target', '_blank');
-          textWithLinks = parsedTextWithLinks[0].innerHTML;
-        }
-      }
-
-      return textWithLinks;
-    },
-
-    template: $.Handlebars.compile([
-    '<div class="sub-title">{{t "details"}}:</div>',
-        '<div class="{{metadataListingCls}}">',
-          '{{#each details}}',
-            '<div class="metadata-item"><div class="metadata-label">{{label}}:</div><div class="metadata-value">{{{value}}}</div></div>',
-          '{{/each}}',
-        '</div>',
-        '<div class="sub-title">{{t "rights"}}:</div>',
-        '{{#if rights}}',
-        '<div class="{{metadataListingCls}}">',
-          '{{#each rights}}',
-            '<div class="metadata-item {{identifier}}"><div class="metadata-label">{{label}}:</div><div class="metadata-value">{{{value}}}</div></div>',
-          '{{/each}}',
-          '{{#if logo}}',
-            '<div class="metadata-item"><div class="metadata-label">{{t "logo"}}:</div><img class="metadata-logo" src="{{logo}}"/></div>',
-          '{{/if}}',
-        '</div>',
-        '{{else}}',
-        '<div class="{{metadataListingCls}}">',
-          '<div class="metadata-item"><div class="metadata-label">{{t "rightsStatus"}}:</div><div class="metadata-value">{{t "unspecified"}}</div></div>',
-        '</div>',
-        '{{/if}}',
-        '{{#if links}}',
-        '<div class="sub-title">{{t "links"}}:</div>',
-        '<div class="{{metadataListingCls}}">',
-          '{{#each links}}',
-            '<div class="metadata-item {{identifier}}"><div class="metadata-label">{{label}}:</div><div class="metadata-value">{{{value}}}</div></div>',
-          '{{/each}}',
-        // '{{#if relatedLinks}}',
-        //   '<dt>{{label}}:</dt><dd>{{{value}}}</dd>',
-        // '{{/if}}',
-        '</dl>',
-        '{{/if}}'
-
-    ].join(''), { noEscape: true })
-
-  };
-
-}(Mirador));
diff --git a/js/src/widgets/scrollView.js b/js/src/widgets/scrollView.js
deleted file mode 100755
index 5c7b05b6deb867f41ba3fc4e1afafcd9e24cf490..0000000000000000000000000000000000000000
--- a/js/src/widgets/scrollView.js
+++ /dev/null
@@ -1,27 +0,0 @@
-(function($) {
-
-  $.ScrollView = function(options) {
-
-    jQuery.extend(this, {
-      currentImgIndex:      0,
-      canvasID:              null,
-      focusImages:          [],
-      manifest:             null,
-      element:              null,
-      imagesList:           [],
-      appendTo:             null,
-      thumbInfo:            {thumbsHeight: 150, listingCssCls: 'listing-thumbs', thumbnailCls: 'thumbnail-view'},
-      windowId:             null,
-      panel:                false,
-      vDirectionStatus: '',
-      lazyLoadingFactor:    1.5  //should be >= 1
-    }, options);
-
-    jQuery.extend($.ScrollView.prototype, $.ThumbnailsView.prototype);
-    this.init();
-    if(this.vDirectionStatus == 'rtl') {
-      jQuery(this.appendTo).find('.scroll-view').addClass('v-direction-rtl');
-    }
-  };
-
-}(Mirador));
diff --git a/js/src/widgets/searchTab.js b/js/src/widgets/searchTab.js
deleted file mode 100644
index 362cdea987960b6c378698a6911949afd2203767..0000000000000000000000000000000000000000
--- a/js/src/widgets/searchTab.js
+++ /dev/null
@@ -1,189 +0,0 @@
-(function($) {
-
-  $.SearchTab = function(options) {
-    jQuery.extend(true, this, {
-      element:           null,
-      appendTo:          null,
-      manifest:          null,
-      visible:           null,
-      canvasID:          null,
-      windowId:          null,
-      eventEmitter:      null,
-    }, options);
-
-    this.init();
-  };
-
-  $.SearchTab.prototype = {
-    init: function() {
-      var _this = this;
-      this.windowId = this.windowId;
-
-      this.localState({
-        id: 'searchTab',
-        visible: this.visible,
-      }, true);
-
-      this.listenForActions();
-      this.render(this.localState());
-      this.loadTabComponents();
-    },
-
-    localState: function(state, initial) {
-      if (!arguments.length) return this.searchTabState;
-      this.searchTabState = state;
-
-      if (!initial) {
-        this.eventEmitter.publish('searchTabStateUpdated.' + this.windowId, this.searchTabState);
-      }
-
-      return this.searchTabState;
-    },
-
-    loadTabComponents: function() {
-      var _this = this;
-    },
-
-    tabStateUpdated: function(data) {
-      if (data.tabs[data.selectedTabIndex].options.id === 'searchTab') {
-        this.element.show();
-      }
-      else {
-        this.element.hide();
-      }
-    },
-
-    toggle: function() {},
-
-    listenForActions: function() {
-      var _this = this;
-
-      //jQuery.subscribe('searchTabStateUpdated.' + _this.windowId, function(_, data) {
-      //    _this.render(data);
-      //});
-
-      this.eventEmitter.subscribe('tabStateUpdated.' + _this.windowId, function(_, data) {
-        _this.tabStateUpdated(data);
-      });
-
-      // eventEmitter.subscribe('currentCanvasIDUpdated.' + _this.windowId, function(event) {
-      //
-      // });
-    },
-
-    displaySearchWithin: function(query_params, searchUrl){
-      var _this = this;
-      if (query_params !== "") {
-
-        this.searchObject = new $.SearchWithinResults({
-          manifest: _this.manifest,
-          appendTo: _this.element.find(".search-results-list"),
-          panel: true,
-          canvasID: _this.canvasID,
-          windowId: _this.windowId,
-          imagesList: _this.imagesList,
-          thumbInfo: {thumbsHeight: 80, listingCssCls: 'panel-listing-thumbs', thumbnailCls: 'panel-thumbnail-view'},
-          query_params: query_params,
-          searchService: searchUrl,
-          eventEmitter: _this.eventEmitter
-        });
-      }
-    },
-
-    bindEvents: function() {
-      var _this = this;
-
-      this.element.find(".js-perform-query").on('submit', function(event){
-        event.preventDefault();
-
-        var query = _this.element.find(".js-query").val();
-        var motivation = _this.element.find(".js-motivation").val();
-        var date = _this.element.find(".js-date").val();
-        var user = _this.element.find(".js-user").val();
-        var searchUrl = _this.element.find("#search-within-selector").val();
-
-        _this.displaySearchWithin({
-          "q": query,
-          "motivation": motivation,
-          "date": date,
-          "user": user
-        }, searchUrl);
-
-      });
-
-      this.element.find(".js-search-expand").on('click', function(event){
-        event.preventDefault();
-
-        _this.element.find(".js-search-expanded").slideToggle("fast");
-
-        if (jQuery(this).text() === i18next.t("more")){
-          jQuery(this).text(i18next.t("less"));
-        }
-        else if (jQuery(this).text() === i18next.t("less")){
-          jQuery(this).text(i18next.t("more"));
-        }
-      });
-
-    },
-
-    render: function(state) {
-      var _this = this;
-
-      var searchService = this.manifest.getSearchWithinService(),
-          searchServiceIdArray = searchService && searchService.map(function(data){
-        return {
-          "url": data['@id'],
-          "label": data.label
-        };
-      });
-
-      var templateData = {
-        searchService: searchServiceIdArray
-      };
-
-      if (!this.element) {
-        this.element = jQuery(_this.template(templateData)).appendTo(_this.appendTo);
-        _this.bindEvents();
-      } else {
-        _this.appendTo.find(".search-results").remove();
-        this.element = jQuery(_this.template(templateData)).appendTo(_this.appendTo);
-      }
-
-      if (state.visible) {
-        this.element.show();
-      } else {
-        this.element.hide();
-      }
-    },
-
-    template: $.Handlebars.compile([
-      '<div class="search-results">',
-        '{{#if searchService}}',
-        '<label for="search-within-selector">{{t "searchLabelSelect"}}</label>',
-          '<select id="search-within-selector" style="width: 100%">',
-            '{{#each searchService}}',
-            '<option value="{{ url }}">{{#if label}}{{ label }}{{ else }} {{ url }}{{/if}}</option>',
-            '{{/each}}',
-          '</select>',
-          '<form id="search-within-form" class="js-perform-query">',
-            '<input class="js-query" type="text" placeholder="{{t "searchText"}}"/>',
-
-            '<input style="margin: 10px 0" type="submit" value="{{t "submit"}}"/>',
-
-            '<div style="margin-bottom: 5px"><a class="js-search-expand" href="#">{{t "more"}}</a></div>',
-            '<div class="js-search-expanded" style="display: none;">',
-              '<input class="js-motivation" type="text" placeholder="motivation"/>',
-              '<input class="js-date" type="text" placeholder="date"/>',
-              '<input class="js-user" type="text" placeholder="user"/>',
-              // '<input class="js-box" type="text" placeholder="box: x, y, w, h"/>',
-            '</div>',
-          '</form>',
-          '<div class="search-results-list"></div>',
-        '{{else}}',
-          '{{t "searchNotAvailable"}}',
-        '{{/if}}',
-      '</div>',
-    ].join(''))
-  };
-
-}(Mirador));
diff --git a/js/src/widgets/searchWithinResults.js b/js/src/widgets/searchWithinResults.js
deleted file mode 100644
index c5953c5d183ed43d0d01ea9ed18df887920c2f51..0000000000000000000000000000000000000000
--- a/js/src/widgets/searchWithinResults.js
+++ /dev/null
@@ -1,490 +0,0 @@
-(function($) {
-
-/**
- * UI + logic to get search results for a given search query. On initialization,
- * the provided search query is given to the provided IIIF Search service.
- * The response is displayed as a list.
- *
- * Parameter 'query_params': {q: query, motivation: motivation, date: date, user: user}
- *
- * Currently follows IIIF Content Search API v1.0
- * (http://iiif.io/api/search/0.9/)
- */
-$.SearchWithinResults = function(options) {
-
-  jQuery.extend(this, {
-    manifest:             null,
-    element:              null,
-    metadataTypes:        null,
-    metadataListingCls:   'metadata-listing',
-    /** Search service URL */
-    searchService:     null,
-    windowId:             null,
-    /** {q: query, motivation: motivation, date: date, user: user} */
-    query_params:         null,
-    /** Used for paging. This assumes that searches start on page 1... */
-    currentPage:          1,
-    eventEmitter:         null
-  }, options);
-
-  this.init();
-};
-
-$.SearchWithinResults.prototype = {
-
-  init: function() {
-    this.registerHandlebars();
-
-    jQuery(this.appendTo).empty();
-    this.element = jQuery(this.template()).appendTo(this.appendTo);
-    jQuery("<h3>Search results for: " + this.query_params.q + "</h3>")
-        .appendTo(this.appendTo.find('.search-results-messages'));
-    this.doSearchFromQuery(this.query_params);
-  },
-
-  doSearchFromQuery: function(query_params) {
-    query_string = "";
-    for (var param in query_params){
-      if (param === "q"){
-        query_string += param + "=" + query_params[param];
-      }
-      else if (query_params[param].length > 0){
-       query_string += "&" + param + "=" + query_params[param];
-      }
-    }
-
-    var url = this.searchService + '?' + query_string;
-    this.doSearchFromUrl(url);
-  },
-
-  /**
-   * AJAX request is made from here!
-   *
-   * TODO Perhaps emit a search event here for the purposes of
-   * state tracking or analytics?
-   *
-   * @param  {[type]} url [description]
-   * @return {[type]}     [description]
-   */
-  doSearchFromUrl: function(url) {
-    var _this = this;
-
-    this.element.find('.search-results-container').empty();
-
-    jQuery.ajax({
-      url: url,
-      dataType: 'json',
-      async: true
-    })
-    .done(function(searchResults) {
-        if (searchResults.resources) {
-          // display result totals
-          _this.displayResultCounts(searchResults);
-          // show results list
-          _this.processResults(searchResults);
-      } else {
-        jQuery('.search-results-count').html("<p>No results</p>");
-      }
-    })
-    .fail(function() {
-        jQuery('.search-results-count').html("<p>No results</p>");
-    })
-    .always();
-  },
-
-
-  displayResultCounts: function(searchResults){
-    var total = searchResults.within.total,
-    startResultNumber = searchResults.startIndex + 1,
-    endResultNumber = "";
-
-    //if there is only only resource, it will not be array and therefore we can't
-    //take the length of it; this conditions check first to see if the resources
-    //property contains an array or single object
-
-    // TODO: not that this single object vs. array seems to be problem throughout.
-    // Pages with only one result do not display properly. See for example:
-    // http://exist.scta.info/exist/apps/scta/iiif/pl-zbsSII72/search?q=fides&page=3
-
-    if (searchResults.resources.constructor === Array) {
-      endResultNumber = searchResults.startIndex + searchResults.resources.length;
-    } else {
-      endResultNumber = searchResults.startIndex + 1;
-    }
-
-    jQuery('.search-results-count').html("<p>Showing " + startResultNumber + " - " + endResultNumber + " out of " + total + "</p>");
-  },
-
-  processResults: function(searchResults) {
-    //create tplData array
-    if (searchResults.hits) {
-      this.tplData = this.getHits(searchResults);
-    } else {
-      this.tplData = this.getSearchAnnotations(searchResults);
-    }
-    jQuery($.Handlebars.compile('{{> resultsList }}')(this.tplData)).appendTo(jQuery(this.element.find('.search-results-container')));
-    this.bindEvents();
-
-    this.setPager(searchResults);
-  },
-
-  /**
-   * Look for necessary properties that point to the need for paging.
-   * Check for total number of results vs number of returned results.
-   *
-   * @param  results IIIF Search results
-   * @return TRUE if paging is needed
-   */
-  needsPager: function(results) {
-    // Check for some properties on the search results
-    if (!results || !results.within || !results.resources) {
-      return false;
-    }
-    var total = results.within.total;
-    // Check if 'resources' (list of annotations) is an array, or single value
-    if (Array.isArray(results.resources)) {
-      return results.resources.length < total;
-    } else {
-      return total > 1;
-    }
-  },
-
-  /**
-   * Initialize search results pager. It is assumed that it has already
-   * been determined whether or not the pager needs to be created.
-   * If a pager is created, it will be inserted into the DOM.
-   *
-   * If it is determined that this set of results does not need paging,
-   * then this function will exit early and no paging will be set.
-   * {@link SearchWithinResults#needsPager}
-   *
-   * @param  results - IIIF Search results
-   */
-  setPager: function(searchResults) {
-    var _this = this;
-    var pager = this.element.find('.search-results-pager');
-
-    // HACK: pager.pagination will be undefined until canvasID are set properly
-    if (!this.needsPager(searchResults) || !pager.pagination) {
-      return;
-    }
-
-    /*
-     * Hack to get proper page numbers.
-     * TODO probably shouldn't use this library if it requires page numbers,
-     * instead have something with ONLY FIRST/LAST and PREV/NEXT controls.
-     */
-    if (!this.onPageCount) { // This will be set with initial page and not be changed.
-      this.onPageCount = searchResults.resources.length;
-    }
-
-    pager.pagination({
-        items: searchResults.within.total,
-        itemsOnPage: _this.onPageCount,
-        currentPage: _this.currentPage,
-        displayedPages: 1,
-        edges: 1,
-        ellipsePageSet: false,
-        cssStyle: 'compact-theme',
-        hrefTextPrefix: '',
-        prevText: '<i class="fa fa-lg fa-angle-left"></i>',
-        nextText: '<i class="fa fa-lg fa-angle-right"></i>',
-        onPageClick: function(pageNumber, event) {
-          event.preventDefault();
-          pager.pagination('disable');
-
-          if (pageNumber == _this.currentPage - 1) {
-            _this.currentPage--;
-            _this.doSearchFromUrl(searchResults.prev);
-          } else if (pageNumber == _this.currentPage + 1) {
-            _this.currentPage++;
-            _this.doSearchFromUrl(searchResults.next);
-          } else if (pageNumber == 1) {
-            _this.doSearchFromUrl(searchResults.within.first);
-            _this.currentPage = 1;
-          } else {
-            // Assume this is the last page........
-            _this.doSearchFromUrl(searchResults.within.last);
-            /*
-             *  NOTE: There is no good way to get the page number from the search URL.
-             *  IIIF Content Search v1.0 spec (I do not think) does not define
-             *  how to specify a page.
-             *      -- For example, the page could be put into the URL
-             *  query string, or it could be put into the URL fragment, or somewhere
-             *  else.
-             *
-             *  This hack pulls the number of the last page on the pager. :/
-             */
-            _this.currentPage = parseInt(
-              _this.element.find('.search-results-pager li:nth-last-child(2)').text()
-            );
-          }
-        }
-    });
-    pager.pagination('enable');
-  },
-
-  /**
-   * Do a Bitwise OR to truncate decimal
-   *
-   * @param  num original number, could be integer or decimal
-   * @return integer with any decimal part of input truncated (no rounding)
-   */
-  float2int: function(num) {
-    return num | 0;
-  },
-
-  parseSearchAnnotation: function(annotation){
-    var _this = this;
-    var canvasid = annotation.on;
-    // deals with possibiliy of "on" propert taking an object
-    if (typeof canvasid === 'object') {
-      canvasid = annotation.on['@id'];
-    }
-
-    var canvaslabel = _this.getLabel(annotation);
-
-    // Split ID from Coordinates if necessary
-    var id_parts = _this.splitBaseUrlAndCoordinates(canvasid);
-
-    return {
-      canvasid: id_parts.base,
-      coordinates: id_parts.coords,
-      canvaslabel: canvaslabel,
-      resulttext: annotation.resource.chars
-    };
-  },
-
-  getSearchAnnotations: function(searchResults) {
-    var _this = this;
-    tplData = [];
-    //add condition here to make sure searchResults.resources is not null
-    if (searchResults.resources !== null) {
-      //This conditional handles if the results come back as a single object or as an array
-      //TODO: This possibility is not yet handled in the getHits function
-      if (!Array.isArray(searchResults.resources)){
-        annotation = searchResults.resources;
-        tplData.push(_this.parseSearchAnnotation(annotation));
-      }
-      else {
-        searchResults.resources.forEach(function(annotation){
-          tplData.push(_this.parseSearchAnnotation(annotation));
-        });
-      }
-    return tplData;
-    }
-  },
-
-  getHits: function(searchResults) {
-    var _this = this;
-    tplData = [];
-    searchResults.hits.forEach(function(hit) {
-      //this seems like a really slow way to retrieve on property from hits
-      //note that at present it is only retrieving the first annotation
-      //but a hit annotation property takes an array and could have more than one
-      //annotation -- its not a very common case but a possibility.
-      var resultObject, resultObjects = [];
-      hit.annotations.forEach(function(annotation) {
-        //canvases could come back as an array
-        var resource = _this.getHitResources(searchResults, annotation)[0],
-            canvasLabel = _this.getLabel(resource),
-            canvasID = resource && resource.on;
-        // If you have the full annotation, set ID and label appropriately
-        if (typeof canvasID === 'object') {
-          canvasID = resource.on['@id'];
-        }
-        // Extract coordinates if necessary
-        var canvasIDParts = _this.splitBaseUrlAndCoordinates(canvasID);
-        resultObject = {
-          canvasid: canvasIDParts.base,
-          coordinates: canvasIDParts.coords,
-          canvaslabel: canvasLabel,
-          hit: hit      // TODO must handle different results structures, see IIIF search spec for different responses
-        };
-        resultObjects.push(resultObject);
-      });
-      // First result is returned and gets attached an array of all annotations
-      if (resultObjects) {
-        resultObject = resultObjects[0];
-        if (resultObjects.length > 1) {
-          resultObject.annotations = resultObjects;
-        }
-        tplData.push(resultObject);
-      }
-    });
-    return tplData;
-  },
-
-  /**
-   * Get a label describing a search match. This label is set to the
-   * associated annotation label, if available, or to the label of the
-   * parent canvas.
-   *
-   * @param  {[type]} resource annotation associated with the search match
-   * @return {[type]}          string label
-   */
-  getLabel: function(resource) {
-    var label;
-
-    if (resource && typeof resource === 'object') {
-      if (resource.label) {
-        return resource.label;
-      } else if (resource.resource.label){
-        return resource.resource.label;
-      } else if (resource.on && typeof resource.on === 'string') {
-        label = this.manifest.getCanvasLabel(resource.on);
-        return label ? 'Canvas ' + label : undefined;
-      } else if (resource.on && typeof resource.on === 'object') {
-        label = resource.on.label ? resource.on.label : this.manifest.getCanvasLabel(resource.on['@id']);
-        return label ? 'Canvas ' + label : undefined;
-      }
-    } else {
-      return undefined;
-    }
-  },
-
-  getHitResources: function(searchResults, annotationid) {
-    // Get array of results
-    return searchResults.resources.filter(function(resource){
-      return resource['@id'] === annotationid;
-    });
-  },
-
-  /**
-   * @param  url - a resource ID
-   * @return {
-   *   base: base URL, or the original url param if no coords are present,
-   *   coords: coordinates from ID if present
-   * }
-   */
-  splitBaseUrlAndCoordinates: function(url) {
-    var coordinates;
-    var base = url;
-
-    if (typeof url === 'string') {
-      // Separate base ID from fragment selector
-      var parts = url.split('#');
-
-      base = parts[0];
-      if (parts.length === 2) {
-        coordinates = parts[1];
-      }
-    }
-
-    return {
-      base: base,
-      coords: coordinates
-    };
-  },
-
-  bindEvents: function() {
-    var _this = this;
-
-    // jQuery.subscribe(('currentCanvasIDUpdated.' + _this.windowId), function(event, canvasID) {
-    //     //if (!_this.structures) { return; }
-    //     //_this.setSelectedElements($.getRangeIDByCanvasID(_this.structures, canvasID));
-    //     //_this.render();
-    //
-    //   });
-
-    //TODO
-    //This function works to move the user to the specified canvas
-    //but if there are associated coordinates, it does not yet know how to highlight
-    //those coordinates.
-
-    //thie miniAnnotatList attempted to do this, but is no longer working
-    //it needs to be replaced by a new strategy.
-
-    this.element.find('.js-show-canvas').on("click", function(event) {
-      event.stopPropagation();
-
-      var canvasid = jQuery(this).attr('data-canvasid'),
-          coordinates = jQuery(this).attr('data-coordinates'),
-          xywh = coordinates && coordinates.split('=')[1].split(',').map(Number),
-          bounds = xywh && {x: xywh[0], y: xywh[1], width: xywh[2], height: xywh[3]};
-      jQuery(".result-wrapper,.result-wrapper *").css("background-color", "");
-      jQuery(this).parent().css("background-color", "lightyellow");
-      if (jQuery(this).is("a")) {
-        jQuery(this).parent().next().css("background-color", "lightyellow");
-      }
-      //if there was more than one annotation
-      //(for example if a word crossed a line and needed two coordinates sets)
-      //the miniAnnotationList should have multiple objects
-      miniAnnotationList  = [{
-        "@id": "test",
-        "@type": "oa:Annotation",
-        "motivation": "sc:painting",
-        "resource": {
-          "@type": "cnt:ContentAsText",
-          "chars": _this.query
-        },
-        "on": canvasid + (coordinates ? "#" + coordinates : '')
-        }];
-      //_this.parent.annotationsList = miniAnnotationList;
-      var options = {
-        "canvasID": canvasid,
-        "bounds": bounds
-      };
-      _this.eventEmitter.publish('SET_CURRENT_CANVAS_ID.' + _this.windowId, options);
-    });
-  },
-
-  registerHandlebars: function() {
-    $.Handlebars.registerPartial('resultsList', [
-      '{{#each this}}',
-        '<div class="result-wrapper">',
-          '<a class="search-result search-title js-show-canvas" data-canvasid="{{canvasid}}" data-coordinates="{{coordinates}}">',
-            '{{canvaslabel}}',
-          '</a>',
-          '{{#if annotations}}',
-            '<div>',
-              '<em>Annotations</em>: ',
-              '{{#each annotations}}',
-                '<a class="search-result search-annotation js-show-canvas" data-canvasid="{{canvasid}}" data-coordinates="{{coordinates}}">',
-                  '<i class="fa fa-fw" aria-hidden="true"></i>',
-                '</a>',
-              '{{/each}}',
-            '</div>',
-          '{{/if}}',
-          '<div class="search-result result-paragraph js-show-canvas" data-canvasid="{{canvasid}}" data-coordinates="{{coordinates}}">',
-            '{{#if hit.before}}',
-              '{{hit.before}} ',
-            '{{/if}}',
-            '{{#if hit.match}}',
-              '<span class="highlight">{{hit.match}}</span>',
-            '{{else}}',
-              '{{{resulttext}}}',   // If this text must NOT be escaped, use:   '{{resulttext}}'
-            '{{/if}}',
-            '{{#if hit.after}}',
-              '{{ hit.after}}',
-            '{{/if}}',
-          '</div>',
-        '</div>',
-      '{{/each}}',
-    ].join(''));
-  },
-
-  /**
-   * Handlebars template. Accepts data and formats appropriately. To use,
-   * just pass in the template data and this will return a String with
-   * the formatted HTML which can then be inserted into the DOM.
-   *
-   * This template expects a IIIF AnnotationList formatted to represent
-   * IIIF Search results.
-   *
-   * EX: assume context:
-   *    var templateData = { template data goes here }
-   *    var htmlString = template(templateData);
-   */
-  template: $.Handlebars.compile([
-    '<div>',
-      '<div class="search-results-messages"></div>',
-      '<div class="search-results-count"></div>',
-      '<div class="search-results-pager"></div>',
-      '<div class="search-results-container">',
-        '{{> resultsList }}',
-      '</div>',
-    '</div>'
-  ].join(""))};
-
-}(Mirador));
diff --git a/js/src/widgets/sidePanel.js b/js/src/widgets/sidePanel.js
deleted file mode 100644
index 48ac5171fc07618262189542f40ce5a68f30f3b0..0000000000000000000000000000000000000000
--- a/js/src/widgets/sidePanel.js
+++ /dev/null
@@ -1,229 +0,0 @@
-(function($) {
-
-  $.SidePanel= function(options) {
-    jQuery.extend(true, this, {
-      element:           null,
-      appendTo:          null,
-      manifest:          null,
-      panelState:        {},
-      tocTabAvailable:   null,
-      annotationsTabAvailable: false,
-      layersTabAvailable: false,
-      searchTabAvailable: null,
-      hasStructures:     false,
-      state:             null,
-      eventEmitter:      null
-    }, options);
-
-    this.init();
-  };
-
-  $.SidePanel.prototype = {
-    init: function() {
-      var _this = this;
-
-      this.updateState({
-        tabs : [
-          {
-            name : 'toc',
-            options : {
-              available: _this.tocTabAvailable,
-              id:'tocTab',
-              label: i18next.t('tabTitleIndex')
-            }
-          },
-          {
-           name : 'annotations',
-           options : {
-           available: _this.annotationsTabAvailable,
-           id:'annotationsTab',
-           label:'Anno.'
-           }
-          },
-          {
-            name : 'search',
-            options : {
-              available: _this.searchTabAvailable,
-              id: 'searchTab',
-              label: i18next.t('tabTitleSearch')
-            }
-          },
-          {
-            name : 'layers',
-            options : {
-              available: _this.layersTabAvailable,
-              id:'layersTab',
-              label: i18next.t('tabTitleLayers')
-            }
-          },
-        ],
-        width: 280,
-        open: true
-      }, true);
-
-      this.listenForActions();
-      this.render(this.updateState());
-
-      this.loadSidePanelComponents();
-    },
-
-    loadSidePanelComponents: function() {
-      var _this = this;
-
-      new $.Tabs({
-        windowId: this.windowId,
-        appendTo: this.appendTo,
-        tabs : this.panelState.tabs,
-        hasStructures : this.hasStructures,
-        eventEmitter: this.eventEmitter
-      });
-
-      if (this.tocTabAvailable) {
-        new $.TableOfContents({
-          structures: this.manifest.getStructures(),
-          appendTo: this.element.find('.tabContentArea'),
-          windowId: this.windowId,
-          canvasID: this.canvasID,
-          manifestVersion: this.manifest.getVersion(),
-          eventEmitter: this.eventEmitter
-        });
-      }
-      if (_this.annotationsTabAvailable) {
-        new $.AnnotationsTab({
-          manifest: _this.manifest,
-          windowId: this.windowId,
-          appendTo: _this.element.find('.tabContentArea'),
-          state: _this.state,
-          eventEmitter: _this.eventEmitter
-        });
-      }
-      if (_this.searchTabAvailable) {
-        new $.SearchTab({
-          manifest: _this.manifest,
-          windowId: this.windowId,
-          appendTo: _this.element.find('.tabContentArea'),
-          state: _this.state,
-          manifestVersion: this.manifest.getVersion(),
-          eventEmitter: _this.eventEmitter
-        });
-      }
-      if (_this.layersTabAvailable) {
-        new $.LayersTab({
-          manifest: _this.manifest,
-          windowId: _this.windowId,
-          appendTo: _this.element.find('.tabContentArea'),
-          canvasID: _this.canvasID,
-          canvases: _this.canvases,
-          state: _this.state,
-          eventEmitter: _this.eventEmitter
-        });
-      }
-
-    },
-
-    update: function(name, availability) {
-      var updatedState = this.panelState;
-      jQuery.each(updatedState.tabs, function(index, value) {
-        if (value.name === name) {
-          value.options.available = availability;
-        }
-      });
-      this.updateState(updatedState);
-    },
-
-    updateState: function(newState, initial) {
-      var _this = this;
-      if (!arguments.length) return this.panelState;
-      jQuery.extend(true, this.panelState, newState);
-
-      if (!initial) {
-        _this.eventEmitter.publish('sidePanelStateUpdated.' + this.windowId, this.panelState);
-      }
-
-      /*var enableSidePanel = false;
-       jQuery.each(this.panelState.tabs, function(index, value) {
-       if (value.options.available) {
-       enableSidePanel = true;
-       }
-       });
-
-       this.toggle(enableSidePanel);*/
-
-      return this.panelState;
-    },
-
-    panelToggled: function() {
-      var currentState = this.updateState(),
-          open = !currentState.open;
-
-      currentState.open = open;
-      this.updateState(currentState);
-    },
-
-    // doesn't do anything right now
-    // getTemplateData: function() {
-    //     return {
-    //         annotationsTab: this.state().annotationsTab,
-    //         tocTab: this.state().tocTab
-    //     };
-    // },
-
-    listenForActions: function() {
-      var _this = this;
-      _this.eventEmitter.subscribe('sidePanelStateUpdated.' + this.windowId, function(_, data) {
-        _this.render(data);
-      });
-
-      _this.eventEmitter.subscribe('sidePanelResized', function() {
-      });
-
-      _this.eventEmitter.subscribe('sidePanelToggled.' + this.windowId, function() {
-        _this.panelToggled();
-      });
-
-      _this.eventEmitter.subscribe('annotationListLoaded.' + _this.windowId, function(event) {
-        var windowObject = _this.state.getWindowObjectById(_this.windowId);
-        if (windowObject.annotationsAvailable[windowObject.viewType]) {
-          if (_this.state.getWindowAnnotationsList(_this.windowId).length > 0) {
-            _this.update('annotations', true);
-          }
-        }
-      });
-
-      _this.eventEmitter.subscribe('currentCanvasIDUpdated.' + _this.windowId, function(event, newCanvasId) {
-        _this.canvasID = newCanvasId;
-      });
-
-    },
-
-    render: function(renderingData) {
-      var _this = this;
-      if (!this.element) {
-        this.element = this.appendTo;
-        jQuery(_this.template(renderingData)).appendTo(_this.appendTo);
-        return;
-      }
-    },
-
-    template: $.Handlebars.compile([
-      '<div class="tabContentArea">',
-      '<ul class="tabGroup">',
-      '</ul>',
-      '</div>'
-    ].join('')),
-
-    toggle: function (enableSidePanel) {
-      var _this = this;
-      if (!enableSidePanel) {
-        jQuery(this.appendTo).hide();
-        _this.eventEmitter.publish('ADD_CLASS.'+this.windowId, 'focus-max-width');
-        _this.eventEmitter.publish('HIDE_ICON_TOC.'+this.windowId);
-      } else {
-        jQuery(this.appendTo).show({effect: "fade", duration: 300, easing: "easeInCubic"});
-        _this.eventEmitter.publish('REMOVE_CLASS.'+this.windowId, 'focus-max-width');
-        _this.eventEmitter.publish('SHOW_ICON_TOC.'+this.windowId);
-      }
-    }
-  };
-
-}(Mirador));
diff --git a/js/src/widgets/statusBar.js b/js/src/widgets/statusBar.js
deleted file mode 100755
index f908ad63cf4ff6e482f527e955460eeef6acfd82..0000000000000000000000000000000000000000
--- a/js/src/widgets/statusBar.js
+++ /dev/null
@@ -1,7 +0,0 @@
-(function ($) {
-  $.WidgetStatusBar = function WidgetStatusBar(options) {
-    jQuery.extend(true, this, {
-
-    }, $.DEFAULT_SETTINGS, options);
-  };
-}(Mirador));
diff --git a/js/src/widgets/tabs.js b/js/src/widgets/tabs.js
deleted file mode 100644
index 872efaeec01f1c5c601bf2da6a9af898e464f9cd..0000000000000000000000000000000000000000
--- a/js/src/widgets/tabs.js
+++ /dev/null
@@ -1,112 +0,0 @@
-(function($) {
-
-  $.Tabs = function(options) {
-    jQuery.extend(true, this, {
-      element:           null,
-      appendTo:          null,
-      windowId:          null,
-      tabState:          {},
-      tabs:              [],
-      eventEmitter:      null
-    }, options);
-
-    this.init();
-  };
-
-  $.Tabs.prototype = {
-    init: function() {
-      var _this = this;
-
-      this.state({
-        tabs : this.tabs,
-        selectedTabIndex: 0
-      }, true);
-      this.listenForActions();
-      this.render(this.state());
-      this.bindEvents();
-    },
-    state: function(state, initial) {
-      var _this = this;
-      if (!arguments.length) return this.tabState;
-      jQuery.extend(true, this.tabState, state);
-
-      if (!initial) {
-        _this.eventEmitter.publish('tabStateUpdated.' + this.windowId, this.tabState);
-      }
-
-      return this.tabState;
-    },
-    tabSelected: function(index) {
-      var state = this.state();
-      state.selectedTabIndex = index;
-      this.state(state);
-    },
-    getTemplateData: function() {
-      return {
-        annotationsTab: this.state().annotationsTab,
-        tocTab: this.state().tocTab,
-        searchTab: this.state().searchTab
-      };
-    },
-    listenForActions: function() {
-      var _this = this;
-
-      _this.eventEmitter.subscribe('tabStateUpdated.' + this.windowId, function(_, data) {
-        _this.render(data);
-      });
-
-      _this.eventEmitter.subscribe('tabSelected.' + this.windowId, function(_, data) {
-        _this.tabSelected(data);
-      });
-
-      _this.eventEmitter.subscribe('tabFocused.', function() {
-      });
-    },
-    bindEvents: function() {
-      var _this = this;
-
-      this.element.find('.tab').on('click', function(event) {
-        _this.eventEmitter.publish('tabSelected.' + _this.windowId, jQuery( this ).index());
-      });
-    },
-    render: function(renderingData) {
-      var _this = this;
-
-      if (!this.element) {
-        var displayLabels = false;
-        var tabs = jQuery.grep(renderingData.tabs, function(value, index) {
-          return value.options.available;
-        });
-        renderingData.tabs = tabs;
-        if(renderingData.tabs.length === 1){
-          // TODO: temporary logic to minimize side panel if only tab is toc and toc is empty
-          if (renderingData.tabs[0].name === 'toc' && !_this.hasStructures) {
-            _this.eventEmitter.publish("sidePanelVisibilityByTab." + _this.windowId, false);
-          }
-
-          // don't show button if only one tab
-          renderingData.tabs = [];
-        }
-        //TODO: add text if there is one label or no content within this tab
-        this.element = jQuery(_this.template(renderingData)).prependTo(_this.appendTo);
-        return;
-      }
-
-      this.element.find('.tab').removeClass('selected');
-      var tabClass = '.' + renderingData.tabs[renderingData.selectedTabIndex].options.id;
-      this.element.find(tabClass).addClass('selected');
-
-    },
-    template: $.Handlebars.compile([
-      '<ul class="tabGroup">',
-      '{{#each tabs}}',
-      '<li class="tab {{this.options.id}} {{#unless @index}}selected{{/unless}}" data-tabId="{{this.options.id}}">',
-      '{{this.options.label}}',
-      '</li>',
-      '{{/each}}',
-      '</ul>',
-    ].join('')),
-    toggle: function () {}
-  };
-
-}(Mirador));
diff --git a/js/src/widgets/thumbnailsView.js b/js/src/widgets/thumbnailsView.js
deleted file mode 100755
index 052ba9f10f711582b5d40ba53253db14c205ad7d..0000000000000000000000000000000000000000
--- a/js/src/widgets/thumbnailsView.js
+++ /dev/null
@@ -1,247 +0,0 @@
-(function($) {
-
-  $.ThumbnailsView = function(options) {
-
-    jQuery.extend(this, {
-      currentImgIndex:      0,
-      canvasID:              null,
-      focusImages:          [],
-      manifest:             null,
-      element:              null,
-      imagesList:           [],
-      imagesListLtr:           [],
-      vDirectionStatus:           '',
-      appendTo:             null,
-      thumbInfo:            {thumbsHeight: 150, listingCssCls: 'listing-thumbs', thumbnailCls: 'thumbnail-view'},
-      defaultThumbHeight:   150,
-      windowId:             null,
-      panel:                false,
-      lazyLoadingFactor:    1.5,  //should be >= 1
-      eventEmitter:         null
-    }, options);
-
-    this.init();
-  };
-
-  $.ThumbnailsView.prototype = {
-
-    init: function() {
-      if (this.canvasID !== null) {
-        this.currentImgIndex = $.getImageIndexById(this.imagesList, this.canvasID);
-      }
-      if(this.vDirectionStatus == 'rtl'){
-        this.imagesList =  this.imagesListLtr.concat();
-      }
-      this.loadContent();
-      if(this.vDirectionStatus == 'rtl'){
-        var firstCanvasId = this.imagesList[0]['@id'];
-        var firstCanvasThumbSelector = 'img.thumbnail-image[data-image-id="'+firstCanvasId+'"]';
-        jQuery(this.appendTo).find('.panel-thumbnail-view').addClass('v-direction-rtl');
-        jQuery(this.appendTo).find('.thumbnail-view').find('li').each(function(){
-          jQuery(this).addClass('thumbnail-rtl');
-        });
-      }
-      this.bindEvents();
-      this.listenForActions();
-    },
-
-    loadContent: function() {
-      var _this = this,
-      tplData = {
-        defaultHeight:  this.thumbInfo.thumbsHeight,
-        listingCssCls:  this.thumbInfo.listingCssCls,
-        thumbnailCls:   this.thumbInfo.thumbnailCls
-      };
-
-      tplData.thumbs = jQuery.map(this.imagesList, function(canvas, index) {
-        if (canvas.width === 0) {
-          return {};
-        }
-
-        var aspectRatio = canvas.height/canvas.width,
-        width = (_this.thumbInfo.thumbsHeight/aspectRatio),
-        thumbnailUrl = $.getThumbnailForCanvas(canvas, width);
-
-        return {
-          thumbUrl: thumbnailUrl,
-          title:    $.JsonLd.getTextValue(canvas.label),
-          id:       canvas['@id'],
-          width:    width,
-          highlight: _this.currentImgIndex === index ? 'highlight' : ''
-        };
-      });
-
-      this.element = jQuery(_this.template(tplData)).appendTo(this.appendTo);
-    },
-
-    updateImage: function(canvasId) {
-      this.currentImgIndex = $.getImageIndexById(this.imagesList, canvasId);
-      this.element.find('.highlight').removeClass('highlight');
-      this.element.find("img[data-image-id='"+canvasId+"']").addClass('highlight');
-      this.element.find("img[data-image-id='"+canvasId+"']").parent().addClass('highlight');
-    },
-
-    updateFocusImages: function(focusList) {
-      var _this = this;
-      this.element.find('.highlight').removeClass('highlight');
-      jQuery.each(focusList, function(index, canvasId) {
-        _this.element.find("img[data-image-id='"+canvasId+"']").addClass('highlight');
-        _this.element.find("img[data-image-id='"+canvasId+"']").parent().addClass('highlight');
-      });
-    },
-
-    currentImageChanged: function() {
-      var _this = this,
-      target = _this.element.find('.highlight'),
-      scrollPosition,
-      windowObject = this.state.getWindowObjectById(this.windowId);
-
-      if (target.position()) {
-        if (windowObject && windowObject.viewType === 'BookView') {
-          scrollPosition = _this.element.scrollLeft() + (target.position().left + (target.next().width() + target.outerWidth())/2) - _this.element.width()/2;
-        } else {
-          scrollPosition = _this.element.scrollLeft() + (target.position().left + target.width()/2) - _this.element.width()/2;
-        }
-      }
-      _this.element.scrollTo(scrollPosition, 900);
-    },
-
-    listenForActions: function() {
-      var _this = this;
-      _this.eventEmitter.subscribe(('currentCanvasIDUpdated.' + _this.windowId), function(event) {
-        _this.currentImageChanged();
-      });
-
-      _this.eventEmitter.subscribe('windowResize', $.debounce(function(){
-        _this.loadImages();
-      }, 100));
-    },
-
-    bindEvents: function() {
-      var _this = this;
-      _this.element.find('img').on('load', function() {
-        jQuery(this).hide().fadeIn(750,function(){
-          // Under firefox $.show() used under display:none iframe does not change the display.
-          // This is workaround for https://github.com/IIIF/mirador/issues/929
-          jQuery(this).css('display', 'block');
-        });
-      });
-
-      jQuery(_this.element).scroll(function() {
-        _this.loadImages();
-      });
-
-      //add any other events that would trigger thumbnail display (resize, etc)
-
-      _this.element.find('.thumbnail-image').on('click', function() {
-        var canvasID = jQuery(this).attr('data-image-id');
-        _this.eventEmitter.publish('SET_CURRENT_CANVAS_ID.' + _this.windowId, canvasID);
-      });
-    },
-
-    toggle: function(stateValue) {
-      if (stateValue) {
-        this.show();
-      } else {
-        this.hide();
-      }
-    },
-
-    loadImages: function() {
-      var _this = this;
-      jQuery.each(_this.element.find("img"), function(key, value) {
-        if ($.isOnScreen(value, _this.lazyLoadingFactor) && !jQuery(value).attr("src")) {
-          var url = jQuery(value).attr("data");
-          _this.loadImage(value, url);
-        }
-      });
-    },
-
-    loadImage: function(imageElement, url) {
-      var _this = this,
-      imagePromise = $.createImagePromise(url);
-
-      imagePromise.done(function(image) {
-        jQuery(imageElement).attr('src', image);
-      });
-    },
-
-    reloadImages: function(newThumbHeight, triggerShow) {
-      var _this = this;
-      this.thumbInfo.thumbsHeight = newThumbHeight;
-
-      jQuery.each(this.imagesList, function(index, image) {
-        var aspectRatio = image.height/image.width,
-        width = (_this.thumbInfo.thumbsHeight/aspectRatio),
-        newThumbURL = $.getThumbnailForCanvas(image, width),
-        id = image['@id'];
-        var imageElement = _this.element.find('img[data-image-id="'+id+'"]');
-        imageElement.attr('data', newThumbURL).attr('height', _this.thumbInfo.thumbsHeight).attr('width', width).attr('src', '');
-      });
-      if (triggerShow) {
-        this.show();
-      }
-    },
-
-    template: $.Handlebars.compile([
-                                 '<div class="{{thumbnailCls}}">',
-                                 '<ul class="{{listingCssCls}}" role="list" aria-label="Thumbnails">',
-                                 '{{#thumbs}}',
-                                 '<li class="{{highlight}}" role="listitem" aria-label="Thumbnail">',
-                                 '<img class="thumbnail-image {{highlight}}" title="{{title}}" data-image-id="{{id}}" src="" data="{{thumbUrl}}" height="{{../defaultHeight}}" width="{{width}}">',
-                                 '<div class="thumb-label">{{title}}</div>',
-                                 '</li>',
-                                 '{{/thumbs}}',
-                                 '</ul>',
-                                 '</div>'
-    ].join('')),
-
-    hide: function() {
-      var element = jQuery(this.element);
-      if (this.panel) {
-        element = element.parent();
-      }
-      element.hide({effect: "fade", duration: 300, easing: "easeOutCubic"});
-    },
-
-    show: function() {
-      var element = jQuery(this.element);
-      if (this.panel) {
-        element = element.parent();
-      }
-      var _this = this;
-      element.show({
-        effect: "fade",
-        duration: 300,
-        easing: "easeInCubic",
-        complete: function() {
-          // Under firefox $.show() used under display:none iframe does not change the display.
-          // This is workaround for https://github.com/IIIF/mirador/issues/929
-          jQuery(this).css('display', 'block');
-          _this.loadImages();
-        }
-      });
-    },
-
-    adjustWidth: function(className, hasClass) {
-      var _this = this;
-      if (hasClass) {
-        _this.eventEmitter.publish('REMOVE_CLASS.'+this.windowId, className);
-      } else {
-        _this.eventEmitter.publish('ADD_CLASS.'+this.windowId, className);
-      }
-    },
-
-    adjustHeight: function(className, hasClass) {
-      if (hasClass) {
-        this.element.removeClass(className);
-      } else {
-        this.element.addClass(className);
-      }
-    }
-
-  };
-
-
-
-}(Mirador));
diff --git a/js/src/widgets/toc.js b/js/src/widgets/toc.js
deleted file mode 100755
index 020b8bf190e2fb0c487fbc92ad2a6c4300312283..0000000000000000000000000000000000000000
--- a/js/src/widgets/toc.js
+++ /dev/null
@@ -1,439 +0,0 @@
-(function($) {
-
-  $.TableOfContents = function(options) {
-
-    jQuery.extend(true, this, {
-      element:           null,
-      appendTo:          null,
-      windowId:          null,
-      structures:        [],
-      manifestVersion:   null,
-      previousSelectedElements: [],
-      selectedElements: [],
-      previousOpenElements: [],
-      openElements:     [],
-      hoveredElement:   [],
-      selectContext:    null,
-      tocData: {},
-      active: null,
-      eventEmitter: null
-    }, options);
-
-    this.init();
-
-    var self = this;
-    window.render = function() {self.render();};
-  };
-
-  $.TableOfContents.prototype = {
-    init: function () {
-      var _this = this;
-      if (!_this.structures || _this.structures.length === 0) {
-        this.element = jQuery(this.emptyTemplate()).appendTo(this.appendTo);
-      } else {
-        this.element = jQuery(this.template({ ranges: this.getTplData() })).appendTo(this.appendTo);
-        this.tocData = _this.initTocData();
-        this.setSelectedElements($.getRangeIDByCanvasID(_this.structures, _this.canvasID));
-        this.element.find('.has-child ul').hide();
-        this.render();
-      }
-      this.bindEvents();
-    },
-
-    tabStateUpdated: function(data) {
-      if (data.tabs[data.selectedTabIndex].options.id === 'tocTab') {
-        this.element.show();
-      } else {
-        this.element.hide();
-      }
-    },
-
-    getTplData: function() {
-      var _this = this,
-          filteredStructures = _this.structures.map(function(structure) {
-            structure.id = structure['@id'];
-            return structure;
-          }),
-          ranges;
-
-      switch (_this.manifestVersion) {
-      case '1':
-        ranges = _this.extractV1RangeTrees(_this.structures);
-        break;
-      case '2':
-        ranges = _this.extractV2RangeTrees(_this.structures);
-        break;
-        // case '2.1':
-        //   _this.extractV21RangeTrees(_this.structures);
-      }
-      if (ranges.length < 2) {
-        if (ranges[0].children) {
-          ranges = ranges[0].children;
-        }
-      }
-
-      return ranges;
-    },
-
-    initTocData: function() {
-      var _this = this,
-          tocData = {};
-
-      _this.structures.forEach(function(structure) {
-        var rangeID = structure['@id'],
-            attrString = '[data-rangeid="' + rangeID +'"]';
-
-        tocData[structure['@id']] = {
-          element: _this.element.find(attrString).closest('li')
-        };
-      });
-
-      return tocData;
-    },
-
-    extractV1RangeTrees: function(rangeList) {
-      var tree, parent;
-      // Recursively build tree/table of contents data structure
-      // Begins with the list of topmost categories
-      function unflatten(flatRanges, parent, tree) {
-        // To aid recursion, define the tree if it does not exist,
-        // but use the tree that is being recursively built
-        // by the call below.
-        tree = typeof tree !== 'undefined' ? tree : [];
-        parent = typeof parent !== 'undefined' ? parent : {'@id': "root", label: "Table of Contents" };
-        var children = jQuery.grep(flatRanges, function(child) { if (!child.within) { child.within = 'root'; } return child.within == parent['@id']; });
-        if ( children.length ) {
-          if ( parent['@id'] === 'root') {
-            // If there are children and their parent's
-            // id is a root, bind them to the tree object.
-            //
-            // This begins the construction of the object,
-            // and all non-top-level children are now
-            // bound the these base nodes set on the tree
-            // object.
-            children.forEach(function(child) {
-              child.level = 0;
-            });
-            tree = children;
-          } else {
-            // If the parent does not have a top-level id,
-            // bind the children to the parent node in this
-            // recursion level before handing it over for
-            // another spin.
-            //
-            // Because "child" is passed as
-            // the second parameter in the next call,
-            // in the next iteration "parent" will be the
-            // first child bound here.
-            children.forEach(function(child) {
-              child.level = parent.level+1;
-            });
-            parent.children = children;
-          }
-          // The function cannot continue to the return
-          // statement until this line stops being called,
-          // which only happens when "children" is empty.
-          jQuery.each( children, function( index, child ){ unflatten( flatRanges, child ); } );
-        }
-        return tree;
-      }
-
-      return unflatten(rangeList);
-    },
-
-    extractV2RangeTrees: function(rangeList) {
-      var tree, parent;
-      // Recursively build tree/table of contents data structure
-      // Begins with the list of topmost categories
-      function unflatten(flatRanges, parent, tree) {
-        // To aid recursion, define the tree if it does not exist,
-        // but use the tree that is being recursively built
-        // by the call below.
-        tree = typeof tree !== 'undefined' ? tree : [];
-        parent = typeof parent !== 'undefined' ? parent : {'@id': "root", label: "Table of Contents" };
-        var children = [];
-        if (parent.ranges) {
-          jQuery.each(parent.ranges, function(index, id) {
-            //make sure id is a string for grepping
-            id = typeof id === 'object' ? id['@id'] : id;
-            var child = jQuery.grep(flatRanges, function(range, index) {
-              if (range['@id'] === id) {
-                return range;
-              }
-            })[0];
-            if (child) {
-              children.push(child);
-            }
-          });
-        } else if (parent['@id'] === 'root') {
-          // we have created a dummy root node, get the top most range as only child
-          var top = jQuery.grep(flatRanges, function(range, index) {
-            //check if we have a viewingHint
-            if (range.hasOwnProperty('viewingHint') && range.viewingHint === 'top') {
-              //found the top most range
-              return range;
-            }
-          })[0];
-          if (top) {
-            children.push(top);
-          }
-          // if we still don't have children, loop through and look for a range with children
-          // if we still can't find one, then create a dummy range in which all ranges are its children
-          if (children.length === 0) {
-            jQuery.each(flatRanges, function(index, range) {
-              if (range.ranges) {
-                children.push(range);
-                return false;
-              }
-            });
-            if (children.length === 0) {
-              children.push({"ranges" : flatRanges});
-            }
-          }
-        }
-        if ( children.length ) {
-          if ( parent['@id'] === 'root') {
-            // If there are children and their parent's
-            // id is a root, bind them to the tree object.
-            //
-            // This begins the construction of the object,
-            // and all non-top-level children are now
-            // bound the these base nodes set on the tree
-            // object.
-            children.forEach(function(child) {
-              child.level = 0;
-            });
-            tree = children;
-          } else {
-            // If the parent does not have a top-level id,
-            // bind the children to the parent node in this
-            // recursion level before handing it over for
-            // another spin.
-            //
-            // Because "child" is passed as
-            // the second parameter in the next call,
-            // in the next iteration "parent" will be the
-            // first child bound here.
-            children.forEach(function(child) {
-              child.level = parent.level+1;
-            });
-            parent.children = children;
-          }
-          // The function cannot continue to the return
-          // statement until this line stops being called,
-          // which only happens when "children" is empty.
-          jQuery.each( children, function( index, child ){ unflatten( flatRanges, child ); } );
-        }
-        return tree;
-      }
-
-      return unflatten(rangeList);
-    },
-
-    render: function() {
-
-      var _this = this;
-      var toDeselect = _this.previousSelectedElements.map(function(rangeID) {
-        return _this.tocData[rangeID].element;
-      }),
-          toSelect = _this.selectedElements.map(function(rangeID) {
-            return _this.tocData[rangeID].element;
-          }),
-          toOpen = _this.openElements.filter(function(rangeID) {
-            return jQuery.inArray(rangeID, _this.previousOpenElements) === -1;
-          }).map(function(rangeID) {
-            return _this.tocData[rangeID].element;
-          }),
-          toClose = _this.previousOpenElements.filter(function(rangeID) {
-            return jQuery.inArray(rangeID, _this.openElements) === -1;
-          }).map(function(rangeID) {
-            return _this.tocData[rangeID].element;
-          });
-
-      if (_this.previousSelectedElements !== _this.selectedElements) {
-        // Deselect elements
-        toDeselect.forEach(function(element) {
-          element.removeClass('selected');
-        });
-
-        // Select new elements
-        toSelect.forEach(function(element) {
-          element.addClass('selected');
-        });
-
-        toClose.forEach(function(element) {
-          element.removeClass('open');
-          element.find('ul:first').slideFadeToggle();
-        });
-
-        toOpen.forEach(function(element) {
-          // TODO if you open a range below an open range, it scrolls back up to the first open range
-          // comment out scrolling for now
-          //element.addClass('open').find('ul:first').slideFadeToggle(250, 'swing', scroll);
-          element.addClass('open').find('ul:first').slideFadeToggle();
-        });
-      } else {
-        toOpen.forEach(function(element) {
-          element.addClass('open').find('ul:first').slideFadeToggle();
-        });
-
-        toClose.forEach(function(element) {
-          element.removeClass('open').find('ul:first').slideFadeToggle();
-        });
-      }
-
-      // Open newly opened sections
-      function scroll() {
-        var head = _this.element.find('.selected').first();
-        if (head.length > 0) {
-          _this.element.scrollTo(head, 400);
-        }
-      }
-    },
-
-    bindEvents: function() {
-      var _this = this;
-
-      // _this.eventEmitter.subscribe('focusChanged', function(_, focusFrame) {
-      // });
-
-      // _this.eventEmitter.subscribe('cursorFrameUpdated', function(_, cursorBounds) {
-      // });
-
-      _this.eventEmitter.subscribe('tabStateUpdated.' + _this.windowId, function(_, data) {
-        _this.tabStateUpdated(data);
-      });
-
-      _this.eventEmitter.subscribe(('currentCanvasIDUpdated.' + _this.windowId), function(event, canvasID) {
-        if (!_this.structures) { return; }
-        _this.setSelectedElements($.getRangeIDByCanvasID(_this.structures, canvasID));
-        _this.render();
-      });
-
-      _this.element.find('.toc-link').on('click', function(event) {
-        event.stopPropagation();
-
-        var rangeID = jQuery(this).data().rangeid,
-            canvasID = jQuery.grep(_this.structures, function(item) { return item['@id'] == rangeID; })[0].canvases[0];
-
-        _this.eventEmitter.publish('SET_CURRENT_CANVAS_ID.' + _this.windowId, canvasID);
-      });
-
-      _this.element.find('.toc-caret').on('click', function(event) {
-        event.stopPropagation();
-
-        var rangeID = jQuery(this).parent().data().rangeid;
-        _this.setOpenItem(rangeID);
-        _this.render();
-      });
-    },
-
-    setActive: function(active) {
-      var _this = this;
-      _this.active = active;
-    },
-
-    setOpenItem: function(rangeID) {
-      var _this = this,
-          alreadyOpen = jQuery.inArray(rangeID, _this.openElements) !== -1;
-
-      _this.previousOpenElements = _this.openElements;
-      _this.openElements = (function() {
-        if (alreadyOpen) {
-          return _this.openElements.filter(function(elementID) {
-            return elementID !== rangeID;
-          });
-        }
-        return _this.openElements.map(function(elementID) {return elementID;}).concat([rangeID]);
-      })();
-
-    },
-
-    // focusCursorFrame: function() {
-    // },
-
-    // hoverItem: function() {
-    // },
-
-    setSelectedElements: function(rangeIDs) {
-      var _this = this;
-
-      _this.previousSelectedElements = _this.selectedElements;
-      _this.selectedElements = rangeIDs;
-      _this.previousOpenElements = _this.openElements;
-      // Ensure that all new selected elements are added to
-      // the list of open elements,
-      // and all previously selected elements are removed.
-      _this.openElements = _this.openElements.filter(function(openElementID) {
-        return jQuery.inArray(openElementID, _this.previousSelectedElements) === -1;
-      }).concat(rangeIDs).filter(function(openElementID,index,openElements){
-        // this filters out any duplicates, which would cause a bug.
-        return index === openElements.indexOf(openElementID);
-      });
-    },
-
-    emptyTemplate: $.Handlebars.compile([
-      '<ul class="toc">',
-      '<li class="leaf-item open">',
-      '<h2><span>{{t "noIndex"}}</span></h2>',
-      '</ul>',
-    ].join('')),
-
-    template: function(tplData) {
-
-      var template = $.Handlebars.compile([
-        '<ul class="toc">',
-        '{{#nestedRangeLevel ranges}}',
-        '<li class="{{#if children}}has-child{{else}}leaf-item{{/if}}">',
-        '{{{tocLevel id label level children}}}',
-        '{{#if children}}',
-        '<ul>',
-        '{{{nestedRangeLevel children}}}',
-        '</ul>',
-        '{{/if}}',
-        '<li>',
-        '{{/nestedRangeLevel}}',
-        '</ul>'
-      ].join(''));
-
-      var previousTemplate;
-
-      $.Handlebars.registerHelper('nestedRangeLevel', function(children, options) {
-        var out = '';
-
-        if (options.fn !== undefined) {
-          previousTemplate = options.fn;
-        }
-
-        children.forEach(function(child) {
-          child.label = $.JsonLd.getTextValue(child.label);
-          out = out + previousTemplate(child);
-        });
-
-        return out;
-      });
-
-      $.Handlebars.registerHelper('tocLevel', function(id, label, level, children) {
-        var caret = '<i class="fa fa-caret-right toc-caret"></i>',
-            cert = '<i class="fa fa-certificate star"></i>';
-        return '<h' + (level+1) + '><a class="toc-link" data-rangeID="' + id + '">' + caret + cert + '<span>' + label + '</span></a></h' + (level+1) + '>';
-      });
-
-      return template(tplData);
-    },
-
-    hide: function() {
-      var _this = this;
-      jQuery(this.appendTo).hide();
-      _this.eventEmitter.publish('ADD_CLASS.'+this.windowId, 'focus-max-width');
-    },
-
-    show: function() {
-      var _this = this;
-      jQuery(this.appendTo).show({effect: "fade", duration: 300, easing: "easeInCubic"});
-      _this.eventEmitter.publish('REMOVE_CLASS.'+this.windowId, 'focus-max-width');
-    }
-
-  };
-
-}(Mirador));
diff --git a/js/src/workspace.js b/js/src/workspace.js
deleted file mode 100644
index 6d74c70d605fdf4e827827b08d5de3b1597c50bd..0000000000000000000000000000000000000000
--- a/js/src/workspace.js
+++ /dev/null
@@ -1,534 +0,0 @@
-(function($) {
-
-  $.Workspace = function(options) {
-
-    jQuery.extend(true, this, {
-      workspaceSlotCls: 'slot',
-      focusedSlot:      null,
-      slots:            [],
-      windows:          [],
-      appendTo:         null,
-      layoutDescription:    null,
-      state:            null,
-      eventEmitter:     null
-    }, options);
-
-    var uid = $.genUUID();
-    this.element  = this.element || jQuery('<div class="workspace-container" id="workspace-'+uid+'">');
-    this.init();
-
-  };
-
-  $.Workspace.prototype = {
-    init: function () {
-      this.element.appendTo(this.appendTo);
-      // this if statement does not appear to be doing anything because toggleSwitchWorkspace is not a function anywhere
-      // if (this.type === "none") {
-      //   this.parent.toggleSwitchWorkspace();
-      //   return;
-      // }
-
-      this.calculateLayout();
-
-      this.bindEvents();
-      this.listenForActions();
-    },
-
-    listenForActions: function() {
-      var _this = this;
-
-      _this.eventEmitter.subscribe('resizeMirador', function(event) {
-        _this.calculateLayout();
-      });
-
-      _this.eventEmitter.subscribe('manifestQueued', function(event, manifestPromise) {
-        // Trawl windowObjects preemptively for slotAddresses and
-        // notify those slots to display a "loading" state.
-        // Similar to the operation of the manifestLoadStatusIndicator
-        // and its associated manifestList controller.
-        var targetSlot;
-
-        if (_this.state.getStateProperty('windowObjects')) {
-          var check = _this.state.getStateProperty('windowObjects').forEach(function(windowConfig, index) {
-            // windowConfig.slotAddress will give the slot;
-            // change the state on that slot to be "loading"
-            if (windowConfig.slotAddress) {
-              targetSlot = _this.getSlotFromAddress(windowConfig.slotAddress);
-            } else {
-              targetSlot = _this.focusedSlot || _this.slots.filter(function(slot) {
-                return slot.hasOwnProperty('window') ? true : false;
-              })[0];
-            }
-          });
-        }
-      });
-
-      _this.eventEmitter.subscribe('REMOVE_WINDOW', function(event, windowId){
-        _this.removeWindow(windowId);
-      });
-
-      _this.eventEmitter.subscribe('REMOVE_NODE', function(event, node){
-        _this.removeNode(node);
-      });
-
-      _this.eventEmitter.subscribe('ADD_SLOT_ITEM', function(event, slot){
-        _this.addItem(slot);
-      });
-
-      _this.eventEmitter.subscribe('ADD_WINDOW', function(event, windowConfig) {
-        _this.addWindow(windowConfig);
-      });
-
-      _this.eventEmitter.subscribe('SPLIT_RIGHT', function(event, slot) {
-        _this.splitRight(slot);
-      });
-
-      _this.eventEmitter.subscribe('SPLIT_LEFT', function(event, slot) {
-        _this.splitLeft(slot);
-      });
-
-      _this.eventEmitter.subscribe('SPLIT_DOWN', function(event, slot) {
-        _this.splitDown(slot);
-      });
-
-      _this.eventEmitter.subscribe('SPLIT_UP', function(event, slot) {
-        _this.splitUp(slot);
-      });
-
-      _this.eventEmitter.subscribe('RESET_WORKSPACE_LAYOUT', function(event, options) {
-        _this.resetLayout(options.layoutDescription);
-      });
-    },
-
-    bindEvents: function() {
-      var _this = this;
-
-      d3.select(window).on('resize', function(event) {
-        _this.calculateLayout();
-      });
-    },
-
-    get: function(prop, parent) {
-      if (parent) {
-        return this[parent][prop];
-      }
-      return this[prop];
-    },
-
-    set: function(prop, value, options) {
-      var _this = this;
-      if (options) {
-        this[options.parent][prop] = value;
-      } else {
-        this[prop] = value;
-      }
-      _this.eventEmitter.publish(prop + '.set', value);
-    },
-
-    calculateLayout: function(resetting) {
-      var _this = this,
-          layout;
-
-      _this.layout = layout = new Isfahan({
-        containerId: _this.element.attr('id'),
-        layoutDescription: _this.layoutDescription,
-        configuration: null,
-        padding: 3
-      });
-
-      var data = layout.filter( function(d) {
-        return !d.children;
-      });
-
-      // Data Join.
-      var divs = d3.select("#" + _this.element.attr('id')).selectAll(".layout-slot")
-            .data(data, function(d) { return d.id; });
-
-      // Implicitly updates the existing elements.
-      // Must come before the enter function.
-      divs.call(cell).each(function(d) {
-        _this.slots.forEach(function(slot) {
-          if (slot.slotID === d.id) {
-            slot.layoutAddress = d.address;
-          }
-        });
-      });
-
-      // Enter
-      divs.enter().append("div")
-        .attr("class", "layout-slot")
-        .attr("data-layout-slot-id", function(d) { return d.id; })
-        .call(cell)
-        .each(function(d) {
-          var appendTo = _this.element.children('div').filter('[data-layout-slot-id="'+ d.id+'"]')[0];
-          _this.slots.push(new $.Slot({
-            slotID: d.id,
-            layoutAddress: d.address,
-            focused: true,
-            appendTo: appendTo,
-            state: _this.state,
-            eventEmitter: _this.eventEmitter
-          }));
-        });
-
-      // Exit
-      divs.exit()
-        .remove("div")
-        .each(function(d) {
-          var slotMap = _this.slots.reduce(function(map, temp_slot) {
-            if (d.id === temp_slot.slotID) {
-              map[d.id] = temp_slot;
-            }
-            return map;
-          }, {}),
-              slot = slotMap[d.id];
-
-          if (slot && slot.window && !resetting) {
-            _this.eventEmitter.publish('REMOVE_WINDOW', slot.window.id);
-          }
-
-          // nullify the window parameter of old slots
-          slot.window = null;
-          _this.slots.splice(_this.slots.indexOf(slot), 1);
-        });
-
-      function cell() {
-        this
-          .style("left", function(d) { return d.x + "px"; })
-          .style("top", function(d) { return d.y + "px"; })
-          .style("width", function(d) { return Math.max(0, d.dx ) + "px"; })
-          .style("height", function(d) { return Math.max(0, d.dy ) + "px"; });
-      }
-
-      var root = jQuery.grep(_this.layout, function(node) { return !node.parent;})[0];
-
-      _this.eventEmitter.publish("layoutChanged", root);
-      _this.eventEmitter.publish('slotsUpdated', {slots: _this.slots});
-
-      if (_this.slots.length <= 1) {
-        _this.eventEmitter.publish('HIDE_REMOVE_SLOT');
-      } else {
-        _this.eventEmitter.publish('SHOW_REMOVE_SLOT');
-      }
-    },
-
-    split: function(targetSlot, direction) {
-      var _this = this,
-          node = jQuery.grep(_this.layout, function(node) { return node.id === targetSlot.slotID; })[0];
-      nodeIndex = node.parent ? node.parent.children.indexOf(node) : 0,
-      nodeIsNotRoot = node.parent;
-
-      function addSibling(node, indexDifference) {
-        if (nodeIsNotRoot) {
-          var siblingIndex = nodeIndex + indexDifference,
-              newSibling = _this.newNode(node.type, node);
-
-          node.parent.children.splice(siblingIndex, 0, newSibling);
-          _this.layout.push(newSibling);
-          return newSibling;
-        }
-
-        // handles the case where the root needs to be mutated.
-        node.type = node.type === 'row' ? 'column' : 'row';
-        mutateAndAdd(node, indexDifference);
-      }
-
-      function mutateAndAdd(node, indexDifference) {
-        // Locally mutate the tree to accommodate a
-        // sibling of another kind, transforming
-        // both the target node and its parent.
-        var newParent = _this.newNode(node.type, node.parent);
-
-        // Flip its type while keeping
-        // the same id.
-        node.type = node.type === 'row' ? 'column' : 'row';
-
-        // Create a new node (which will be childless)
-        // that is also a sibling of this node.
-        newSibling = _this.newNode(node.type, newParent);
-
-        // maintain array ordering.
-        newParent.children = [];
-        newParent.children.push(node); // order matters, place node first.
-        newParent.children.splice(indexDifference, 0, newSibling); // order matters, so put new sibling on one side or the other.
-        if (nodeIsNotRoot) {
-          newParent.parent = node.parent;
-          // replace the old node in its parent's child
-          // array with the new parent.
-          newParent.parent.children[nodeIndex] = newParent;
-        }
-
-        node.parent = newParent;
-        _this.layout.push(newParent, newSibling);
-      }
-
-      if (node.type === 'column') {
-        // Since it is a column:
-        //
-        // If adding to a side, simply
-        // add a sibling.
-        // Left means before, right means after.
-        if (direction === 'r' || direction === 'l') {
-          indexDifference = direction === 'r' ? 1 : 0;
-          addSibling(node, indexDifference);
-        }
-        // If adding above or below, the
-        // operation must be changed to mutating
-        // the structure.
-        // Up means before, Down means after.
-        else {
-          indexDifference = direction === 'd' ? 1 : 0;
-          mutateAndAdd(node, indexDifference);
-        }
-      } else {
-        // Since it is a row:
-        //
-        // If adding to a side, mutate the
-        // structure.
-        // Left means before, right means after.
-        if (direction === 'r' || direction === 'l') {
-          indexDifference = direction === 'r' ? 1 : 0;
-          mutateAndAdd(node, indexDifference);
-        }
-        // If adding above or below, the
-        // operations must be switched to adding
-        // a sibling.
-        // Up means before, Down means after.
-        else {
-          indexDifference = direction === 'd' ? 1 : 0;
-          addSibling(node, indexDifference);
-        }
-      }
-
-      // Recalculate the layout.
-      // The original hierarchical structure is
-      // accessible from the root node. Passing
-      // it back through the layout code will
-      // recalculate everything else needed for
-      // the redraw.
-      var root = jQuery.grep(_this.layout, function(node) { return !node.parent;})[0];
-      _this.layoutDescription = root;
-      _this.calculateLayout();
-
-    },
-
-    splitRight: function(targetSlot) {
-      var _this = this;
-      _this.split(targetSlot, 'r');
-    },
-
-    splitLeft: function(targetSlot) {
-      var _this = this;
-      _this.split(targetSlot, 'l');
-    },
-
-    splitUp: function(targetSlot) {
-      var _this = this;
-      _this.split(targetSlot, 'u');
-    },
-
-    splitDown: function(targetSlot) {
-      var _this = this;
-      _this.split(targetSlot, 'd');
-    },
-
-    removeNode: function(targetSlot) {
-      // de-mutate the tree structure.
-      var _this = this,
-          node = jQuery.grep(_this.layout, function(node) { return node.id === targetSlot.slotID; })[0],
-          nodeIndex = node.parent.children.indexOf(node),
-          parentIndex,
-          remainingNode,
-          root = jQuery.grep(_this.layout, function(node) { return !node.parent;})[0];
-
-      if (node.parent.children.length === 2) {
-        // de-mutate the tree without destroying
-        // the children of the remaining node,
-        // which in this case means changing their
-        // IDs.
-        node.parent.children.splice(nodeIndex,1);
-        remainingNode = node.parent.children[0];
-
-        remainingNode.parent.id = remainingNode.id;
-        delete node.parent;
-      } else if (node.parent.children.length === 1) {
-      } else {
-        // If the node is one of more than 2 siblings,
-        // simply splice it out of the parent's children
-        // array.
-        node.parent.children.splice(nodeIndex, 1);
-      }
-
-      //delete targetSlot;
-      _this.layoutDescription = root;
-      _this.calculateLayout();
-      _this.eventEmitter.publish('slotRemoved',targetSlot);
-    },
-
-    newNode: function(type, parent) {
-      if (typeof parent === 'undefined') {
-        return {
-          type: type,
-          id: $.genUUID()
-        };
-      } else {
-        return {
-          type: type,
-          id: $.genUUID(),
-          parent: parent
-        };
-      }
-    },
-
-    getSlotFromAddress: function(address) {
-      var _this = this;
-      return _this.slots.filter(function(slot) {
-        return slot.layoutAddress === address;
-      })[0];
-    },
-
-    resetLayout: function(layoutDescription) {
-      this.layoutDescription = layoutDescription;
-      this.calculateLayout(true);
-      this.placeWindows();
-    },
-
-    placeWindows: function() {
-      // take the windows array and place
-      // as many windows into places as can
-      // fit.
-      var _this = this,
-          deletedWindows;
-
-      if (_this.windows.length > _this.slots.length) {
-        // This issues the REMOVE_WINDOW action for
-        // the earliest windows for which a slot will
-        // not be available after the layout changes.
-        //
-        // We use slice, not splice, here because it is
-        // non-destructive. The actual state mutation will
-        // be handled in the action callback, since only
-        // actions should be allowed to mutate global state.
-        _this.windows.slice(0, _this.windows.length -_this.slots.length)
-          .forEach(function(removedWindow){
-            _this.eventEmitter.publish('REMOVE_WINDOW', removedWindow.id);
-          });
-      }
-
-      _this.windows.forEach(function(window) {
-        var slot = _this.getAvailableSlot();
-        slot.window = window;
-
-        window.update({
-          id: window.id,
-          slotAddress: slot.layoutAddress,
-          state: _this.state,
-          appendTo: slot.element,
-          canvasID: window.canvasID,
-          viewType: window.viewType
-        });
-      });
-    },
-
-    getAvailableSlot: function() {
-      return this.slots.filter(function(slot) {
-        return !slot.window;
-      })[0];
-    },
-
-    clearSlot: function(slotId) {
-      if (this.slots[slotId].windowElement) {
-        this.slots[slotId].windowElement.remove();
-      }
-      this.slots[slotId].window = null;
-    },
-
-    addItem: function(slot) {
-      var _this = this;
-      this.focusedSlot = slot;
-      _this.eventEmitter.publish('TOGGLE_LOAD_WINDOW');
-    },
-
-    addWindow: function(windowConfig) {
-      // Windows can be added from a config,
-      // from a saved state, (in both those cases they are in the form of "windowObjects")
-      // from the workspace windows list after a grid layout change,
-      // from the manifests panel in image mode,
-      // or from the manifests panel in thumbnail mode.
-      var _this = this,
-          newWindow,
-          targetSlot;
-
-      // toggles the other top-level panels closed and focuses the
-      // workspace. For instance, after selecting an object from the
-      // manifestPanel.
-      _this.eventEmitter.publish('TOGGLE_OVERLAYS_FALSE');
-
-      if (windowConfig.slotAddress) {
-        targetSlot = _this.getSlotFromAddress(windowConfig.slotAddress);
-      } else {
-        targetSlot = _this.focusedSlot || _this.getAvailableSlot();
-      }
-
-      windowConfig.appendTo = targetSlot.element;
-      windowConfig.state = _this.state;
-      windowConfig.eventEmitter = _this.eventEmitter;
-
-      if (targetSlot.window) {
-        _this.eventEmitter.publish('REMOVE_WINDOW', targetSlot.window.id);
-      }
-
-      windowConfig.slotAddress = targetSlot.layoutAddress;
-      windowConfig.id = windowConfig.id || $.genUUID();
-
-      _this.eventEmitter.publish("windowSlotAdded", {id: windowConfig.id, slotAddress: windowConfig.slotAddress});
-
-      //extend the windowConfig with the default settings
-      var mergedConfig = jQuery.extend(true, {}, _this.state.getStateProperty('windowSettings'), windowConfig);
-
-      //"rename" some keys in the merged object to align settings parameters with window parameters
-      if (mergedConfig.hasOwnProperty('loadedManifest')) {
-        mergedConfig.manifest = _this.state.getStateProperty('manifests')[mergedConfig.loadedManifest];
-        delete mergedConfig.loadedManifest;
-      }
-
-      if (mergedConfig.hasOwnProperty('bottomPanel')) {
-        mergedConfig.bottomPanelAvailable = mergedConfig.bottomPanel;
-        delete mergedConfig.bottomPanel;
-      }
-
-      if (mergedConfig.hasOwnProperty('sidePanel')) {
-        mergedConfig.sidePanelAvailable = mergedConfig.sidePanel;
-        delete mergedConfig.sidePanel;
-      }
-
-      if (windowConfig.state.currentConfig.hasOwnProperty('sidePanelOptions')) {
-        jQuery.extend(
-          mergedConfig.sidePanelOptions,
-          windowConfig.state.currentConfig.sidePanelOptions
-        );
-      }
-
-      if (mergedConfig.hasOwnProperty('overlay')) {
-        mergedConfig.overlayAvailable = mergedConfig.overlay;
-        delete mergedConfig.overlay;
-      }
-      newWindow = new $.Window(mergedConfig);
-      _this.windows.push(newWindow);
-
-      targetSlot.window = newWindow;
-
-      _this.eventEmitter.publish("windowAdded", {id: windowConfig.id, slotAddress: windowConfig.slotAddress});
-
-  },
-
-  removeWindow: function(windowId) {
-    var _this = this;
-
-    _this.windows = _this.windows.filter(function(window) {
-      return window.id !== windowId;
-    });
-    _this.eventEmitter.publish('windowRemoved', windowId);
-  }
-};
-}(Mirador));
diff --git a/js/src/workspaces/slot.js b/js/src/workspaces/slot.js
deleted file mode 100644
index 21dd5670b8d8ba7625390bdd0afbeab2e1848ad4..0000000000000000000000000000000000000000
--- a/js/src/workspaces/slot.js
+++ /dev/null
@@ -1,307 +0,0 @@
-(function($) {
-
-  $.Slot = function(options) {
-
-    jQuery.extend(true, this, {
-      workspaceSlotCls: 'slot',
-      slotID:           null,
-      layoutAddress:    null,
-      focused:          null,
-      appendTo:         null,
-      window:           null,
-      windowElement:    null,
-      state:            null,
-      eventEmitter:     null
-    }, options);
-
-    this.init();
-
-  };
-
-  $.Slot.prototype = {
-    init: function () {
-      this.events = [];
-      this.element = jQuery(this.template({
-        workspaceSlotCls: this.workspaceSlotCls,
-        slotID: this.slotId
-      }));
-      this.element.appendTo(this.appendTo);
-
-      this.bindEvents();
-      this.listenForActions();
-    },
-
-    listenForActions: function () {
-      var _this = this;
-
-      this.events = [
-        _this.eventEmitter.subscribe('slotRemoved', function (event, slot) {
-          if (_this.slotID === slot.slotID) {
-            _this.clearSlot();
-          }
-        }),
-
-        _this.eventEmitter.subscribe('layoutChanged', function (event, layoutRoot) {
-          // Must reset the slotAddress of the window.
-          if (_this.window) {
-            _this.window.slotAddress = _this.layoutAddress;
-            _this.eventEmitter.publish('windowSlotAddressUpdated', {
-              id: _this.window.id,
-              slotAddress: _this.window.slotAddress
-            });
-          }
-        }),
-
-        _this.eventEmitter.subscribe('HIDE_REMOVE_SLOT', function (event) {
-          _this.element.find('.remove-slot-option').hide();
-          if (_this.window) {
-            _this.eventEmitter.publish('HIDE_REMOVE_OBJECT.' + _this.window.id);
-          }
-        }),
-
-        _this.eventEmitter.subscribe('SHOW_REMOVE_SLOT', function (event) {
-          _this.element.find('.remove-slot-option').show();
-          if (_this.window) {
-            _this.eventEmitter.publish('SHOW_REMOVE_OBJECT.' + _this.window.id);
-          }
-        }),
-
-        _this.eventEmitter.subscribe('ADD_ITEM_FROM_WINDOW', function (event, id) {
-          if (_this.window && _this.window.id === id) {
-            _this.addItem();
-          }
-        }),
-
-        _this.eventEmitter.subscribe('REMOVE_SLOT_FROM_WINDOW', function (event, id) {
-          if (_this.window && _this.window.id === id) {
-            _this.eventEmitter.publish('REMOVE_NODE', _this);
-          }
-        }),
-
-        _this.eventEmitter.subscribe('SPLIT_RIGHT_FROM_WINDOW', function (event, id) {
-          if (_this.window && _this.window.id === id) {
-            _this.eventEmitter.publish('SPLIT_RIGHT', _this);
-          }
-        }),
-
-        _this.eventEmitter.subscribe('SPLIT_LEFT_FROM_WINDOW', function (event, id) {
-          if (_this.window && _this.window.id === id) {
-            _this.eventEmitter.publish('SPLIT_LEFT', _this);
-          }
-        }),
-
-        _this.eventEmitter.subscribe('SPLIT_DOWN_FROM_WINDOW', function (event, id) {
-          if (_this.window && _this.window.id === id) {
-            _this.eventEmitter.publish('SPLIT_DOWN', _this);
-          }
-        }),
-
-        _this.eventEmitter.subscribe('SPLIT_UP_FROM_WINDOW', function (event, id) {
-          if (_this.window && _this.window.id === id) {
-            _this.eventEmitter.publish('SPLIT_UP', _this);
-          }
-        })];
-    },
-
-    bindEvents: function() {
-      var _this = this,
-          dropTarget = this.element.find('.dropMask');
-
-      this.element.find('.addItemLink').on('click', function(){ _this.addItem(); });
-      this.element.find('.remove-slot-option').on('click', function(){
-        _this.eventEmitter.publish('REMOVE_NODE', _this);
-      });
-      this.element.on('dragover', function(e) {
-        e.preventDefault();
-        dropTarget.show();
-      });
-      dropTarget.on('dragenter', function(e) {
-        e.preventDefault();
-        _this.element.addClass('draggedOver');
-      });
-      dropTarget.on('dragleave', function(e) {
-        e.preventDefault();
-        _this.element.removeClass('draggedOver');
-        dropTarget.hide();
-      });
-      this.element.on('drop', function(e) {
-        _this.dropItem(e);
-      });
-    },
-
-    dropItem: function(e) {
-      var _this = this;
-
-      e.preventDefault();
-      var text_url = e.originalEvent.dataTransfer.getData("text/plain");
-      if (text_url) {
-        _this.handleDrop(text_url);
-      } else {
-        e.originalEvent.dataTransfer.items[0].getAsString(function(url) {
-          _this.handleDrop(url);
-        });
-      }
-    },
-
-    handleDrop: function(url) {
-        var _this = this;
-
-        url = url || text_url;
-        var manifestUrl = $.getQueryParams(url).manifest || url,
-            collectionUrl = $.getQueryParams(url).collection,
-            canvasId = $.getQueryParams(url).canvas,
-            imageInfoUrl = $.getQueryParams(url).image,
-            windowConfig;
-
-        if (typeof _this.state.getStateProperty('manifests')[manifestUrl] !== 'undefined') {
-          windowConfig = {
-            manifest: _this.state.getStateProperty('manifests')[manifestUrl],
-            slotAddress: _this.getAddress()
-          };
-
-          if (canvasId) {
-            // If the canvasID is defined, we need to both add
-            // it to the windowConfig and tell it to open in
-            // image view. If we don't specify the focus, the
-            // window will open in thumbnail view with the
-            // chosen page highlighted.
-            windowConfig.canvasID = canvasId;
-            windowConfig.viewType = 'ImageView';
-          }
-
-          _this.eventEmitter.publish('ADD_WINDOW', windowConfig);
-
-        }
-
-        else if (typeof imageInfoUrl !== 'undefined') {
-          if (!_this.state.getStateProperty('manifests')[imageInfoUrl]) {
-            _this.eventEmitter.publish('ADD_MANIFEST_FROM_URL', [imageInfoUrl, "(Added from URL)"]);
-          }
-        }
-        else if (typeof collectionUrl !== 'undefined'){
-          jQuery.getJSON(collectionUrl).done(function (data, status, jqXHR) {
-            if (data.hasOwnProperty('manifests')){
-              jQuery.each(data.manifests, function (ci, mfst) {
-                if (!_this.state.getStateProperty('manifests')[imageInfoUrl]) {
-                  _this.eventEmitter.publish('ADD_MANIFEST_FROM_URL', [mfst['@id'], "(Added from URL)"]);
-                }
-              });
-            } else if (data.hasOwnProperty('members')){
-              jQuery.each(data.members, function (ci, mfst) {
-                if (!_this.state.getStateProperty('manifests')[imageInfoUrl]) {
-                  _this.eventEmitter.publish('ADD_MANIFEST_FROM_URL', [mfst['@id'], "(Added from URL)"]);
-                }
-              });
-            }
-          });
-
-          //TODO:
-          //this works;
-          //but you might want to check if some "publish" action would be better
-          _this.addItem();
-
-        }
-        else {
-          if (!_this.state.getStateProperty('manifests')[imageInfoUrl]) {
-            _this.eventEmitter.publish('ADD_MANIFEST_FROM_URL', [manifestUrl, "(Added from URL)"]);
-          }
-        }
-
-        _this.eventEmitter.subscribe('manifestReceived', function(event, manifest) {
-          var windowConfig;
-          if (manifest.jsonLd['@id'] === manifestUrl || manifest.jsonLd['@id']+'/info.json' === imageInfoUrl) {
-            // There are many manifests that may be received
-            // while we are waiting for this one, so we
-            // need to make sure the event actually refers to the
-            // manifest we've just dropped.
-
-            windowConfig = {
-              manifest: manifest,
-              slotAddress: _this.getAddress()
-            };
-
-            if (manifest.jsonLd['@id']+'/info.json' === imageInfoUrl) {
-              // If this was added from a naked info.json, pick the
-              // first (and only) page from the synthetic manifest.
-              canvasId = manifest.jsonLd.sequences[0].canvases[0]['@id'];
-            }
-
-            if (canvasId) {
-              // If the canvasID is defined, we need to both add
-              // it to the windowConfig and tell it to open in
-              // image view. If we don't specify the focus, the
-              // window will open in thumbnail view with the
-              // chosen page highlighted.
-              windowConfig.canvasID = canvasId;
-              windowConfig.viewType = 'ImageView';
-            }
-
-            _this.eventEmitter.publish('ADD_WINDOW', windowConfig);
-          }
-        });
-    },
-
-    destroyEvents:function(){
-      var _this = this;
-      this.events.forEach(function(event){
-        _this.eventEmitter.unsubscribe(event.name,event.handler);
-      });
-    },
-
-    clearSlot: function () {
-      this.destroyEvents();
-
-      // @TODO This is not a task that slots should fulfil
-      // This prevents the save controller
-      // from attempting to re-save the window
-      // after having already removed it.
-      if (this.window) {
-        delete this.window;
-      }
-    },
-
-    getAddress: function() {
-      return this.layoutAddress;
-    },
-
-    addItem: function() {
-      var _this = this;
-      _this.focused = true;
-
-      _this.eventEmitter.publish('ADD_SLOT_ITEM', _this);
-    },
-
-    // template should be based on workspace type
-    template: $.Handlebars.compile([
-                                 '<div id="{{slotID}}" class="{{workspaceSlotCls}}">',
-                                 '<a class="remove-slot-option"><i class="fa fa-times fa-lg fa-fw"></i> {{t "close"}}</a>',
-                                 '<div class="slotIconContainer">',
-                                 // '<a href="javascript:;" class="mirador-btn mirador-icon-window-menu" title="Replace object"><i class="fa fa-table fa-lg fa-fw"></i>',
-                                 // '<ul class="dropdown slot-controls">',
-                                 // '<li class="new-object-option"><i class="fa fa-plus-square fa-lg fa-fw"></i> {{t "newObject"}}</li>',
-                                 // '<li class="remove-object-option"><i class="fa fa-times fa-lg fa-fw"></i> {{t "close"}}</li>',
-                                 // '<li class="add-slot-right"><i class="fa fa-caret-square-o-right fa-lg fa-fw"></i> {{t "addSlotRight"}}</li>',
-                                 // '<li class="add-slot-left"><i class="fa fa-caret-square-o-left fa-lg fa-fw"></i> {{t "addSlotLeft}}</li>',
-                                 // '<li class="add-slot-above"><i class="fa fa-caret-square-o-up fa-lg fa-fw"></i> {{t "addSlotAbove"}}</li>',
-                                 // '<li class="add-slot-below"><i class="fa fa-caret-square-o-down fa-lg fa-fw"></i> {{t "addSlotBelow"}}</li>',
-                                 // '</ul>',
-                                 // '</a>',
-                                 // accessbility-wise it's really bad practice to have h1 tags be used like this
-                                 // most screen reader users get a sense of where they are based on header tags
-                                 // if these are merely h1 tags for aesthetic purposes, it might be better to make them specific classes
-                                '<h1 class="plus" role="presentation" aria-label="Add item using Link">',
-                                    '<span>+</span>',
-                                '<div class="dropIcon">',
-                                    '<i class="fa fa-level-down"></i>',
-                                '</div>',
-                                '</h1>',
-                                 '<h1 class="addItemText">{{t "addItem"}}</h1>',
-                                 '<h1 class="dropMeMessage">{{t "dropToLoad"}}</h1>',
-                                 '</div>',
-                                 '<a class="addItemLink" role="button" aria-label="Add item"></a>',
-      '<a class="dropMask"></a>',
-                                 '</div>'
-    ].join(''))
-  };
-
-}(Mirador));
diff --git a/js/src/workspaces/window.js b/js/src/workspaces/window.js
deleted file mode 100644
index 9f531f294eb479b1848d29e8f05f6115ca888d99..0000000000000000000000000000000000000000
--- a/js/src/workspaces/window.js
+++ /dev/null
@@ -1,1157 +0,0 @@
-(function($) {
-
-  $.Window = function(options) {
-
-    jQuery.extend(this, {
-      state:             null,
-      eventEmitter:      null,
-      element:           null,
-      scrollImageRatio:  0.9,
-      canvasID:          null,
-      currentCanvasModel: null,
-      focusImages:       [],
-      imagesList:        null,
-      canvasModels:      null,
-      annotationsList:   [],
-      endpoint:          null,
-      currentImageMode:  'ImageView',
-      imageModes:        ['ImageView', 'BookView'],
-      originalImageModes:['ImageView', 'BookView'],
-      focuses:           ['ThumbnailsView', 'ImageView', 'ScrollView', 'BookView'],
-      focusModules:           {'ThumbnailsView': null, 'ImageView': null, 'ScrollView': null, 'BookView': null},
-      focusOverlaysAvailable: {
-        'ThumbnailsView': {
-          'overlay' : {'MetadataView' : false},
-          'bottomPanel' : {'' : false}
-        },
-        'ImageView': {
-          'overlay' : {'MetadataView' : false},
-          'bottomPanel' : {'ThumbnailsView' : true}
-        },
-        'ScrollView': {
-          'overlay' : {'MetadataView' : false},
-          'bottomPanel' : {'' : false}
-        },
-        'BookView': {
-          'overlay' : {'MetadataView' : false},
-          'bottomPanel' : {'ThumbnailsView' : true}
-        }
-      },
-      windowOptions: null,
-      sidePanel: null, //the actual module for the side panel
-      annotationsAvailable: {
-        'ThumbnailsView' : false,
-        'ImageView' : true,
-        'ScrollView' : false,
-        'BookView' : false
-      },
-      bottomPanel: null, //the actual module for the bottom panel
-      overlay: null,
-      annoEndpointAvailable : false,
-      iconClasses: {
-        "ImageView" : "fa fa-photo fa-lg fa-fw",
-        "BookView" : "fa fa-columns fa-lg fa-fw",
-        "ScrollView" : "fa fa-ellipsis-h fa-lg fa-fw",
-        "ThumbnailsView" : "fa fa-th fa-lg fa-rotate-90 fa-fw"
-      },
-      userButtons: null
-    }, options);
-
-    this.init();
-    this.bindAnnotationEvents();
-
-  };
-
-  $.Window.prototype = {
-    init: function () {
-      var _this = this,
-          manifest = _this.manifest.jsonLd,
-          focusState = _this.viewType,
-          templateData = {};
-
-      this.events = [];
-
-      //make sure annotations list is cleared out when changing objects within window
-      while(_this.annotationsList.length > 0) {
-        _this.annotationsList.pop();
-      }
-      //unsubscribe from stale events as they will be updated with new module calls
-      _this.eventEmitter.unsubscribe(('currentCanvasIDUpdated.' + _this.id));
-      //make sure annotation-related events are destroyed so things work properly as we switch between objects
-      _this.eventEmitter.publish('DESTROY_EVENTS.'+_this.id);
-
-      _this.removeBookView();
-
-      this.viewingDirection = _this.manifest.getViewingDirection();
-      //reset imagemodes and then remove any imageModes that are not available as a focus
-      //add getting rtl value
-      if(this.viewingDirection == 'right-to-left'){
-        _this.vDirectionStatus = 'rtl';
-      }
-      else{
-        _this.vDirectionStatus = '';
-      }
-      this.imageModes = this.originalImageModes;
-      this.imageModes = jQuery.map(this.imageModes, function(value, index) {
-        if (jQuery.inArray(value, _this.focuses) === -1) return null;
-        return value;
-      });
-
-      _this.imagesList = _this.manifest.getCanvases();
-      if (_this.imagesList.length === 1) {
-        _this.bottomPanelVisible = false;
-      }
-      if (!_this.canvasID) {
-        // By default, the first in the sequence is the selected Canvas
-        _this.canvasID = _this.imagesList[0]['@id'];
-      }
-      _this.canvases = _this.buildCanvasesIndex(_this.manifest.getCanvases());
-      if(_this.vDirectionStatus == 'rtl'){
-        _this.imagesListLtr = _this.imagesList.concat();
-        _this.imagesListRtl = _this.imagesList.concat();
-        _this.imagesListRtl.reverse();
-      }
-      else{
-        _this.imagesListRtl = [];
-        _this.imagesListLtr = [];
-      }
-      this.annoEndpointAvailable = !jQuery.isEmptyObject(_this.state.getStateProperty('annotationEndpoint'));
-      if (!this.canvasControls.annotations.annotationLayer) {
-        this.canvasControls.annotations.annotationCreation = false;
-        this.annoEndpointAvailable = false;
-        this.canvasControls.annotations.annotationState = 'off';
-      }
-      _this.getAnnotations();
-
-      // if manipulationLayer is true,  but all individual options are set to false, set manipulationLayer to false
-      if (this.canvasControls.imageManipulation.manipulationLayer) {
-        this.canvasControls.imageManipulation.manipulationLayer = !Object.keys(this.canvasControls.imageManipulation.controls).every(function(element, index, array) {
-          return _this.canvasControls.imageManipulation.controls[element] === false;
-        });
-      }
-
-      //for use by SidePanel, which needs to know if the current view can have the annotations tab
-      _this.eventEmitter.publish(('windowUpdated'), {
-        id: _this.id,
-        annotationsAvailable: this.annotationsAvailable
-      });
-
-      //check config
-      if (typeof this.bottomPanelAvailable !== 'undefined' && !this.bottomPanelAvailable) {
-        jQuery.each(this.focusOverlaysAvailable, function(key, value) {
-          _this.focusOverlaysAvailable[key].bottomPanel = {'' : false};
-        });
-      }
-
-      templateData.sidePanel = this.sidePanelAvailable;
-      if (this.sidePanelAvailable) {
-        templateData.sidePanel = !Object.keys(this.sidePanelOptions).every(function(element, index, array) {
-          return _this.sidePanelOptions[element] === false;
-        });
-      }
-      if (typeof this.overlayAvailable !== 'undefined' && !this.overlayAvailable) {
-        jQuery.each(this.focusOverlaysAvailable, function(key, value) {
-          _this.focusOverlaysAvailable[key].overlay = {'' : false};
-        });
-      } else {
-        templateData.MetadataView = true;
-      }
-
-      //determine if any buttons should be hidden in template
-      templateData.iconClasses = {};
-      jQuery.each(this.focuses, function(index, value) {
-        templateData[value] = true;
-        templateData.iconClasses[value] = _this.iconClasses[value];
-      });
-      templateData.title = $.JsonLd.getTextValue(manifest.label);
-      templateData.displayLayout = this.displayLayout;
-      templateData.layoutOptions = this.layoutOptions;
-      // if displayLayout is true,  but all individual options are set to false, set displayLayout to false
-      if (this.displayLayout) {
-        templateData.displayLayout = !Object.keys(this.layoutOptions).every(function(element, index, array) {
-          return _this.layoutOptions[element] === false;
-        });
-      }
-      templateData.currentFocusClass = _this.iconClasses[_this.viewType];
-      templateData.showFullScreen = _this.fullScreen;
-      templateData.userButtons = _this.userButtons;
-      _this.element = jQuery(this.template(templateData)).appendTo(_this.appendTo);
-      this.element.find('.manifest-info .mirador-tooltip').each(function() {
-        jQuery(this).qtip({
-          content: {
-            text: jQuery(this).attr('title'),
-          },
-          position: {
-            my: 'top center',
-            at: 'bottom center',
-            adjust: {
-              method: 'shift',
-              y: -11
-            },
-            container: _this.element,
-            viewport: true
-          },
-          style: {
-            classes: 'qtip-dark qtip-shadow qtip-rounded'
-          }
-        });
-      });
-      //TODO: this needs to switch the position when it is a right to left manifest
-      this.element.find('.manifest-info .window-manifest-title').qtip({
-        content: {
-          text: jQuery(this).attr('title')
-        },
-        position: {
-          my: 'top center',
-          at: 'bottom left',
-          adjust: {
-            method: 'shift',
-            x: 20,
-            y: 1
-          },
-          container: _this.element,
-          viewport: true
-        },
-        style: {
-          classes: 'qtip-dark qtip-shadow qtip-rounded'
-        }
-      });
-      _this.eventEmitter.publish('WINDOW_ELEMENT_UPDATED', {windowId: _this.id, element: _this.element});
-
-      //clear any existing objects
-      _this.clearViews();
-      _this.clearPanelsAndOverlay();
-
-      //window needs to listen for any events before it finishes building out the widgets, in case they publish anything
-      this.listenForActions();
-
-      //attach view and toggle view, which triggers the attachment of panels or overlays
-      _this.bindNavigation();
-      switch(focusState) {
-      case 'ThumbnailsView':
-        _this.toggleThumbnails(_this.canvasID);
-        break;
-      case 'ImageView':
-        _this.toggleImageView(_this.canvasID);
-        break;
-      case 'BookView':
-        _this.toggleBookView(_this.canvasID);
-        break;
-      case 'ScrollView':
-        _this.toggleScrollView(_this.canvasID);
-        break;
-      default:
-        break;
-      }
-
-      if (_this.state.getSlots().length <= 1) {
-        _this.element.find('.remove-object-option').hide();
-      }
-
-      this.bindEvents();
-
-      this.bottomPanelVisibility(this.bottomPanelVisible);
-      this.sidePanelVisibility(this.sidePanelVisible, '0s');
-
-      this.events.push(this.eventEmitter.subscribe('windowRemoved',function(event,id){
-        if(_this.id === id){
-          _this.destroy();
-        }
-      }));
-    },
-
-    buildCanvasesIndex: function(canvases) {
-      var _this = this;
-
-      return canvases.reduce(function(canvasesIndex, canvas, index) {
-        // We want to sign all events coming out of the
-        // canvas with the windowID.
-        var canvasEmitter = new $.EventEmitter();
-
-        // Provide internally-required method proxies.
-        //
-        // Sadly, the emitter we use in Mirador
-        // does not have the "standard" node.js
-        // eventEmitter interface. So we need to
-        // alias or proxy its functions here.
-        //
-        // We use .bind(emitter) to ensure its
-        // internal "this"es continue to refer
-        // to itself. "this" sinks ships.
-        canvasEmitter.on = canvasEmitter.subscribe.bind(canvasEmitter);
-        canvasEmitter.off = canvasEmitter.unsubscribe.bind(canvasEmitter);
-        canvasEmitter.emit = canvasEmitter.publish.bind(canvasEmitter);
-
-        // Here we wrap the internal generic eventedCanvas events
-        // in events signed for this window.
-        canvasEmitter.subscribe('image-status-updated', function(event, imageResource) {
-          _this.eventEmitter.publish('image-status-updated' + _this.id, imageResource);
-        });
-        canvasEmitter.subscribe('image-needed', function(event, imageResource) {
-          _this.eventEmitter.publish('image-needed' + _this.id, imageResource);
-        });
-        canvasEmitter.subscribe('image-show', function(event, imageResource) {
-          _this.eventEmitter.publish('image-show' + _this.id, imageResource);
-        });
-        canvasEmitter.subscribe('image-hide', function(event, imageResource) {
-          _this.eventEmitter.publish('image-hide' + _this.id, imageResource);
-        });
-        canvasEmitter.subscribe('image-removed', function(event, imageResource) {
-          _this.eventEmitter.publish('image-removed' + _this.id, imageResource);
-        });
-        canvasEmitter.subscribe('image-opacity-updated', function(event, imageResource) {
-          _this.eventEmitter.publish('image-opacity-updated' + _this.id, imageResource);
-        });
-
-        var eventedCanvas = new iiifEventedCanvas({
-          canvas: canvas,
-          index: index,
-          dispatcher: canvasEmitter // Each canvas gets its own emitter
-        });
-        canvasesIndex[canvas['@id']] = eventedCanvas;
-        return canvasesIndex;
-      }, {});
-      // Now you can get canvases with window.canvases[CanvasID]
-    },
-
-    destroy: function(){
-      var _this = this;
-      this.events.forEach(function(event){
-        _this.eventEmitter.unsubscribe(event.name,event.handler);
-      });
-
-      this.element.remove();
-    },
-
-    update: function(options) {
-      jQuery.extend(this, options);
-      if (this.windowOptions) {
-        this.windowOptions.osdBounds = null;
-        this.windowOptions.zoomLevel = null;
-      }
-      this.init();
-    },
-
-    // reset whether BookView is available every time as a user might switch between paged and non-paged objects within a single slot/window
-    removeBookView: function() {
-      var _this = this;
-      this.focuses = this.availableViews;
-      var manifest = this.manifest.jsonLd;
-      if (manifest.sequences[0].viewingHint) {
-        if (manifest.sequences[0].viewingHint.toLowerCase() !== 'paged') {
-          //disable bookview for this object because it's not a paged object
-          this.focuses = jQuery.grep(this.focuses, function(value) {
-            return value !== 'BookView';
-          });
-        }
-      }
-    },
-
-    listenForActions: function() {
-      var _this = this;
-      _this.eventEmitter.subscribe('bottomPanelSet.' + _this.id, function(event, visible) {
-        var panel = _this.element.find('.bottomPanel');
-        if (visible === true) {
-          panel.css({transform: 'translateY(0)'});
-        } else {
-          panel.css({transform: 'translateY(100%)'});
-        }
-      });
-
-      _this.events.push(_this.eventEmitter.subscribe('HIDE_REMOVE_OBJECT.' + _this.id, function(event) {
-        _this.element.find('.remove-object-option').hide();
-      }));
-
-      _this.events.push(this.eventEmitter.subscribe('SHOW_REMOVE_OBJECT.' + _this.id, function(event) {
-        _this.element.find('.remove-object-option').show();
-      }));
-
-      _this.events.push(_this.eventEmitter.subscribe('sidePanelStateUpdated.' + this.id, function(event, state) {
-        if (state.open) {
-          _this.element.find('.mirador-icon-toc').addClass('selected');
-          _this.element.find('.view-container').removeClass('maximised');
-        } else {
-          _this.element.find('.mirador-icon-toc').removeClass('selected');
-          _this.element.find('.view-container').addClass('maximised');
-        }
-      }));
-
-      // TODO: temporary logic to minimize side panel if only tab is toc and toc is empty
-      _this.events.push(_this.eventEmitter.subscribe('sidePanelVisibilityByTab.' + this.id, function(event, visible) {
-        _this.sidePanelVisibility(visible, '0s');
-      }));
-
-      _this.events.push(_this.eventEmitter.subscribe('SET_CURRENT_CANVAS_ID.' + this.id, function(event, canvasID) {
-        if (typeof canvasID === "string") {
-          _this.setCurrentCanvasID(canvasID);
-        } else {
-          if (_this.canvasID !== canvasID.canvasID) {
-            _this.setCurrentCanvasID(canvasID.canvasID);
-          }
-          _this.eventEmitter.publish('fitBounds.' + _this.id, canvasID.bounds);
-        }
-      }));
-
-      _this.events.push(_this.eventEmitter.subscribe('REMOVE_CLASS.' + this.id, function(event, className) {
-        _this.element.find('.view-container').removeClass(className);
-      }));
-
-      _this.events.push(_this.eventEmitter.subscribe('ADD_CLASS.' + this.id, function(event, className) {
-        _this.element.find('.view-container').addClass(className);
-      }));
-
-      _this.events.push(_this.eventEmitter.subscribe('UPDATE_FOCUS_IMAGES.' + this.id, function(event, images) {
-        _this.updateFocusImages(images.array);
-      }));
-
-      _this.events.push(_this.eventEmitter.subscribe('HIDE_ICON_TOC.' + this.id, function(event) {
-        _this.element.find('.mirador-icon-toc').hide();
-      }));
-
-      _this.events.push(_this.eventEmitter.subscribe('SHOW_ICON_TOC.' + this.id, function(event) {
-        _this.element.find('.mirador-icon-toc').show();
-      }));
-
-      _this.events.push(_this.eventEmitter.subscribe('SET_BOTTOM_PANEL_VISIBILITY.' + this.id, function(event, visibility) {
-        if (typeof visibility !== 'undefined' && visibility !== null) {
-          _this.bottomPanelVisibility(visibility);
-        } else {
-          _this.bottomPanelVisibility(_this.bottomPanelVisible);
-        }
-      }));
-
-      _this.events.push(_this.eventEmitter.subscribe('TOGGLE_BOTTOM_PANEL_VISIBILITY.' + this.id, function(event) {
-        var visible = !_this.bottomPanelVisible;
-        _this.bottomPanelVisibility(visible);
-      }));
-
-      _this.events.push(_this.eventEmitter.subscribe('DISABLE_WINDOW_FULLSCREEN', function(event) {
-        _this.element.find('.mirador-osd-fullscreen').hide();
-      }));
-
-      _this.events.push(_this.eventEmitter.subscribe('ENABLE_WINDOW_FULLSCREEN', function(event) {
-        _this.element.find('.mirador-osd-fullscreen').show();
-      }));
-    },
-
-    bindEvents: function() {
-      var _this = this;
-
-      //this event should trigger from layout
-      jQuery(window).resize($.debounce(function(){
-        if (_this.focusModules.ScrollView) {
-          var containerHeight = _this.element.find('.view-container').height();
-          var triggerShow = false;
-          if (_this.viewType === "ScrollView") {
-            triggerShow = true;
-          }
-          _this.focusModules.ScrollView.reloadImages(Math.floor(containerHeight * _this.scrollImageRatio), triggerShow);
-        }
-      }, 300));
-
-      this.element.find('.mirador-osd-fullscreen').on('click', function() {
-        if ($.fullscreenElement()) {
-          $.exitFullscreen();
-        } else {
-          $.enterFullscreen(_this.element[0]);
-        }
-      });
-
-      jQuery(document).on("webkitfullscreenchange mozfullscreenchange fullscreenchange", function() {
-        _this.toggleFullScreen();
-      });
-
-    },
-
-    bindAnnotationEvents: function() {
-      var _this = this;
-      _this.eventEmitter.subscribe('annotationCreated.'+_this.id, function(event, oaAnno, eventCallback) {
-        var annoID;
-        //first function is success callback, second is error callback
-        _this.endpoint.create(oaAnno, function(data) {
-          //the success callback expects the OA annotation be returned
-          annoID = String(data['@id']); //just in case it returns a number
-          _this.annotationsList.push(data);
-          _this.eventEmitter.publish('ANNOTATIONS_LIST_UPDATED', {windowId: _this.id, annotationsList: _this.annotationsList});
-          //anything that depends on the completion of other bits, call them now
-          eventCallback();
-        },
-                              function() {
-                                //provide useful feedback to user
-                                console.log("There was an error saving this new annotation");
-                              });
-      });
-
-      _this.eventEmitter.subscribe('annotationUpdated.'+_this.id, function(event, oaAnno) {
-        //first function is success callback, second is error callback
-        _this.endpoint.update(oaAnno, function(data) {
-          jQuery.each(_this.annotationsList, function(index, value) {
-            if (value['@id'] === data['@id']) {
-              _this.annotationsList[index] = data;
-              return false;
-            }
-          });
-          _this.eventEmitter.publish('ANNOTATIONS_LIST_UPDATED', {windowId: _this.id, annotationsList: _this.annotationsList});
-        },
-                              function() {
-                                console.log("There was an error updating this annotation");
-                              });
-      });
-
-      _this.eventEmitter.subscribe('annotationDeleted.'+_this.id, function(event, annoId) {
-        //remove from endpoint
-        //first function is success callback, second is error callback
-        _this.endpoint.deleteAnnotation(annoId, function() {
-          _this.annotationsList = jQuery.grep(_this.annotationsList, function(e){ return e['@id'] !== annoId; });
-          _this.eventEmitter.publish(('removeOverlay.' + _this.id), annoId);
-          _this.eventEmitter.publish('ANNOTATIONS_LIST_UPDATED', {windowId: _this.id, annotationsList: _this.annotationsList});
-        },
-                                        function() {
-                                          // console.log("There was an error deleting this annotation");
-                                        });
-      });
-
-      _this.eventEmitter.subscribe('updateAnnotationList.'+_this.id, function(event) {
-        while(_this.annotationsList.length > 0) {
-          _this.annotationsList.pop();
-        }
-        _this.getAnnotations();
-      });
-    },
-
-    clearViews: function() {
-      var _this = this;
-      jQuery.each(_this.focusModules, function(key, value) {
-        _this.focusModules[key] = null;
-      });
-    },
-
-    clearPanelsAndOverlay: function() {
-      this.sidePanel = null;
-      this.bottomPanel = null;
-      this.overlay = null;
-    },
-
-    // only panels and overlay available to this view, make rest hidden while on this view
-    updatePanelsAndOverlay: function(state) {
-      var _this = this;
-
-      jQuery.each(this.focusOverlaysAvailable[state], function(panelType, viewOptions) {
-        jQuery.each(viewOptions, function(view, displayed) {
-          //instantiate any panels that exist for this view but are still null
-          if (view !== '' && _this[panelType] === null) {
-            _this[panelType] = new $[view]({
-              manifest: _this.manifest,
-              appendTo: _this.element.find('.'+panelType),
-              state:  _this.state,
-              eventEmitter: _this.eventEmitter,
-              windowId: _this.id,
-              panel: true,
-              canvasID: _this.canvasID,
-              canvases: _this.canvases,
-              imagesList: _this.imagesList,
-              imagesListLtr: _this.imagesListLtr,
-              imagesListRtl: _this.imagesListRtl,
-              vDirectionStatus: _this.vDirectionStatus,
-              thumbInfo: {thumbsHeight: 80, listingCssCls: 'panel-listing-thumbs', thumbnailCls: 'panel-thumbnail-view'}
-            });
-          }
-
-          //refresh displayed in case TableOfContents module changed it
-          displayed = _this.focusOverlaysAvailable[state][panelType][view];
-
-          //toggle any valid panels
-          if (view !== '' && displayed) {
-            _this.togglePanels(panelType, displayed, view, state);
-          }
-
-          //hide any panels instantiated but not available to this view
-          if (view === '' && _this[panelType]) {
-            _this.togglePanels(panelType, displayed, view, state);
-          }
-
-          //lastly, adjust height for non-existent panels
-          if (view === '') {
-            _this.adjustFocusSize(panelType, displayed);
-          }
-
-        });
-      });
-
-    },
-
-    updateSidePanel: function() {
-      if (!this.sidePanelAvailable) {
-        return;
-      }
-      var _this = this,
-          tocTabAvailable = _this.sidePanelOptions.tocTabAvailable,
-          annotationsTabAvailable = _this.sidePanelOptions.annotations,
-          layersTabAvailable = _this.sidePanelOptions.layersTabAvailable,
-          searchTabAvailable = _this.sidePanelOptions.searchTabAvailable,
-          hasStructures = true;
-
-      var structures = _this.manifest.getStructures();
-      if (!structures || structures.length === 0) {
-        hasStructures = false;
-      }
-
-      if (this.sidePanel === null) {
-        this.sidePanel = new $.SidePanel({
-
-          windowId: _this.id,
-          state: _this.state,
-          eventEmitter: _this.eventEmitter,
-          appendTo: _this.element.find('.sidePanel'),
-          manifest: _this.manifest,
-          canvasID: _this.canvasID,
-          canvases: _this.canvases,
-          layersTabAvailable: layersTabAvailable,
-          tocTabAvailable: tocTabAvailable,
-          searchTabAvailable: searchTabAvailable,
-          annotationsTabAvailable: annotationsTabAvailable,
-          hasStructures: hasStructures
-
-        });
-      } else {
-        this.sidePanel.update('annotations', annotationsTabAvailable);
-      }
-    },
-
-    get: function(prop, parent) {
-      if (parent) {
-        return this[parent][prop];
-      }
-      return this[prop];
-    },
-
-    set: function(prop, value, options) {
-      if (options) {
-        this[options.parent][prop] = value;
-      } else {
-        this[prop] = value;
-      }
-    },
-
-    /*setTOCBoolean: function(boolValue) {
-     var _this = this;
-     jQuery.each(this.focusOverlaysAvailable, function(key, value) {
-     _this.focusOverlaysAvailable[key].sidePanel.TableOfContents = boolValue;
-     });
-     //remove thumbnail icon if not available for this object
-     if (!boolValue) {
-     this.element.find('.mirador-icon-toc').hide();
-     }
-     },*/
-
-    togglePanels: function(panelType, panelState, viewType, focusState) {
-      //update state in focusOverlaysAvailable
-      this.focusOverlaysAvailable[focusState][panelType][viewType] = panelState;
-      this[panelType].toggle(panelState);
-      this.adjustFocusSize(panelType, panelState);
-    },
-
-    sidePanelVisibility: function(visible, transitionDuration) {
-      var _this = this;
-      _this.sidePanelVisible = visible;
-      var tocIconElement = this.element.find('.mirador-icon-toc'),
-          sidePanelElement = this.element.find('.sidePanel'),
-          viewContainerElement = this.element.find('.view-container');
-
-      sidePanelElement.css('transition-duration', transitionDuration);
-      viewContainerElement.css('transition', transitionDuration);
-      if (visible && sidePanelElement.hasClass('minimized')) {
-        tocIconElement.addClass('selected');
-        sidePanelElement.removeClass('minimized').width(280).css('border-right', '1px solid lightgray');
-        viewContainerElement.css('margin-left', 280);
-      } else if (!visible && !sidePanelElement.hasClass('minimized')) {
-        tocIconElement.removeClass('selected');
-        viewContainerElement.css('margin-left', 0);
-        sidePanelElement.addClass('minimized').css('border', 'none').width(0);
-      }
-      _this.eventEmitter.publish(('windowUpdated'), {
-        id: _this.id,
-        sidePanelVisible: visible
-      });
-    },
-
-    bottomPanelVisibility: function(visible) {
-      var _this = this;
-      _this.bottomPanelVisible = visible;
-      _this.eventEmitter.publish(('bottomPanelSet.' + _this.id), visible);
-      _this.eventEmitter.publish(('windowUpdated'), {
-        id: _this.id,
-        bottomPanelVisible: visible
-      });
-    },
-
-    adjustFocusSize: function(panelType, panelState) {
-      if (panelType === 'bottomPanel') {
-        this.focusModules[this.viewType].adjustHeight('focus-max-height', panelState);
-      } else if (panelType === 'sidePanel') {
-        this.focusModules[this.viewType].adjustWidth('focus-max-width', panelState);
-      } else {}
-    },
-
-    toggleMetadataOverlay: function(focusState) {
-      var _this = this;
-      var currentState = this.focusOverlaysAvailable[focusState].overlay.MetadataView;
-      if (currentState) {
-        this.element.find('.mirador-icon-metadata-view').removeClass('selected');
-      } else {
-        this.element.find('.mirador-icon-metadata-view').addClass('selected');
-      }
-      //set overlay for all focus types to same value
-      jQuery.each(this.focusOverlaysAvailable, function(focusType, options) {
-        if (focusState !== focusType) {
-          this.overlay.MetadataView = !currentState;
-        }
-      });
-      //and then do toggling for current focus
-      this.togglePanels('overlay', !currentState, 'MetadataView', focusState);
-    },
-
-    toggleFocus: function(focusState, imageMode) {
-      var _this = this;
-
-      this.viewType = focusState;
-      if (imageMode && jQuery.inArray(imageMode, this.imageModes) > -1) {
-        this.currentImageMode = imageMode;
-      }
-      //set other focusStates to false (toggle to display none)
-      jQuery.each(this.focusModules, function(focusKey, module) {
-        if (module && focusState !== focusKey) {
-          module.toggle(false);
-        }
-      });
-      this.focusModules[focusState].toggle(true);
-      this.updateManifestInfo();
-      this.updatePanelsAndOverlay(focusState);
-      this.updateSidePanel();
-      _this.eventEmitter.publish("focusUpdated" + _this.id, focusState);
-      _this.eventEmitter.publish("windowUpdated", {
-        id: _this.id,
-        viewType: _this.viewType,
-        canvasID: _this.canvasID,
-        imageMode: _this.currentImageMode,
-        loadedManifest: _this.manifest.jsonLd['@id'],
-        slotAddress: _this.slotAddress,
-        canvases: _this.canvases
-      });
-    },
-
-    toggleThumbnails: function(canvasID) {
-      this.canvasID = canvasID;
-      if (this.focusModules.ThumbnailsView === null) {
-        this.focusModules.ThumbnailsView = new $.ThumbnailsView({
-          manifest: this.manifest,
-          appendTo: this.element.find('.view-container'),
-          state:  this.state,
-          eventEmitter: this.eventEmitter,
-          windowId: this.id,
-          canvasID: this.canvasID,
-          imagesList: this.imagesList,
-          imagesListLtr: this.imagesListLtr,
-          vDirectionStatus: this.vDirectionStatus
-        });
-      } else {
-        var view = this.focusModules.ThumbnailsView;
-        view.updateImage(canvasID);
-      }
-      this.toggleFocus('ThumbnailsView', '');
-    },
-
-    toggleImageView: function(canvasID) {
-      this.canvasID = canvasID;
-      if (this.focusModules.ImageView === null) {
-        this.focusModules.ImageView = new $.ImageView({
-          manifest: this.manifest,
-          appendTo: this.element.find('.view-container'),
-          qtipElement: this.element,
-          windowId: this.id,
-          state:  this.state,
-          eventEmitter: this.eventEmitter,
-          canvasID: canvasID,
-          canvases: this.canvases,
-          imagesList: this.imagesList,
-          imagesListRtl: this.imagesListRtl,
-          imagesListLtr: this.imagesListLtr,
-          vDirectionStatus: this.vDirectionStatus,
-          osdOptions: this.windowOptions,
-          bottomPanelAvailable: this.bottomPanelAvailable,
-          annoEndpointAvailable: this.annoEndpointAvailable,
-          canvasControls: this.canvasControls,
-          annotationState : this.canvasControls.annotations.annotationState
-        });
-      } else {
-        this.focusModules.ImageView.updateImage(canvasID);
-      }
-      this.toggleFocus('ImageView', 'ImageView');
-    },
-
-    toggleBookView: function(canvasID) {
-      this.canvasID = canvasID;
-      if (this.focusModules.BookView === null) {
-        this.focusModules.BookView = new $.BookView({
-          manifest: this.manifest,
-          appendTo: this.element.find('.view-container'),
-          windowId: this.id,
-          state:  this.state,
-          eventEmitter: this.eventEmitter,
-          canvasID: canvasID,
-          imagesList: this.imagesList,
-          imagesListRtl: this.imagesListRtl,
-          imagesListLtr: this.imagesListLtr,
-          vDirectionStatus: this.vDirectionStatus,
-          viewingDirection: this.viewingDirection,
-          osdOptions: this.windowOptions,
-          bottomPanelAvailable: this.bottomPanelAvailable
-        });
-      } else {
-        var view = this.focusModules.BookView;
-        view.updateImage(canvasID);
-      }
-      this.toggleFocus('BookView', 'BookView');
-    },
-
-    toggleScrollView: function(canvasID) {
-      if(this.vDirectionStatus == 'rtl'){
-        this.imagesList = this.imagesListRtl.concat();
-      }
-      this.canvasID = canvasID;
-      if (this.focusModules.ScrollView === null) {
-        var containerHeight = this.element.find('.view-container').height();
-        this.focusModules.ScrollView = new $.ScrollView({
-          manifest: this.manifest,
-          appendTo: this.element.find('.view-container'),
-          state:  this.state,
-          eventEmitter: this.eventEmitter,
-          windowId: this.id,
-          canvasID: this.canvasID,
-          imagesList: this.imagesList,
-          imagesListLtr: this.imagesListLtr,
-          vDirectionStatus: this.vDirectionStatus,
-          thumbInfo: {thumbsHeight: Math.floor(containerHeight * this.scrollImageRatio), listingCssCls: 'scroll-listing-thumbs', thumbnailCls: 'scroll-view'}
-        });
-      } else {
-        var view = this.focusModules.ScrollView;
-        view.updateImage(canvasID);
-      }
-      this.toggleFocus('ScrollView', '');
-    },
-
-    updateFocusImages: function(imageList) {
-      this.focusImages = imageList;
-      if (this.bottomPanel) { this.bottomPanel.updateFocusImages(this.focusImages); }
-    },
-
-    setCurrentCanvasID: function(canvasID) {
-      var _this = this;
-
-      _this.canvasID = canvasID;
-
-      // TODO: Completely remove the 'removeTooltips' event. They are not actions and
-      // they do not represent any state change. They are essentially
-      // function calls, which should be handled as responses to the
-      // publication of the state update event currentCanvasIDUpdated
-      // below.
-      _this.eventEmitter.publish('removeTooltips.' + _this.id);
-      while(_this.annotationsList.length > 0) {
-        _this.annotationsList.pop();
-      }
-      this.getAnnotations();
-      switch(this.currentImageMode) {
-      case 'ImageView':
-        this.toggleImageView(this.canvasID);
-        break;
-      case 'BookView':
-        this.toggleBookView(this.canvasID);
-        break;
-      default:
-        break;
-      }
-      _this.eventEmitter.publish(('currentCanvasIDUpdated.' + _this.id), canvasID);
-    },
-
-    replaceWindow: function(newSlotAddress, newElement) {
-      this.slotAddress = newSlotAddress;
-      this.appendTo = newElement;
-      this.update();
-    },
-
-    setCursorFrameStart: function(canvasID) {
-    },
-
-    updateManifestInfo: function() {
-      var _this = this;
-      _this.element.find('.mirador-icon-view-type > i:first').removeClass().addClass(_this.iconClasses[_this.viewType]);
-
-      if (this.focusOverlaysAvailable[this.viewType].overlay.MetadataView) {
-        this.element.find('.mirador-icon-metadata-view').addClass('selected');
-      }
-    },
-
-    /*
-     Merge all annotations for current image/canvas from various sources
-     Pass to any widgets that will use this list
-     */
-    getAnnotations: function() {
-      //first look for manifest annotations
-      var _this = this,
-          urls = _this.manifest.getAnnotationsListUrls(_this.canvasID);
-
-      if (urls.length !== 0) {
-        jQuery.each(urls, function(index, url) {
-          jQuery.getJSON(url, function(list) {
-            var annotations = list.resources;
-            jQuery.each(annotations, function(index, value) {
-              //if there is no ID for this annotation, set a random one
-              if (typeof value['@id'] === 'undefined') {
-                value['@id'] = $.genUUID();
-              }
-              //indicate this is a manifest annotation - which affects the UI
-              value.endpoint = "manifest";
-            });
-            // publish event only if one url fetch is successful
-            _this.annotationsList = _this.annotationsList.concat(annotations);
-            _this.eventEmitter.publish('ANNOTATIONS_LIST_UPDATED', {windowId: _this.id, annotationsList: _this.annotationsList});
-          });
-        });
-      }
-
-      // next check endpoint
-      if (this.annoEndpointAvailable) {
-        var dfd = jQuery.Deferred(),
-            module = _this.state.getStateProperty('annotationEndpoint').module,
-            options = _this.state.getStateProperty('annotationEndpoint').options || {}; //grab anything from the config that should be passed directly to the endpoint
-        options.name = _this.state.getStateProperty('annotationEndpoint').name;
-        // One annotation endpoint per window, the endpoint
-        // is a property of the instance.
-        if ( _this.endpoint && _this.endpoint !== null ) {
-          _this.endpoint.set('dfd', dfd);
-        } else {
-          options.dfd = dfd;
-          options.windowID = _this.id;
-          options.imagesList = _this.imagesList;
-          options.eventEmitter = _this.eventEmitter;
-          _this.endpoint = new $[module](options);
-        }
-        _this.endpoint.search({ "uri" : _this.canvasID});
-
-        dfd.done(function(loaded) {
-          _this.annotationsList = _this.annotationsList.concat(_this.endpoint.annotationsList);
-          // clear out some bad data
-          _this.annotationsList = jQuery.grep(_this.annotationsList, function (value, index) {
-            if (typeof value.on === "undefined") {
-              return false;
-            }
-            return true;
-          });
-          _this.eventEmitter.publish('ANNOTATIONS_LIST_UPDATED', {windowId: _this.id, annotationsList: _this.annotationsList});
-        });
-      }
-    },
-
-    toggleFullScreen: function() {
-      var _this = this;
-      if (!OpenSeadragon.isFullScreen()) {
-        this.element.find('.mirador-osd-fullscreen i').removeClass('fa-compress').addClass('fa-expand');
-        this.element.find('.mirador-osd-toggle-bottom-panel').show();
-        _this.eventEmitter.publish('SET_BOTTOM_PANEL_VISIBILITY.' + this.id, true);
-      } else {
-        this.element.find('.mirador-osd-fullscreen i').removeClass('fa-expand').addClass('fa-compress');
-        this.element.find('.mirador-osd-toggle-bottom-panel').hide();
-        _this.eventEmitter.publish('SET_BOTTOM_PANEL_VISIBILITY.' + this.id, false);
-      }
-    },
-
-    // based on currentFocus
-    bindNavigation: function() {
-      var _this = this;
-
-      this.element.find('.mirador-icon-view-type').on('mouseenter',
-                                                      function() {
-                                                        _this.element.find('.image-list').stop().slideFadeToggle(300);
-                                                      }).on('mouseleave',
-                                                            function() {
-                                                              _this.element.find('.image-list').stop().slideFadeToggle(300);
-                                                            });
-
-      this.element.find('.mirador-icon-window-menu').on('mouseenter',
-                                                        function() {
-                                                          _this.element.find('.slot-controls').stop().slideFadeToggle(300);
-                                                        }).on('mouseleave',
-                                                              function() {
-                                                                _this.element.find('.slot-controls').stop().slideFadeToggle(300);
-                                                              });
-
-      this.element.find('.single-image-option').on('click', function() {
-        _this.toggleImageView(_this.canvasID);
-      });
-
-      this.element.find('.book-option').on('click', function() {
-        _this.toggleBookView(_this.canvasID);
-      });
-
-      this.element.find('.scroll-option').on('click', function() {
-        _this.toggleScrollView(_this.canvasID);
-      });
-
-      this.element.find('.thumbnails-option').on('click', function() {
-        _this.toggleThumbnails(_this.canvasID);
-      });
-
-      this.element.find('.mirador-icon-metadata-view').on('click', function() {
-        _this.toggleMetadataOverlay(_this.viewType);
-      });
-
-      this.element.find('.mirador-icon-toc').on('click', function() {
-        _this.sidePanelVisibility(!_this.sidePanelVisible, '0.3s');
-      });
-
-      this.element.find('.new-object-option').on('click', function() {
-        _this.eventEmitter.publish('ADD_ITEM_FROM_WINDOW', _this.id);
-      });
-
-      this.element.find('.remove-object-option').on('click', function() {
-        _this.eventEmitter.publish('REMOVE_SLOT_FROM_WINDOW', _this.id);
-      });
-
-      this.element.find('.add-slot-right').on('click', function() {
-        _this.eventEmitter.publish('SPLIT_RIGHT_FROM_WINDOW', _this.id);
-      });
-
-      this.element.find('.add-slot-left').on('click', function() {
-        _this.eventEmitter.publish('SPLIT_LEFT_FROM_WINDOW', _this.id);
-      });
-
-      this.element.find('.add-slot-below').on('click', function() {
-        _this.eventEmitter.publish('SPLIT_DOWN_FROM_WINDOW', _this.id);
-      });
-
-      this.element.find('.add-slot-above').on('click', function() {
-        _this.eventEmitter.publish('SPLIT_UP_FROM_WINDOW', _this.id);
-      });
-    },
-
-    // template should be based on workspace type
-
-    template: $.Handlebars.compile([
-      '<div class="window">',
-      '<div class="manifest-info">',
-      '<div class="window-manifest-navigation">',
-      '{{#if userButtons}}',
-      '{{windowuserbtns userButtons}}',
-      '{{/if}}',
-      '<a href="javascript:;" class="mirador-btn mirador-icon-view-type" role="button" title="{{t "viewTypeTooltip"}}" aria-label="{{t "viewTypeTooltip"}}">',
-      '<i class="{{currentFocusClass}}"></i>',
-      '<i class="fa fa-caret-down"></i>',
-      '<ul class="dropdown image-list">',
-      '{{#if ImageView}}',
-      '<li class="single-image-option"><i class="{{iconClasses.ImageView}}"></i> {{t "imageView"}}</li>',
-      '{{/if}}',
-      '{{#if BookView}}',
-      '<li class="book-option"><i class="{{iconClasses.BookView}}"></i> {{t "bookView"}}</li>',
-      '{{/if}}',
-      '{{#if ScrollView}}',
-      '<li class="scroll-option"><i class="{{iconClasses.ScrollView}}"></i> {{t "scrollView"}}</li>',
-      '{{/if}}',
-      '{{#if ThumbnailsView}}',
-      '<li class="thumbnails-option"><i class="{{iconClasses.ThumbnailsView}}"></i> {{t "thumbnailsView"}}</li>',
-      '{{/if}}',
-      '</ul>',
-      '</a>',
-      '{{#if MetadataView}}',
-      '<a href="javascript:;" class="mirador-btn mirador-icon-metadata-view mirador-tooltip" role="button" title="{{t "metadataTooltip"}}" aria-label="{{t "metadataTooltip"}}">',
-      '<i class="fa fa-info-circle fa-lg fa-fw"></i>',
-      '</a>',
-      '{{/if}}',
-      '{{#if showFullScreen}}',
-      '<a class="mirador-btn mirador-osd-fullscreen mirador-tooltip" role="button" title="{{t "fullScreenWindowTooltip"}}" aria-label="{{t "fullScreenWindowTooltip"}}">',
-      '<i class="fa fa-lg fa-fw fa-expand"></i>',
-      '</a>',
-      '{{/if}}',
-      '</div>',
-      '{{#if layoutOptions.close}}',
-      '<a href="javascript:;" class="mirador-btn mirador-close-window remove-object-option mirador-tooltip" title="{{t "closeTooltip"}}" aria-label="{{t "closeTooltip"}}"><i class="fa fa-times fa-lg fa-fw"></i></a>',
-      '{{/if}}',
-      '{{#if displayLayout}}',
-      '<a href="javascript:;" class="mirador-btn mirador-icon-window-menu" title="{{t "changeLayoutTooltip"}}" aria-label="{{t "changeLayoutTooltip"}}"><i class="fa fa-th-large fa-lg fa-fw"></i><i class="fa fa-caret-down"></i>',
-      '<ul class="dropdown slot-controls">',
-      '{{#if layoutOptions.newObject}}',
-      '<li class="new-object-option"><i class="fa fa-refresh fa-lg fa-fw"></i> {{t "newObject"}}</li>',
-      '<hr class="menu-divider"/>',
-      '{{/if}}',
-      '{{#if layoutOptions.slotRight}}',
-      '<li class="add-slot-right"><i class="fa fa-arrow-circle-right fa-lg fa-fw"></i> {{t "addSlotRight"}}</li>',
-      '{{/if}}',
-      '{{#if layoutOptions.slotLeft}}',
-      '<li class="add-slot-left"><i class="fa fa-arrow-circle-left fa-lg fa-fw"></i> {{t "addSlotLeft"}}</li>',
-      '{{/if}}',
-      '{{#if layoutOptions.slotAbove}}',
-      '<li class="add-slot-above"><i class="fa fa-arrow-circle-up fa-lg fa-fw"></i> {{t "addSlotAbove"}}</li>',
-      '{{/if}}',
-      '{{#if layoutOptions.slotBelow}}',
-      '<li class="add-slot-below"><i class="fa fa-arrow-circle-down fa-lg fa-fw"></i> {{t "addSlotBelow"}}</li>',
-      '{{/if}}',
-      '</ul>',
-      '</a>',
-      '{{/if}}',
-      '{{#if sidePanel}}',
-      '<a href="javascript:;" class="mirador-btn mirador-icon-toc selected mirador-tooltip" title="{{t "sidePanelTooltip"}}" aria-label="{{t "sidePanelTooltip"}}"><i class="fa fa-bars fa-lg fa-fw"></i></a>',
-      '{{/if}}',
-      '<h3 class="window-manifest-title" title="{{{title}}}" aria-label="{{{title}}}">{{{title}}}</h3>',
-      '</div>',
-      '<div class="content-container">',
-      '{{#if sidePanel}}',
-      '<div class="sidePanel">',
-      '</div>',
-      '{{/if}}',
-      '<div class="overlay"></div>',
-      '<div class="view-container {{#unless sidePanel}}focus-max-width{{/unless}}">',
-      '<div class="bottomPanel">',
-      '</div>',
-      '</div>',
-      '</div>',
-      '</div>'
-
-    ].join(''))
-  };
-
-  var processUserButtons = function (buttons){
-    return buttons.map(function(button, index){
-      return processUserButton(button);
-    });
-  };
-
-  var processUserButton = function(button){
-    var $a = jQuery('<a>');
-    var $i = jQuery('<i>', {'class': 'fa fa-lg fa-fw'});
-    try {
-      if(!button.iconClass){
-        throw "userButtons must have an iconClass";
-      }
-      // add custom attributes to the button element
-      if(button.attributes){
-        $a.attr(button.attributes);
-      }
-      // add default class to the button element
-      $a.addClass('mirador-btn');
-      // add custom classes to the icon element
-      $i.addClass(button.iconClass);
-      // append the icon element to the button element
-      $a.append($i);
-      return $a.get(0).outerHTML;
-    }catch(error){
-      console && console.error && console.error(error);
-      return '';
-    }
-  };
-
-  $.Handlebars.registerHelper('windowuserbtns', function(userButtons){
-    return new $.Handlebars.SafeString(
-      processUserButtons(userButtons).join('')
-    );
-  });
-
-}(Mirador));
diff --git a/karma.conf.js b/karma.conf.js
deleted file mode 100644
index 21d5a881ac4c13cf441136ba45763a0c89a99ff4..0000000000000000000000000000000000000000
--- a/karma.conf.js
+++ /dev/null
@@ -1,112 +0,0 @@
-// Karma configuration
-// Generated on Tue May 03 2016 11:44:23 GMT-0400 (EDT)
-
-module.exports = function(config) {
-  config.set({
-
-    // base path that will be used to resolve all patterns (eg. files, exclude)
-    basePath: '',
-
-    // frameworks to use
-    // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
-    frameworks: ['jasmine'],
-
-
-    // list of files / patterns to load in the browser
-    files: [
-      // vendors
-      'node_modules/jquery/dist/jquery.min.js',
-      'node_modules/jquery-ui-dist/jquery-ui.min.js',
-      'node_modules/jquery.scrollto/jquery.scrollTo.min.js',
-      'node_modules/jstree/dist/jstree.min.js',
-      'node_modules/qtip2/dist/jquery.qtip.min.js',
-      'node_modules/javascript-state-machine/state-machine.min.js',
-      'node_modules/tinymce/tinymce.min.js',
-      'node_modules/handlebars/dist/handlebars.js',
-      'node_modules/openseadragon/build/openseadragon/openseadragon.js',
-      'node_modules/d3/d3.min.js',
-      'node_modules/jquery-plugin/dist/ba-tiny-pubsub.js',
-      'node_modules/urijs/src/URI.min.js',
-      'node_modules/mousetrap/mousetrap.min.js',
-      'js/lib/isfahan.js',
-      'node_modules/paper/dist/paper-core.min.js',
-      'node_modules/spectrum-colorpicker/spectrum.js',
-      'node_modules/i18next/i18next.min.js',
-      'node_modules/i18next-browser-languagedetector/i18nextBrowserLanguageDetector.min.js',
-      'node_modules/i18next-xhr-backend/i18nextXHRBackend.min.js',
-      'js/lib/modernizr.custom.js',
-      'node_modules/sanitize-html/dist/sanitize-html.min.js',
-      'node_modules/sinon/pkg/sinon.js',
-      'node_modules/jasmine-jquery/lib/jasmine-jquery.js',
-      'node_modules/iiif-evented-canvas/dist/iiif-evented-canvas.umd.min.js',
-      // app
-      'js/src/mirador.js',
-      'js/src/utils/handlebars.js',
-      'js/src/*.js',
-      'js/src/viewer/*.js',
-      'js/src/manifests/*.js',
-      'js/src/annotations/*.js',
-      'js/src/workspaces/*.js',
-      'js/src/widgets/*.js',
-      'js/src/utils/*.js',
-      // spec
-      'spec/**/*.stub.js',
-      {pattern: 'spec/data/*', watched: true, served: true, included: false},
-      {pattern: 'spec/fixtures/*json', watched: true, served: true, included: false}
-    ].concat(!process.env.KARMA_SPECS ? ['spec/**/*.js'] : process.env.KARMA_SPECS.split(',')),
-
-
-    // list of files to exclude
-    // exclude: [
-    // This file holds the integration tests for Mirador
-    //   'spec/mirador.test.js'
-    // ],
-
-
-    // preprocess matching files before serving them to the browser
-    // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
-    preprocessors: {
-      'js/src/**/*.js': ['coverage']
-    },
-
-    proxies: {
-      '/spec': 'http://localhost:9876/base/spec'
-    },
-
-    // test results reporter to use
-    // possible values: 'dots', 'progress'
-    // available reporters: https://npmjs.org/browse/keyword/karma-reporter
-    reporters: ['progress', 'coverage', 'coveralls'],
-
-    coverageReporter: {
-      type: 'lcov', // lcov or lcovonly are required for generating lcov.info files
-      dir: 'coverage/'
-    },
-
-    // web server port
-    port: 9876,
-
-
-    // enable / disable colors in the output (reporters and logs)
-    colors: true,
-
-
-    // level of logging
-    // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
-    logLevel: config.LOG_INFO,
-
-
-    // enable / disable watching file and executing tests whenever any file changes
-    autoWatch: false,
-
-
-    // start these browsers
-    // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
-    browsers: ['PhantomJS'],
-
-
-    // Continuous Integration mode
-    // if true, Karma captures browsers, runs the tests and exits
-    singleRun: true
-  });
-};
diff --git a/locales/ar/translation.json b/locales/ar/translation.json
deleted file mode 100644
index 92aafd34ad2b9f4f7f45ab9d81e3e87f354a5ff7..0000000000000000000000000000000000000000
--- a/locales/ar/translation.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
-    "addItem": "أضف عنصراً",
-    "addNewObject": "أضف موضوعاً جديداً من الرابط",
-    "addSlotAbove": "أضف شريحة في الأعلى",
-    "addSlotBelow": "أصف شريحة في الأسفل",
-    "addSlotLeft": "أضف شريحة إلى اليسار",
-    "addSlotRight": "أضف شريحة إلى اليمين",
-    "addTagsHere": "أضف الإشارة هنا",
-    "annotationTooltip": "تبديل التعليقات التوضيحية",
-    "attribution": "إسناد",
-    "bookmark": "أضف للمفضلة",
-    "bookmarkTitle": "أضف للمفضلة أو شارك مساحة العمل",
-    "bookmarkTooltip": "أضف مثال ميرادور هذا للمفضلة",
-    "bookView": "مشاهدة الكتاب",
-    "borderColorTooltip": "اختر لون الحدود",
-    "borderTypeTooltip": "اختر نمط الحدود",
-    "brightnessTooltip": "ضبط السطوع",
-    "cancel": "إلغاء",
-    "cancelAnnotation": "هل تريد إلغاء التعليق التوضيحي؟",
-    "changeLayout": "غيّر الإطار",
-    "changeLayoutTooltip": "تغيير عدد الفتحات المرئية",
-    "close": "أغلق",
-    "closeTooltip": "أغلق هذه النافذة",
-    "comments": "التعليقات",
-    "contrastTooltip": "ضبط التباين",
-    "dashed": "الشرطات",
-    "delete": "مسح",
-    "deleteAnnotation": "هل تريد حذف هذا التعليق التوضيحي وجميع الأشكال ذات الصلة؟",
-    "deleteShape": "هل تريد حذف هذا الشكل؟",
-    "description": "وصف",
-    "details": "تفاصيل",
-    "disabledLayersTabMessage": "تتوفر طبقات الصور في عرض الصفحة الواحدة فقط",
-    "disabledOpacityMessage": "غير مفعل",
-    "dotDashed": "Dots &amp; Dashes",
-    "dropToLoad": "إسقاط لتحميل واضح",
-    "edit": "تحرير",
-    "editModalBtnDeleteAnnotation": "احذف هذا التعليق التوضيحي",
-    "editModalBtnSaveWithoutShapes": "احفظ التعليق التوضيحي بدون الأشكال",
-    "editModalSaveAnnotationWithNoShapesMsg": "لا يوجد أشكال ذات علاقة بالتعليق التوضيحي",
-    "ellipseTooltip": "الشرح البيضاوي",
-    "emptyTemplateMessage": "لا توجد طبقات صور على هذه اللوحة",
-    "fillColorTooltip": "اختر لون الفلتر",
-    "filterObjects": "فلتر المواضيع",
-    "freehandTooltip": "تعليق توضيحي حر الشكل",
-    "fullScreen": "ملء الشاشة",
-    "fullScreenTooltip": "تبديل ملء الشاشة",
-    "fullScreenWindowTooltip": "بدّل هذه النافذة إلى ملء الشاشة",
-    "grayscaleTooltip": "بدّل التدرّج الرمادي",
-    "imageManipulationTooltip": "تبديل معالجة الصورة",
-    "imagesFor": "صور ل",
-    "imageView": "مشاهدة الصورة",
-    "invertTooltip": "اعكس الألوان",
-    "item": "عنصر",
-    "items": "عناصر",
-    "label": "العنوان",
-    "less": "أقلّ",
-    "license": "الرخصة",
-    "links": "روابط",
-    "load": "عبئ",
-    "logo": "الشعار",
-    "manifest": "IIIF قائمة",
-    "metadataTooltip": "عرض معلومات / بيانات وصفية عن هذا الكائن",
-    "mirrorTooltip": "انعكاس الصورة",
-    "more": "أكثر",
-    "newObject": "موضوع جديد",
-    "no": "لا",
-    "noIndex": "لا يتوفر فهرس",
-    "noLabel": "بلا عنوان",
-    "objectMetadata": "البيانات الوصفية للموضوع",
-    "opacityLabel": "الغموض",
-    "pinTooltip": "إضافة تعليق توضيحي",
-    "pointerTooltip": "المؤشر",
-    "polygonTooltip": "تعليق مضلع",
-    "rectangleTooltip": "تعليق مستطيل",
-    "related": "ذو صلة",
-    "resetTooltip": "إعادة ضبط الصورة",
-    "rights": "الحقوق",
-    "rightsStatus": "حالة الحقوق",
-    "rotateLeftTooltip": "تدوير 90 درجة لليسار",
-    "rotateRightTooltip": "تدوير 90 درجة لليمين",
-    "saturationTooltip": "ضبط التشبّع",
-    "save": "حفظ",
-    "scrollView": "مشاهدة الانتقال",
-    "searchLabelSelect": "اختر خدمة البحث",
-    "searchNotAvailable": "لا تتوفر خدمة البحث",
-    "searchText": "ابحث في النصّ",
-    "seeAlso": "شاهد أيضاً",
-    "selectGrid": "اختر تقسيم الشاشة في الأسفل",
-    "sidePanelTooltip": "تبديل االلوحة الجانبية",
-    "solid": "صلب",
-    "submit": "تسليم",
-    "tabTitleIndex": "الفهرس",
-    "tabTitleLayers": "الطبقات",
-    "tabTitleSearch": "البحث",
-    "thick": "سميك",
-    "thickest": "السماكة",
-    "thumbnailsView": "مشاهدة الصورة المصغرة",
-    "unspecified": "غير محدد",
-    "url": "الرابط",
-    "viewTypeTooltip": "غيّر نوع العرض",
-    "visibleLabel": "مرئي",
-    "within": "ضمن",
-    "yes": "نعم"
-}
diff --git a/locales/de/translation.json b/locales/de/translation.json
deleted file mode 100644
index 033d39b71ca34d4adc64eb58315beea75bf3ec98..0000000000000000000000000000000000000000
--- a/locales/de/translation.json
+++ /dev/null
@@ -1,103 +0,0 @@
-{
-    "addItem": "Objekt hinzufügen",
-    "addNewObject": "Objekt über URL hinzufügen",
-    "addSlotAbove": "Bereich oben hinzufügen",
-    "addSlotBelow": "Bereich unten hinzufügen",
-    "addSlotLeft": "Bereich links hinzufügen",
-    "addSlotRight": "Bereich rechts hinzufügen",
-    "addTagsHere": "Tags hier hinzufügen",
-    "annotationTooltip": "Annotationen",
-    "attribution": "Bereitgestellt von",
-    "bookmark": "Lesezeichen",
-    "bookmarkTitle": "Ansicht speichern oder teilen",
-    "bookmarkTooltip": "Lesezeichen für diese Mirador Instanz erstellen",
-    "bookView": "Doppelseite",
-    "borderColorTooltip": "Randfarbe wählen",
-    "borderTypeTooltip": "Randstil wählen",
-    "brightnessTooltip": "Helligkeit anpassen",
-    "cancel": "Abbrechen",
-    "cancelAnnotation": "Wollen Sie diese Annotation verwerfen?",
-    "changeLayout": "Layout ändern",
-    "changeLayoutTooltip": "Anzahl der sichtbaren Slots anpassen",
-    "close": "Schließen",
-    "closeTooltip": "Schließt das Fenster",
-    "comments": "Kommentare",
-    "contrastTooltip": "Kontrast anpassen",
-    "dashed":"Striche",
-    "delete": "Löschen",
-    "deleteAnnotation": "Wollen Sie diese Annotation und alle dazugehörigen Marker entfernen?",
-    "deleteShape":"Wollen Sie diesen Marker löschen?",
-    "description": "Beschreibung",
-    "details": "Details",
-    "disabledLayersTabMessage": "Bildebenen sind nur in der Einzelbildanzeige verfügbar",
-    "disabledOpacityMessage": "deaktiviert",
-    "dotDashed":"Punkte &amp; Striche",
-    "dropToLoad": "Hier ablegen um das Manifest zu laden",
-    "edit": "Bearbeiten",
-    "editModalBtnDeleteAnnotation":"Annotation löschen",
-    "editModalBtnSaveWithoutShapes":"Annotation ohne Marker speichern",
-    "editModalSaveAnnotationWithNoShapesMsg":"Mit dieser Annotation sind keine Marker verknüpft",
-    "ellipseTooltip": "Oval",
-    "emptyTemplateMessage": "Auf diesem Canvas gibt es keine Bildebenen",
-    "fillColorTooltip": "Füllfarbe wählen",
-    "filterObjects": "Objekte filtern",
-    "freehandTooltip": "Freihand",
-    "fullScreen": "Vollbild",
-    "fullScreenTooltip": "Vollbild",
-    "fullScreenWindowTooltip": "Dieses Fenster als Vollbild anzeigen",
-    "grayscaleTooltip": "Graustufen umstellen",
-    "imageManipulationTooltip": "Bild-Manipulation",
-    "imagesFor": "Bilder für",
-    "imageView": "Einzelbild",
-    "invertTooltip": "Farben umkehren",
-    "item": "Objekt",
-    "items": "Objekte",
-    "less": "weniger",
-    "license": "Lizenz",
-    "links": "Links",
-    "load": "Laden",
-    "logo": "Logo",
-    "manifest": "IIIF-Manifest",
-    "metadataTooltip": "Informationen/Metadaten über dieses Objekt anzeigen",
-    "mirrorTooltip": "Bild spiegeln",
-    "more": "mehr",
-    "newObject": "Neues Objekt",
-    "no": "Nein",
-    "noIndex": "Kein Inhaltsverzeichnis verfügbar",
-    "noLabel": "Kein Label",
-    "objectMetadata": "Metadaten des Objekts",
-    "opacityLabel": "Deckkraft",
-    "pinTooltip": "Stecknadel",
-    "pointerTooltip": "Auswählen",
-    "polygonTooltip": "Polygon",
-    "rectangleTooltip": "Rechteck",
-    "related": "Verwandte Resourcen",
-    "resetTooltip": "Bild zurücksetzen",
-    "rights": "Rechte",
-    "rightsStatus": "Rechtsstatus",
-    "rotateLeftTooltip": "Um 90&deg; nach links drehen",
-    "rotateRightTooltip": "Um 90&deg; nach rechts drehen",
-    "saturationTooltip": "Sättigung anpassen",
-    "save": "Speichern",
-    "scrollView": "Horizontales Scrollen",
-    "searchLabelSelect": "Suchdienst auswählen",
-    "searchNotAvailable": "Kein Suchdienst verfügbar",
-    "searchText": "Suchtext",
-    "seeAlso": "Siehe auch",
-    "selectGrid": "Anordnung auswählen",
-    "sidePanelTooltip": "Seitenleiste",
-    "solid": "Durchgängig",
-    "submit": "Senden",
-    "tabTitleIndex": "Index",
-    "tabTitleLayers": "Ebenen",
-    "tabTitleSearch": "Suche",
-    "thick": "Dick",
-    "thickest": "Dicker",
-    "thumbnailsView": "Galerie",
-    "unspecified": "nicht spezifiziert",
-    "url": "URL",
-    "viewTypeTooltip": "Ansichtstyp wechseln",
-    "visibleLabel": "sichtbar",
-    "within": "Teil von",
-    "yes": "Ja"
-}
diff --git a/locales/en/translation.json b/locales/en/translation.json
deleted file mode 100644
index 6813c5c2f122af37e3c2233c9032f9411a546340..0000000000000000000000000000000000000000
--- a/locales/en/translation.json
+++ /dev/null
@@ -1,106 +0,0 @@
-{
-  "addItem": "Add Item",
-  "addNewObject": "Add new object from URL",
-  "addSlotAbove": "Add Slot Above",
-  "addSlotBelow": "Add Slot Below",
-  "addSlotLeft": "Add Slot Left",
-  "addSlotRight": "Add Slot Right",
-  "addTagsHere": "Add tags here",
-  "annotationTooltip": "Toggle annotations",
-  "attribution": "Attribution",
-  "bookmark": "Bookmark",
-  "bookmarkTitle": "Bookmark or Share Your Workspace",
-  "bookmarkTooltip": "Bookmark this Mirador instance",
-  "bookView": "Book View",
-  "borderColorTooltip": "Choose border color",
-  "borderTypeTooltip": "Choose border style",
-  "brightnessTooltip": "Adjust brightness",
-  "cancel": "Cancel",
-  "cancelAnnotation": "Do you want to cancel this annotation?",
-  "changeLayout": "Change Layout",
-  "changeLayoutTooltip": "Change the number of visible slots",
-  "close": "Close",
-  "closeTooltip": "Close this window",
-  "comments": "Comments",
-  "contrastTooltip": "Adjust contrast",
-  "dashed": "Dashes",
-  "delete": "Delete",
-  "deleteAnnotation": "Do you want to delete this annotation and all associated shapes?",
-  "deleteShape": "Do you want to delete this shape?",
-  "description": "Description",
-  "details": "Details",
-  "disabledLayersTabMessage": "Image layers are only available in single-page view",
-  "disabledOpacityMessage": "disabled",
-  "dotDashed": "Dots &amp; Dashes",
-  "dropToLoad": "Drop to Load Manifest",
-  "edit": "Edit",
-  "editModalBtnDeleteAnnotation": "Delete this annotation",
-  "editModalBtnSaveWithoutShapes": "Save annotation without shapes",
-  "editModalSaveAnnotationWithNoShapesMsg": "There are no shapes associated with this annotation.",
-  "ellipseTooltip": "Oval annotation",
-  "emptyTemplateMessage": "There are no image layers on this canvas",
-  "fillColorTooltip": "Choose fill color",
-  "filterObjects": "Filter objects",
-  "freehandTooltip": "Freeform annotation",
-  "fullScreen": "Full Screen",
-  "fullScreenTooltip": "Toggle full screen",
-  "fullScreenWindowTooltip": "Toggle this window to full screen",
-  "grayscaleTooltip": "Toggle grayscale",
-  "imageManipulationTooltip": "Toggle image manipulation",
-  "imagesFor": "Images for",
-  "imageView": "Image View",
-  "invertTooltip": "Invert colors",
-  "item": "item",
-  "items": "items",
-  "label": "Label",
-  "less": "less",
-  "license": "License",
-  "links": "Links",
-  "load": "Load",
-  "logo": "Logo",
-  "manifest": "IIIF Manifest",
-  "metadataTooltip": "View information/metadata about this object",
-  "mirrorTooltip": "Mirror image",
-  "more": "more",
-  "myManifests": "My Manifests",
-  "newObject": "Replace Object",
-  "no": "No",
-  "noIndex": "No index available",
-  "noLabel": "No Label",
-  "objectMetadata": "Object Metadata",
-  "opacityLabel": "opacity",
-  "pinTooltip": "Pin annotation",
-  "pointerTooltip": "Pointer",
-  "polygonTooltip": "Polygon annotation",
-  "preloadedManifests": "Preloaded Manifests",
-  "rectangleTooltip": "Rectangle annotation",
-  "related": "Related",
-  "resetTooltip": "Reset image",
-  "rights": "Rights",
-  "rightsStatus": "Rights Status",
-  "rotateLeftTooltip": "Rotate 90&deg; left",
-  "rotateRightTooltip": "Rotate 90&deg; right",
-  "saturationTooltip": "Adjust saturation",
-  "save": "Save",
-  "scrollView": "Scroll View",
-  "searchLabelSelect": "Select Search Service",
-  "searchNotAvailable": "No search service available",
-  "searchText": "Search text",
-  "seeAlso": "See Also",
-  "selectGrid": "Select a grid below",
-  "sidePanelTooltip": "Toggle the side panel",
-  "solid": "Solid",
-  "submit": "Submit",
-  "tabTitleIndex": "Index",
-  "tabTitleLayers": "Layers",
-  "tabTitleSearch": "Search",
-  "thick": "Thick",
-  "thickest": "Thickest",
-  "thumbnailsView": "Gallery View",
-  "unspecified": "Unspecified",
-  "url": "URL",
-  "viewTypeTooltip": "Change view type",
-  "visibleLabel": "visible",
-  "within": "Within",
-  "yes": "Yes"
-}
diff --git a/locales/es/translation.json b/locales/es/translation.json
deleted file mode 100644
index 6450b44d53640f6cb3930d81162b56217fff4a87..0000000000000000000000000000000000000000
--- a/locales/es/translation.json
+++ /dev/null
@@ -1,86 +0,0 @@
-{
-    "addItem": "Añadir artículo",
-    "addNewObject": "Añadir nuevo objeto de URL",
-    "addSlotAbove": "Añadir sobre ranura",
-    "addSlotBelow": "Añadir debajo ranura",
-    "addSlotLeft": "Añadir izquierda ranura",
-    "addSlotRight": "Añadir derecho ranura",
-    "addTagsHere": "Añada etiquetas aquí",
-    "annotationTooltip": "Alternar anotaciones",
-    "attribution": "Atribución",
-    "bookView": "Vista del Libro",
-    "bookmark": "Añadir a la lista de marcadores",
-    "bookmarkTitle": "Añadir a la lista de marcadores o compartir su espacio de trabajo",
-    "bookmarkTooltip": "Añada esta instancia al Mirador",
-    "borderColorTooltip": "Elija el color del borde",
-    "borderTypeTooltip": "Elija estilo del borde",
-    "brightnessTooltip": "Ajustar el brillo",
-    "cancel": "Cancelar",
-    "cancelAnnotation": "¿Desea cancelar esta anotación?",
-    "changeLayout": "Cambiar diseño",
-    "changeLayoutTooltip": "Cambiar el número de ranuras visibles",
-    "close": "Cerrar",
-    "closeTooltip": "Cerrar esta ventana",
-    "comments": "Comentarios",
-    "contrastTooltip": "Ajuste el contraste",
-    "dashed": "Guiones",
-    "delete": "Eliminar",
-    "deleteAnnotation": "¿Desea eliminar esta anotación y todas las formas asociadas?",
-    "deleteShape": "¿Quieres eliminar esta forma?",
-    "description": "Descripción",
-    "details": "Detalles",
-    "dotDashed": "Puntos &amp; Guiones",
-    "dropToLoad": "Soltar aquí para añadir el objeto",
-    "edit": "Editar",
-    "editModalBtnDeleteAnnotation": "Eliminar esta anotación",
-    "editModalBtnSaveWithoutShapes": "Guardar anotación sin formas",
-    "editModalSaveAnnotationWithNoShapesMsg": "No hay formas asociadas con esta anotación.",
-    "ellipseTooltip": "Anotación oval",
-    "fillColorTooltip": "Elija el color de relleno",
-    "filterObjects": "Filtrar objetos",
-    "freehandTooltip": "Anotación de forma libre",
-    "fullScreen": "Pantalla completa",
-    "fullScreenTooltip": "Alternar pantalla completa",
-    "fullScreenWindowTooltip": "Cambiar esta ventana a pantalla completa",
-    "grayscaleTooltip": "Cambiar a escala de grises",
-    "imageManipulationTooltip": "Alternar la manipulación de imágenes",
-    "imageView": "Vista de la Imagen",
-    "invertTooltip": "Invertir Colores",
-    "item": "artículo",
-    "items": "artículos",
-    "label": "Etiqueta",
-    "license": "Licencia",
-    "links": "Enlaces",
-    "load": "Cargar",
-    "logo": "Logo",
-    "metadataTooltip": "Ver información/metadatos sobre este objeto",
-    "mirrorTooltip": "Espejo de la Imagen",
-    "more": "más",
-    "newObject": "Nuevo Objeto",
-    "noIndex": "No hay ningún índice disponible",
-    "objectMetadata": "Metadatos",
-    "pinTooltip": "Anotación de pin",
-    "pointerTooltip": "Puntero",
-    "polygonTooltip": "Anotación de polígono",
-    "rectangleTooltip": "Anotación rectangular",
-    "related": "Relacionado",
-    "resetTooltip": "Restablecer imagen",
-    "rights": "Derechos",
-    "rightsStatus": "Estado de los Derechos",
-    "rotateLeftTooltip": "Girar 90&deg; izquierda",
-    "rotateRightTooltip": "Girar 90&deg; derecha",
-    "saturationTooltip": "Ajustar la saturación",
-    "save": "Salvar",
-    "scrollView": "Vista del rollo de papel",
-    "seeAlso": "Ver también",
-    "selectGrid": "Elija una cuadrícula de abajo",
-    "sidePanelTooltip": "Alternar el panel lateral",
-    "solid": "Sólido",
-    "thick": "Grueso",
-    "thickest": "Más grueso",
-    "thumbnailsView": "Miniaturas",
-    "unspecified": "Sin Especificar",
-    "viewTypeTooltip": "Cambiar tipo de vista",
-    "within": "Dentro de",
-    "yes": "Sí"
-}
diff --git a/locales/fr/translation.json b/locales/fr/translation.json
deleted file mode 100644
index 8374e45ec50e9a496abf59cafd8e0c023acdb0e3..0000000000000000000000000000000000000000
--- a/locales/fr/translation.json
+++ /dev/null
@@ -1,103 +0,0 @@
-{
-    "addItem": "Ajouter un objet",
-    "addNewObject": "Ajouter un objet à partir de son URL",
-    "addSlotAbove": "Ajouter une fenêtre au-dessus",
-    "addSlotBelow": "Ajouter une fenêtre en dessous",
-    "addSlotLeft": "Ajouter une fenêtre à gauche",
-    "addSlotRight": "Ajouter une fenêtre à droite",
-    "addTagsHere": "Ajouter des mots-clés",
-    "annotationTooltip": "Annoter / Voir les annotations",
-    "attribution": "Attribution",
-    "bookmark": "Sauvegarder / Partager",
-    "bookmarkTitle": "Sauvegarder ou partager cet espace de travail Mirador",
-    "bookmarkTooltip": "Obtenir le lien vers cet espace de travail Mirador",
-    "bookView": "Vue livre",
-    "borderColorTooltip": "Choisir la couleur de bordure",
-    "borderTypeTooltip": "Choisir le style de bordure",
-    "brightnessTooltip": "Luminosité",
-    "cancel": "Annuler",
-    "cancelAnnotation": "Voulez-vous supprimer cette annotation",
-    "changeLayout": "Changer la disposition",
-    "changeLayoutTooltip": "Choisir le nombre de fenêtres visibles",
-    "close": "Fermer",
-    "closeTooltip": "Fermer cette fenêtre",
-    "comments": "Commentaires",
-    "contrastTooltip": "Contraste",
-    "dashed":"Tirets",
-    "delete": "Supprimer",
-    "deleteAnnotation": "Voulez-vous supprimer cette annotation et toutes les formes associées",
-    "deleteShape":"Voulez-vous supprimer cette forme",
-    "description": "Description",
-    "details": "Détails",
-    "disabledLayersTabMessage": "Les calques d'image ne sont accessibles que depuis la vue image",
-    "disabledOpacityMessage": "désactivé",
-    "dotDashed":"Pointillés et traits",
-    "dropToLoad": "Déposer ici pour ajouter l'objet",
-    "edit": "Editer",
-    "editModalBtnDeleteAnnotation":"Supprimer cette annotation",
-    "editModalBtnSaveWithoutShapes":"Enregistrer l'annotation sans aucune forme associée ?",
-    "editModalSaveAnnotationWithNoShapesMsg":"Aucune forme n'est associée à cette annotation.",
-    "ellipseTooltip": "Ovale",
-    "emptyTemplateMessage": "Il n'y a pas de calques d'image sur ce canevas",
-    "fillColorTooltip": "Choisir une couleur de remplissage",
-    "filterObjects": "Filtrer la liste",
-    "freehandTooltip": "Tracé libre",
-    "fullScreen": "Plein écran",
-    "fullScreenTooltip": "Ouvrir en plein écran",
-    "fullScreenWindowTooltip": "Ouvrir cette fenêtre en plein écran",
-    "grayscaleTooltip": "Niveaux de gris",
-    "imageManipulationTooltip": "Modifier les réglages de l'image",
-    "imagesFor": "Images pour",
-    "imageView": "Vue image",
-    "invertTooltip": "Couleurs inversées",
-    "item": "objet",
-    "items": "objets",
-    "label": "Libellé",
-    "license": "Licence",
-    "links": "Liens",
-    "load": "Ajouter",
-    "logo": "Logo",
-    "manifest": "Manifest IIIF",
-    "metadataTooltip": "Afficher les informations/métadonnées",
-    "mirrorTooltip": "Retourner l'image (axe horizontal)",
-    "more": "restants",
-    "myManifests": "Mes objets",
-    "newObject": "Nouvel objet",
-    "no": "Non",
-    "noIndex": "Aucun index disponible",
-    "objectMetadata": "Métadonnées",
-    "opacityLabel": "opacité",
-    "pinTooltip": "Marqueur",
-    "pointerTooltip": "Pointeur",
-    "polygonTooltip": "Polygone",
-    "preloadedManifests": "Objets disponibles",
-    "rectangleTooltip": "Rectangle",
-    "related": "Ressources liées",
-    "resetTooltip": "Réinitialiser",
-    "rights": "Droits",
-    "rightsStatus": "Statut des droits",
-    "rotateLeftTooltip": "Rotation antihoraire 90&deg;",
-    "rotateRightTooltip": "Rotation horaire 90&deg;",
-    "saturationTooltip": "Saturation",
-    "save": "Enregistrer",
-    "scrollView": "Défilement horizontal",
-    "searchLabelSelect": "Choisir le service",
-    "searchNotAvailable": "Aucun service de recherche disponible",
-    "searchText": "Rechercher",
-    "seeAlso": "Voir aussi",
-    "selectGrid": "Sélectionner la grille de votre choix",
-    "sidePanelTooltip": "Ouvrir le panneau latéral",
-    "solid":"Ligne continue",
-    "tabTitleIndex": "Index",
-    "tabTitleLayers": "Calques",
-    "tabTitleSearch": "Rechercher",
-    "thick": "Epais",
-    "thickest": "Plus épais",
-    "thumbnailsView": "Mosaïque",
-    "unspecified": "Non spécifié",
-    "url": "URL",
-    "viewTypeTooltip": "Changer le type de vue",
-    "visibleLabel": "visible",
-    "within": "Fait partie de",
-    "yes": "Oui"
-}
diff --git a/locales/ga/translation.json b/locales/ga/translation.json
deleted file mode 100644
index dce0d8bb39fd7b6b05799880870af9c458ccad5e..0000000000000000000000000000000000000000
--- a/locales/ga/translation.json
+++ /dev/null
@@ -1,97 +0,0 @@
-{
-  "addItem": "Cuir mír leis",
-  "addNewObject": "Cuir ábhar ó URL",
-  "addSlotAbove": "Cuir Sliotán Thuas",
-  "addSlotBelow": "Cuir Sliotán Thíos",
-  "addSlotLeft": "Cuir Sliotán ar chlé",
-  "addSlotRight": "Cuir sliotán ar dheis",
-  "addTagsHere": "Cuir clibeanna anseo",
-  "annotationTooltip": "Malartaigh nótaí",
-  "attribution": "Admháil",
-  "bookmark": "Leabharmharc",
-  "bookmarkTitle": "Leabharmharcáil nó Roinn do Spás Oibre",
-  "bookmarkTooltip": "Leabharmharcáil an cás Mirador seo",
-  "bookView": "Amharc ar an leabhar",
-  "borderColorTooltip": "Roghnaigh dath imlíne don nodaireacht",
-  "borderTypeTooltip": "Roghnaigh stíl imlíne",
-  "brightnessTooltip": "Oiriúnaigh gile",
-  "cancel": "Cealaigh",
-  "cancelAnnotation": "An mian leat an nóta seo a chealú?",
-  "changeLayout": "Athraigh an Leagan Amach",
-  "changeLayoutTooltip": "Athraigh líon na sliotán atá le feiceáil",
-  "cite": "Luaigh",
-  "close": "Dún",
-  "closeTooltip": "Dún an fhuinneog seo",
-  "comments": "Nótaí tráchta",
-  "contrastTooltip": "Oiriúnaigh codarsnacht",
-  "crop": "Gearr amach",
-  "croptool": "Cuir eagar ar an íomhá",
-  "croptoolTooltip": "Gabh an íomhá de réir de shonraíocht féin",
-  "editImage": "Athraigh méid an íomhá",
-  "dashed": "Daiseanna",
-  "delete": "Scrios",
-  "deleteAnnotation": "An mian leat an nodaireacht seo agus pé cruth a bhaineann leis a scrios?",
-  "deleteShape": "An mian leat an cruth seo a scrios?",
-  "description": "Cur síos",
-  "details": "Sonraí",
-  "dotDashed": "Poncanna; daiseanna",
-  "dropToLoad": "Buail isteach lastliosta",
-  "edit": "Cuir in eagar",
-  "editModalBtnDeleteAnnotation": "Scrios an nodaireacht seo",
-  "editModalBtnSaveWithoutShapes": "Sábháil nodaireacht gan cruthanna",
-  "editModalSaveAnnotationWithNoShapesMsg": "N bhaineann cruth ar bith leis an nodaireacht seo",
-  "ellipseTooltip": "Nodaireacht ubhchruthach",
-  "fillColorTooltip": "Roghnaigh dath líonta don nodaireacht",
-  "filterObjects": "Scag ábhair",
-  "freehandTooltip": "Nodaireacht shaorfhoirme",
-  "fullScreen": "Lánscáileán",
-  "fullScreenTooltip": "Malartaigh lánscáileán",
-  "fullScreenWindowTooltip": "Malartaigh an fhuinneog seo go lánscáileán",
-  "grayscaleTooltip": "Scoránaigh an liathscála",
-  "help": "Cabhair",
-  "imageCapture": "Gabháil íomhá",
-  "imageManipulationTooltip": "Malartaigh láimhsiú íomhá ",
-  "imageView": "Amharc Íomhánna",
-  "invertTooltip": "Aisiompaigh na dathanna",
-  "item": "mír ",
-  "items": "míreanna",
-  "label": "Lipéad",
-  "language": "Teanga",
-  "license": "Ceadúnas",
-  "links": "Naisc",
-  "load": "Lódáil",
-  "logo": "Lógó",
-  "map": "Amharc ar chomhthéacs geografach",
-  "metadataTooltip": "Amharc ar eolas/meiteashonraí i leith an ábhar seo",
-  "more": "Tuilleadh",
-  "newObject": "Ábhar Nua",
-  "no": "Ní hea",
-  "noIndex": "Níl fáil ar innéacs",
-  "objectMetadata": "Meiteashonraí an ábhair",
-  "pinTooltip": "Nodaireacht bhioráin",
-  "pointerTooltip": "Pointeoir",
-  "polygonTooltip": "Nodaireacht pholagáin",
-  "rectangleTooltip": "Nodaireacht dronuilleoige",
-  "related": "Gaolmhar",
-  "resetTooltip": "Athshocraigh gach rialtán",
-  "rights": "Cearta",
-  "rightsStatus": "Stádas cirt",
-  "rotateLeftTooltip": "Cas 90céim; ar chlé",
-  "rotateRightTooltip": "Cas 90céim; ar dheis",
-  "saturationTooltip": "Coigeartaigh an sáithiú",
-  "save": "Sábháil",
-  "scrollView": "Amharc Scrollaithe",
-  "seeAlso": "Féach freisin",
-  "selectGrid": "Roghnaigh greille thíos",
-  "sidePanelTooltip": "malartaigh an painéal taoibh",
-  "solid": "dlúthlíne",
-  "thick": "tiúlíne",
-  "thickest": "líne is tiubha",
-  "thumbnailsView": "Amharc ar an gailearaí",
-  "transcribe": "Scríobh amach an mhír seo",
-  "unspecified": "Neamhshonraithe",
-  "url": "URL",
-  "viewTypeTooltip": "Athraigh amhairc",
-  "within": "Laistigh de",
-  "yes": "Tá"
-}
diff --git a/locales/ja/translation.json b/locales/ja/translation.json
deleted file mode 100644
index 88125308aef6938b750759d8734c20e91b34780a..0000000000000000000000000000000000000000
--- a/locales/ja/translation.json
+++ /dev/null
@@ -1,82 +0,0 @@
-{
-    "addItem": "アイテム追加",
-    "addNewObject": "URLで新規オブジェクト追加",
-    "addSlotAbove": "上にスロット追加",
-    "addSlotBelow": "下にスロット追加",
-    "addSlotLeft": "左にスロット追加",
-    "addSlotRight": "右にスロット追加",
-    "addTagsHere": "ここでタグを追加",
-    "annotationTooltip": "アノテーション",
-    "attribution": "帰属",
-    "bookmark": "ブックマーク",
-    "bookmarkTitle": "現在の表示内容をブックマーク",
-    "bookmarkTooltip": "このインスタンスをブックマーク",
-    "bookView": "Book表示モード",
-    "borderColorTooltip": "線の色を選択",
-    "borderTypeTooltip": "線のスタイルを選択",
-    "brightnessTooltip": "明度調整",
-    "cancel": "キャンセル",
-    "cancelAnnotation": "この注釈を取消したいですか?",
-    "changeLayout": "レイアウト変更",
-    "changeLayoutTooltip": "スロット数の変更",
-    "close": "閉じる",
-    "closeTooltip": "このウインドウを閉じる",
-    "comments": "コメント",
-    "contrastTooltip": "コントラスト調整",
-    "dashed":"破線",
-    "delete": "削除",
-    "deleteAnnotation": "この注釈と関連するすべての図形を削除したいですか?",
-    "deleteShape":"この図形を削除したいですか?",
-    "details": "詳細",
-    "dotDashed":"一点鎖線",
-    "dropToLoad": "ドロップしてマニフェストを読み込み",
-    "edit": "編集",
-    "editModalBtnDeleteAnnotation":"この注釈を削除",
-    "editModalBtnSaveWithoutShapes":"図形なしで注釈を保存",
-    "editModalSaveAnnotationWithNoShapesMsg":"この注釈に関連する図形はありません。",
-    "ellipseTooltip": "楕円形で注釈",
-    "fillColorTooltip": "塗り潰し色を選択",
-    "filterObjects": "フィルタをかける対象",
-    "freehandTooltip": "フリーハンドで注釈",
-    "fullScreen": "全画面表示",
-    "fullScreenTooltip": "フルスクリーン表示",
-    "fullScreenWindowTooltip": "このウインドウをフルスクリーン表示",
-    "grayscaleTooltip": "グレースケール",
-    "imageManipulationTooltip": "画像操作",
-    "imageView": "画像表示モード",
-    "invertTooltip": "色反転",
-    "item": "アイテム",
-    "items": "アイテム",
-    "license": "利用許諾条件(ライセンス)",
-    "links": "リンク",
-    "load": "読み込み",
-    "logo": "ロゴ",
-    "metadataTooltip": "この資料の情報を表示",
-    "more": "さらに",
-    "newObject": "新しいオブジェクト",
-    "no": "いいえ",
-    "objectMetadata": "オブジェクトのメタデータ",
-    "pinTooltip": "ピンポイントで注釈",
-    "pointerTooltip": "ポインター",
-    "polygonTooltip": "多角形で注釈",
-    "rectangleTooltip": "矩形で注釈",
-    "related": "関連リソース",
-    "resetTooltip": "設定をリセット",
-    "rights": "権利関係",
-    "rightsStatus": "権利状態",
-    "rotateLeftTooltip": "90度左回転",
-    "rotateRightTooltip": "90度右回転",
-    "saturationTooltip": "彩度調整",
-    "save": "保存",
-    "scrollView": "スクロール表示モード",
-    "seeAlso": "機械可読形式の解説",
-    "selectGrid": "以下のグリッドから選択",
-    "sidePanelTooltip": "サイドパネルを表示",
-    "solid":"実線",
-    "thumbnailsView": "ギャラリー表示モード",
-    "unspecified": "未特定の",
-    "url": "URL",
-    "viewTypeTooltip": "表示モード切替え",
-    "within": "このリソースを含むリソース",
-    "yes": "はい"
-}
diff --git a/locales/ko/translation.json b/locales/ko/translation.json
deleted file mode 100644
index 7a0b5d7d5b4f87f8dacf95f3e34ad200bf6b26dd..0000000000000000000000000000000000000000
--- a/locales/ko/translation.json
+++ /dev/null
@@ -1,83 +0,0 @@
-{
-    "addItem": "아이템 추가",
-    "addNewObject": "URL 사용 오브젝트 추가",
-    "addSlotAbove": "슬롯 추가 - 위",
-    "addSlotBelow": "슬롯 추가 - 아래",
-    "addSlotLeft": "슬롯 추가 - 왼쪽",
-    "addSlotRight": "슬롯 추가 - 오른쪽",
-    "addTagsHere": "태그 추가",
-    "annotationTooltip": "주석 모드 전환",
-    "attribution": "저작자 정보",
-    "bookmark": "북마크",
-    "bookmarkTitle": "작업공간 공유/북마크",
-    "bookmarkTooltip": "북마크 하기",
-    "bookView": "책으로 보기",
-    "borderColorTooltip": "경계 색 선택",
-    "borderTypeTooltip": "경계 스타일",
-    "brightnessTooltip": "명도 변환",
-    "cancel": "취소",
-    "cancelAnnotation": "이 주석을 취소하시겠습니까?",
-    "changeLayout": "레이아웃 변경",
-    "changeLayoutTooltip": "슬롯 개수 변경",
-    "close": "닫기",
-    "closeTooltip": "창 닫기",
-    "comments": "코멘트",
-    "contrastTooltip": "대비 조절",
-    "dashed": "파선",
-    "delete": "지우기",
-    "deleteAnnotation": "이 주석과 그에 관련된 도형들을 삭제하시겠습니까?",
-    "deleteShape":"이 도형을 삭제하시겠습니까?",
-    "details": "세부 정보",
-    "dotDashed":"쇄선",
-    "dropToLoad": "매니페스트를 여기 놓으세요.",
-    "edit": "편집",
-    "editModalBtnDeleteAnnotation":"주석 삭제",
-    "editModalBtnSaveWithoutShapes":"도형 없이 주석 저장하기",
-    "editModalSaveAnnotationWithNoShapesMsg":"이 주석과 관련된 도형이 없습니다.",
-    "ellipseTooltip": "타원형",
-    "fillColorTooltip": "면색",
-    "filterObjects": "오브젝트 필터",
-    "freehandTooltip": "프리핸드",
-    "fullScreen": "전체화면",
-    "fullScreenTooltip": "전체화면 전환",
-    "fullScreenWindowTooltip": "이 창을 전체화면으로",
-    "grayscaleTooltip": "그레이스케일 전환",
-    "imageManipulationTooltip": "이미지 변환",
-    "imageView": "이미지로 보기",
-    "invertTooltip": "색상 반전",
-    "item": "아이템",
-    "items": "아이템",
-    "license": "라이선스",
-    "links": "고리",
-    "load": "불러오기",
-    "logo": "로고",
-    "metadataTooltip": "메타데이터",
-    "more": "더 보기",
-    "newObject": "새 오브젝트",
-    "no": "아니요",
-    "noIndex": "인덱스가 없습니다",
-    "objectMetadata": "오브젝트 메타데이터",
-    "pinTooltip": "핀",
-    "pointerTooltip": "포인터",
-    "polygonTooltip": "다각형",
-    "rectangleTooltip": "직사각형",
-    "related": "관련고리",
-    "resetTooltip": "이미지 리셋",
-    "rights": "저작권 정보",
-    "rightsStatus": "저작권 상황",
-    "rotateLeftTooltip": "90도 좌회전",
-    "rotateRightTooltip": "90도 우회전",
-    "saturationTooltip": "채도 변환",
-    "save": "저장",
-    "scrollView": "스크롤로 보기",
-    "seeAlso": "같이 보기",
-    "selectGrid": "격자 선택하기",
-    "sidePanelTooltip": "사이드 패널 전환",
-    "solid":"실선",
-    "thumbnailsView": "썸네일로 보기",
-    "unspecified": "불특정",
-    "url": "URL",
-    "viewTypeTooltip": "뷰 타입 전환",
-    "within": "상위 컬렉션",
-    "yes": "네"
-}
diff --git a/locales/nl/translation.json b/locales/nl/translation.json
deleted file mode 100644
index a43d39f503db44131471e97dc664b05e96b13a56..0000000000000000000000000000000000000000
--- a/locales/nl/translation.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
-    "addItem": "Voeg item toe",
-    "changeLayout": "Pas layout aan",
-    "selectGrid": "Kies een grid hieronder",
-    "bookmark": "Favoriet",
-    "close": "Sluiten",
-    "bookmarkTitle": "Favoriet of deel uw werkset",
-    "filterObjects": "Filter objecten",
-    "addNewObject": "Voeg nieuw object toe via URL",
-    "more": "meer",
-    "item": "item",
-    "items": "items",
-    "details": "Details",
-    "rights": "Copyright",
-    "rightsStatus": "Copyright Status",
-    "unspecified": "Niet gespecifieerd",
-    "links": "Links",
-    "addSlotRight": "Voeg Slot toe rechts",
-    "addSlotLeft": "Voeg Slot toe links",
-    "addSlotAbove": "Voeg Slot toe bovenaan",
-    "addSlotBelow": "Voeg Slot toe onderaan",
-    "imageView": "Beeld presentatie",
-    "bookView": "Boek presentatie",
-    "scrollView": "Scroll view",
-    "thumbnailsView": "Bekijk thumbnail",
-    "comments": "Commentaar",
-    "addTagsHere": "Voeg hier tags toe",
-    "save": "Opslaan",
-    "cancel": "Annuleren",
-    "edit": "Bewerken",
-    "delete": "Verwijderen",
-    "url": "URL",
-    "newObject": "Nieuw Object",
-    "objectMetadata": "Object Metadata",
-    "fullScreen": "Volledig scherm",
-    "logo": "Logo",
-    "load": "Laad",
-    "dropToLoad": "Drop hier om the laden"
-}
diff --git a/locales/zh-CN/translation.json b/locales/zh-CN/translation.json
deleted file mode 100644
index 5140fed775472a5c3f369d7526355175f2cdc25e..0000000000000000000000000000000000000000
--- a/locales/zh-CN/translation.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
-    "addItem": "添加项",
-    "addNewObject": "从 URL 建立新的物件",
-    "addSlotAbove": "添加插槽(上)",
-    "addSlotBelow": "添加插槽(下)",
-    "addSlotLeft": "添加插槽(左)",
-    "addSlotRight": "添加插槽(右)",
-    "addTagsHere": "添加标签",
-    "bookmark": "添加书签",
-    "bookmarkTitle": "为当前工作区创建书签",
-    "bookmarkTooltip": "为当前进程创建书签",
-    "bookView": "书本视图",
-    "borderColorTooltip": "选择边框颜色",
-    "borderTypeTooltip": "选择边框样式",
-    "brightnessTooltip": "调整亮度",
-    "cancel": "取消",
-    "cancelAnnotation": "你想取消这个注释吗?",
-    "changeLayout": "更改布局",
-    "changeLayoutTooltip": "更改可见插槽的数量",
-    "close": "关闭",
-    "closeTooltip": "关闭这个窗口",
-    "comments": "评论",
-    "contrastTooltip": "调整对比度",
-    "dashed": "虚线",
-    "delete": "删除",
-    "deleteAnnotation": "你想删除这个注释和所有相关的形状吗?",
-    "deleteShape": "你想删除这个形状吗?",
-    "details": "详细资料",
-    "dotDashed": "点和虚线",
-    "dropToLoad": "拖放以装载清单",
-    "edit": "编辑",
-    "editModalBtnDeleteAnnotation": "删除这个注释",
-    "editModalBtnSaveWithoutShapes": "存储注释但忽略形状",
-    "editModalSaveAnnotationWithNoShapesMsg": "这个注释没有相关的形状。",
-    "ellipseTooltip": "椭圆形注释",
-    "fillColorTooltip": "选择填充颜色",
-    "filterObjects": "过滤物件",
-    "freehandTooltip": "自由注释",
-    "fullScreen": "全屏",
-    "fullScreenTooltip": "进入/退出全屏",
-    "fullScreenWindowTooltip": "进入/退出全屏",
-    "grayscaleTooltip": "灰度",
-    "imageView": "图像视图",
-    "invertTooltip": "反色",
-    "item": "项目",
-    "items": "项目",
-    "links": "链接",
-    "load": "载入",
-    "logo": "徽标",
-    "metadataTooltip": "查看这个物件的信息/元数据",
-    "more": "更多",
-    "myManifests": "我的物件",
-    "newObject": "建立新的物件",
-    "no": "否",
-    "objectMetadata": "物件元数据",
-    "pinTooltip": "点注释",
-    "polygonTooltip": "多边形注释",
-    "preloadedManifests": "预設的物件",
-    "rectangleTooltip": "长方形注释",
-    "resetTooltip": "重置图像",
-    "rights": "版权",
-    "rightsStatus": "版权状态",
-    "rotateLeftTooltip": "顺时针旋转 90 度",
-    "rotateRightTooltip": "逆时针旋转 90 度",
-    "saturationTooltip": "调整色彩饱和度",
-    "save": "保存",
-    "scrollView": "滚动视图",
-    "selectGrid": "选中下方单元格",
-    "sidePanelTooltip": "打开/关闭侧边栏",
-    "solid": "实线",
-    "thumbnailsView": "图库视图",
-    "unspecified": "未指定的",
-    "url": "URL",
-    "viewTypeTooltip": "更改视图",
-    "yes": "是"
-}
diff --git a/locales/zh-TW/translation.json b/locales/zh-TW/translation.json
deleted file mode 100644
index dedb23bd3c9bb7650a6493ac30d5bd971f4afa1b..0000000000000000000000000000000000000000
--- a/locales/zh-TW/translation.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
-    "addItem": "添加項",
-    "addNewObject": "從 URL 建立新的物件",
-    "addSlotAbove": "添加插槽(上)",
-    "addSlotBelow": "添加插槽(下)",
-    "addSlotLeft": "添加插槽(左)",
-    "addSlotRight": "添加插槽(右)",
-    "addTagsHere": "添加標簽",
-    "bookmark": "添加書簽",
-    "bookmarkTitle": "為當前工作區創建書簽",
-    "bookmarkTooltip": "為當前進程創建書簽",
-    "bookView": "書本視圖",
-    "borderColorTooltip": "選擇邊框顏色",
-    "borderTypeTooltip": "選擇邊框樣式",
-    "brightnessTooltip": "調整亮度",
-    "cancel": "取消",
-    "cancelAnnotation": "你想取消這個注釋嗎?",
-    "changeLayout": "改變布局",
-    "changeLayoutTooltip": "更改可見插槽的數量",
-    "close": "關閉",
-    "closeTooltip": "關閉這個窗口",
-    "comments": "評論",
-    "contrastTooltip": "調整對比度",
-    "dashed": "虛線",
-    "delete": "刪除",
-    "deleteAnnotation": "你想刪除這個注釋和所有相關的形狀嗎?",
-    "deleteShape": "你想刪除這個形狀嗎?",
-    "details": "詳細資料",
-    "dotDashed": "點和虛線",
-    "dropToLoad": "拖放以裝載清單",
-    "edit": "編輯",
-    "editModalBtnDeleteAnnotation": "刪除這個注釋",
-    "editModalBtnSaveWithoutShapes": "存儲注釋但忽略形狀",
-    "editModalSaveAnnotationWithNoShapesMsg": "這個注釋沒有相關的形狀。",
-    "ellipseTooltip": "橢圓形注釋",
-    "fillColorTooltip": "選擇填充顏色",
-    "filterObjects": "過濾物件",
-    "freehandTooltip": "自由注釋",
-    "fullScreen": "全屏",
-    "fullScreenTooltip": "進入/退出全屏",
-    "fullScreenWindowTooltip": "進入/退出全屏",
-    "grayscaleTooltip": "灰度",
-    "imageView": "圖像視圖",
-    "invertTooltip": "反色",
-    "item": "項目",
-    "items": "項目",
-    "links": "鏈接",
-    "load": "載入",
-    "logo": "徽標",
-    "metadataTooltip": "查看這個物件的信息/元數據",
-    "more": "更多",
-    "myManifests": "我的物件",
-    "newObject": "建立新的物件",
-    "no": "否",
-    "objectMetadata": "物件元數據",
-    "pinTooltip": "點注釋",
-    "polygonTooltip": "多邊形注釋",
-    "preloadedManifests": "預設的物件",
-    "rectangleTooltip": "長方形注釋",
-    "resetTooltip": "重置圖像",
-    "rights": "版權",
-    "rightsStatus": "版權狀態",
-    "rotateLeftTooltip": "順時針旋轉 90 度",
-    "rotateRightTooltip": "逆時針旋轉 90 度",
-    "saturationTooltip": "調整色彩飽和度",
-    "save": "保存",
-    "scrollView": "滾動視圖",
-    "selectGrid": "選中下方單元格",
-    "sidePanelTooltip": "打開/關閉側邊欄",
-    "solid": "實線",
-    "thumbnailsView": "圖庫視圖",
-    "unspecified": "未指定的",
-    "url": "URL",
-    "viewTypeTooltip": "更改視圖",
-    "yes": "是"
-}
diff --git a/locales/zh/translation.json b/locales/zh/translation.json
deleted file mode 100644
index 58896cbba56b9cbbbc8472b4082b5ed4d5df4f14..0000000000000000000000000000000000000000
--- a/locales/zh/translation.json
+++ /dev/null
@@ -1,74 +0,0 @@
-{
-    "addItem": "添加项",
-    "addNewObject": "从 URL 建立新的物件",
-    "addSlotAbove": "添加插槽(上)",
-    "addSlotBelow": "添加插槽(下)",
-    "addSlotLeft": "添加插槽(左)",
-    "addSlotRight": "添加插槽(右)",
-    "addTagsHere": "添加标签",
-    "bookmark": "添加书签",
-    "bookmarkTitle": "为当前工作区创建书签",
-    "bookmarkTooltip": "为当前进程创建书签",
-    "bookView": "书本视图",
-    "borderColorTooltip": "选择边框颜色",
-    "borderTypeTooltip": "选择边框样式",
-    "brightnessTooltip": "调整亮度",
-    "cancel": "取消",
-    "cancelAnnotation": "你想取消这个注释吗?",
-    "changeLayout": "更改布局",
-    "changeLayoutTooltip": "更改可见插槽的数量",
-    "close": "关闭",
-    "closeTooltip": "关闭这个窗口",
-    "comments": "评论",
-    "contrastTooltip": "调整对比度",
-    "dashed": "虚线",
-    "delete": "删除",
-    "deleteAnnotation": "你想删除这个注释和所有相关的形状吗?",
-    "deleteShape": "你想删除这个形状吗?",
-    "details": "详细资料",
-    "dotDashed": "点和虚线",
-    "dropToLoad": "拖放以装载清单",
-    "edit": "编辑",
-    "editModalBtnDeleteAnnotation": "删除这个注释",
-    "editModalBtnSaveWithoutShapes": "存储注释但忽略形状",
-    "editModalSaveAnnotationWithNoShapesMsg": "这个注释没有相关的形状。",
-    "ellipseTooltip": "椭圆形注释",
-    "fillColorTooltip": "选择填充颜色",
-    "filterObjects": "过滤物件",
-    "freehandTooltip": "自由注释",
-    "fullScreen": "全屏",
-    "fullScreenTooltip": "进入/退出全屏",
-    "fullScreenWindowTooltip": "进入/退出全屏",
-    "grayscaleTooltip": "灰度",
-    "imageView": "图像视图",
-    "invertTooltip": "反色",
-    "item": "项目",
-    "items": "项目",
-    "links": "链接",
-    "load": "载入",
-    "logo": "徽标",
-    "metadataTooltip": "查看这个物件的信息/元数据",
-    "more": "更多",
-    "newObject": "建立新的物件",
-    "no": "否",
-    "objectMetadata": "物件元数据",
-    "pinTooltip": "点注释",
-    "polygonTooltip": "多边形注释",
-    "rectangleTooltip": "长方形注释",
-    "resetTooltip": "重置图像",
-    "rights": "版权",
-    "rightsStatus": "版权状态",
-    "rotateLeftTooltip": "顺时针旋转 90 度",
-    "rotateRightTooltip": "逆时针旋转 90 度",
-    "saturationTooltip": "调整色彩饱和度",
-    "save": "保存",
-    "scrollView": "滚动视图",
-    "selectGrid": "选中下方单元格",
-    "sidePanelTooltip": "打开/关闭侧边栏",
-    "solid": "实线",
-    "thumbnailsView": "图库视图",
-    "unspecified": "未指定的",
-    "url": "URL",
-    "viewTypeTooltip": "更改视图",
-    "yes": "是"
-}
diff --git a/package.json b/package.json
index 929e59f379186b063ad0154ffd4e202f75cb2461..255066f6dbe593c0782533ffd7e00212908216e1 100644
--- a/package.json
+++ b/package.json
@@ -1,90 +1,73 @@
 {
-  "name": "mirador",
-  "version": "2.6.1",
-  "description": "Multi-window image viewer, a web-based tool to support researcher goals",
-  "files": ["dist/*"],
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/ProjectMirador/mirador"
-  },
-  "license": "Apache-2.0",
-  "devDependencies": {
-    "eslint": "^3.17.1",
-    "eslint-config-airbnb-base": "^11.1.1",
-    "eslint-plugin-import": "^2.2.0",
-    "gitbook": "3.2.0",
-    "gitbook-cli": "2.3.0",
-    "gitbook-plugin-search": "2.2.1",
-    "grunt": ">=0.4.5 <1.0.0",
-    "grunt-cli": "*",
-    "grunt-contrib-clean": "*",
-    "grunt-contrib-compress": "*",
-    "grunt-contrib-concat": "*",
-    "grunt-contrib-connect": "*",
-    "grunt-contrib-copy": "*",
-    "grunt-contrib-cssmin": "*",
-    "grunt-contrib-jasmine": "^1.2.0",
-    "grunt-contrib-jshint": "*",
-    "grunt-contrib-less": "^1.4.0",
-    "grunt-contrib-uglify": "*",
-    "grunt-contrib-watch": "*",
-    "grunt-css-selectors": "^1.3.0",
-    "grunt-git-describe": "*",
-    "grunt-githooks": "^0.3.1",
-    "grunt-template-jasmine-istanbul": "^0.3.3",
-    "gruntify-eslint": "^3.1.0",
-    "jasmine-core": "^2.1.3",
-    "jasmine-jquery": "^2.0.5",
-    "jstree": "^3.3.4",
-    "karma": "^1.5",
-    "karma-chrome-launcher": "^0.1.7",
-    "karma-coverage": "^0.2.7",
-    "karma-coveralls": "^1.1.2",
-    "karma-firefox-launcher": "^0.1.3",
-    "karma-jasmine": "^0.3.5",
-    "karma-json-fixtures-preprocessor": "0.0.6",
-    "karma-phantomjs-launcher": "^1.0",
-    "karma-safari-launcher": "^0.1.1",
-    "karma-sauce-launcher": "^0.2.10",
-    "karma-spec-reporter": "^0.0.16",
-    "sinon": "^1.17.6"
-  },
+  "name": "minimal_redux_poc",
+  "version": "1.0.0",
+  "description": "",
+  "main": "index.js",
   "scripts": {
-    "start": "./node_modules/.bin/grunt serve",
-    "test": "./node_modules/.bin/karma start ./karma.conf.js",
-    "travis": "./node_modules/.bin/grunt ci --verbose --force & npm run test",
-    "update_demo": "./bin/update_demo.sh",
-    "release": "./bin/create_release.sh",
-    "lint": "./node_modules/.bin/eslint js/src"
+    "lint": "node_modules/.bin/eslint ./",
+    "server": "node_modules/.bin/http-server",
+    "test": "npm run build && npm run lint && jest -c jest.json",
+    "test:coverage": "jest -c jest.json --coverage",
+    "test:watch": "jest -c jest.json --watch",
+    "build": "webpack --mode=production",
+    "build:dev": "webpack --mode=development",
+    "build:watch": "webpack --watch --mode=development",
+    "start": "npm run build:dev && concurrently \"npm run build:watch\" \"npm run server -- -p 4444\""
   },
+  "license": "Apache-2.0",
+  "contributors": [
+    "Drew Winget <scipioaffricanus@gmail.com> (https://aeschylus.net/)",
+    "Jack Reed <phillipjreed@gmail.com> (https://www.jack-reed.com)"
+  ],
+  "repository": "https://github.com/ProjectMirador/research-and-demos/tree/master/minimal_redux_poc",
   "dependencies": {
-    "bootbox": "^4.4.0",
-    "bootstrap": "^3.3.7",
-    "d3": "^3.5.17",
-    "font-awesome": "^4.7.0",
-    "handlebars": "^4.0.11",
-    "i18next": "^4.2.0",
-    "i18next-browser-languagedetector": "^1.0.1",
-    "i18next-xhr-backend": "^1.3.0",
-    "iiif-evented-canvas": "^0.0.3-beta",
-    "iiif-layout-functions": "0.0.2-alpha",
-    "javascript-state-machine": "^2.3.4",
-    "jquery": "^3.1.1",
-    "jquery-migrate": "^3.0.0",
-    "jquery-plugin": "git+https://github.com/cowboy/jquery-tiny-pubsub.git",
-    "jquery-ui-dist": "^1.12.1",
-    "jquery.scrollto": "^1.4.12",
-    "material-design-icons": "^3.0.1",
-    "mousetrap": "^1.4.6",
-    "openseadragon": "^2.2.1",
-    "paper": "^0.10.2",
-    "qtip2": "^3.0.3",
-    "sanitize-html": "practicefusion/sanitize-html#include-dist-files",
-    "select2": "^4.0.3",
-    "simple-pagination.js": "^1.6.0",
-    "spectrum-colorpicker": "^1.8.0",
-    "tinymce": "^4.1.7",
-    "urijs": "^1.16.1"
+    "css-ns": "^1.2.2",
+    "deepmerge": "^3.0.0",
+    "manifesto.js": "^3.0.9",
+    "node-fetch": "2.1.1",
+    "node-sass": "^4.9.2",
+    "openseadragon": "^2.4.0",
+    "prop-types": "^15.6.2",
+    "react": "^16.4.0",
+    "react-dom": "^16.4.0",
+    "react-redux": "^5.0.7",
+    "redux": "3.7.2",
+    "redux-devtools-extension": "^2.13.2",
+    "redux-thunk": "2.2.0",
+    "sass-loader": "^7.1.0"
   },
-  "engine": "node < 7.0.0"
+  "devDependencies": {
+    "@babel/core": "^7.2.0",
+    "@babel/preset-env": "^7.2.0",
+    "@babel/preset-react": "^7.0.0",
+    "babel-core": "^7.0.0-bridge.0",
+    "babel-eslint": "9.0.0",
+    "babel-jest": "^23.6.0",
+    "babel-loader": "^8.0.4",
+    "babel-plugin-named-asset-import": "^0.2.3",
+    "concurrently": "^4.0.1",
+    "css-loader": "^1.0.0",
+    "enzyme": "^3.4.4",
+    "enzyme-adapter-react-16": "^1.2.0",
+    "eslint": "^5.10.0",
+    "eslint-config-airbnb": "^17.1.0",
+    "eslint-config-react-app": "^3.0.5",
+    "eslint-loader": "^2.1.1",
+    "eslint-plugin-flowtype": "^3.2.0",
+    "eslint-plugin-import": "^2.14.0",
+    "eslint-plugin-jest": "^22.1.2",
+    "eslint-plugin-jsx-a11y": "^6.1.2",
+    "eslint-plugin-react": "^7.11.1",
+    "http-server": "^0.11.1",
+    "jest": "^22.4.4",
+    "jest-fetch-mock": "^1.5.0",
+    "jest-puppeteer": "^3.0.1",
+    "puppeteer": "^1.4.0",
+    "react-dev-utils": "^6.1.1",
+    "redux-mock-store": "^1.5.1",
+    "style-loader": "^0.22.1",
+    "terser-webpack-plugin": "^1.2.1",
+    "webpack": "^4.27.1",
+    "webpack-cli": "^3.1.2"
+  }
 }
diff --git a/setupJest.js b/setupJest.js
new file mode 100644
index 0000000000000000000000000000000000000000..d5399cbfdb67ee85a39a98a555cb8c2275f5d535
--- /dev/null
+++ b/setupJest.js
@@ -0,0 +1,21 @@
+// Setup Jest to mock fetch
+
+import { JSDOM } from 'jsdom'; // eslint-disable-line import/no-extraneous-dependencies
+import fetch from 'jest-fetch-mock'; // eslint-disable-line import/no-extraneous-dependencies
+import Enzyme from 'enzyme'; // eslint-disable-line import/no-extraneous-dependencies
+import Adapter from 'enzyme-adapter-react-16'; // eslint-disable-line import/no-extraneous-dependencies
+
+const jsdom = new JSDOM('<!doctype html><html><body><div id="main"></div></body></html>');
+const { window } = jsdom;
+
+window.HTMLCanvasElement.prototype.getContext = () => {};
+jest.setMock('node-fetch', fetch);
+global.fetch = require('jest-fetch-mock'); // eslint-disable-line import/no-extraneous-dependencies
+
+global.window = window;
+global.document = window.document;
+global.navigator = {
+  userAgent: 'node.js',
+};
+
+Enzyme.configure({ adapter: new Adapter() });
diff --git a/spec/annotations/annotation-utils.stub.js b/spec/annotations/annotation-utils.stub.js
deleted file mode 100644
index c14f9cbe13b686ee6afd9b98fefa21e798b557d7..0000000000000000000000000000000000000000
--- a/spec/annotations/annotation-utils.stub.js
+++ /dev/null
@@ -1,59 +0,0 @@
-(function () {
-
-  window.MockItem = function () {
-
-  };
-
-  MockItem.prototype = {
-    getItem: jasmine.createSpy().and.callFake(function() { return this; }),
-    translateByXY: jasmine.createSpy(),
-    translateByPoint: jasmine.createSpy(),
-    click: jasmine.createSpy(),
-    setOnMouseDownListener: jasmine.createSpy(),
-    onMouseDown: jasmine.createSpy(),
-    resize:jasmine.createSpy(),
-    remove: jasmine.createSpy(),
-    rotate: jasmine.createSpy(),
-    getWidth: jasmine.createSpy(),
-    getHeight: jasmine.createSpy(),
-    setSize: jasmine.createSpy(),
-    addData: jasmine.createSpy(),
-    getData: function (key) {
-      if (key === 'pivot') {
-        return {
-          add: jasmine.createSpy()
-        };
-      }
-    },
-    getMask:function () {
-      return this;
-    },
-    setPosition: jasmine.createSpy()
-  };
-
-  window.MockGroup = function(paperScope,children){
-    this.children = children;
-  };
-
-  MockGroup.prototype = Object.create(MockItem.prototype,{});
-  MockGroup.prototype.rotate = function(angle,pivot){
-    for(var child = 0;child < this.children.length; child++){
-      this.children[child].rotate(angle,pivot);
-    }
-  };
-  MockGroup.prototype.remove = jasmine.createSpy();
-
-
-  window.AnnotationUtilsStub = function(){
-
-  };
-
-  AnnotationUtilsStub.prototype = {
-    Icon: MockItem,
-    PointText:MockItem,
-    RotationIcon:MockItem,
-    DeleteActionIcon:MockItem,
-    Group: MockGroup
-  };
-
-})();
\ No newline at end of file
diff --git a/spec/annotations/annotation-utils.test.js b/spec/annotations/annotation-utils.test.js
deleted file mode 100644
index c9b2d79d66678fe940008ac53baa6f21077c1cc1..0000000000000000000000000000000000000000
--- a/spec/annotations/annotation-utils.test.js
+++ /dev/null
@@ -1,134 +0,0 @@
-describe('Annotation utils', function () {
-  describe('Icons classes', function () {
-    var paperScope = {
-      view:{
-        zoom:1
-      },
-      Size:function(){
-
-      },
-      Raster: function () {
-        this.position = new position(0, 0);
-        this.data = {};
-        this.remove = jasmine.createSpy();
-        this.rotate = jasmine.createSpy();
-        this.width = 0;
-        this.height = 0;
-      },
-      PointText: function () {
-        this.position = new position(0, 0);
-        this.data = {};
-        this.remove = jasmine.createSpy();
-        this.rotate = jasmine.createSpy();
-        this.width = 0;
-        this.height = 0;
-      }
-    };
-
-    var position = function (x, y) {
-      this.x = x;
-      this.y = y;
-      this.add = function (point) {
-        return new position(this.x + point.x, this.y + point.y);
-      };
-    };
-
-    describe('Icon', function () {
-
-      beforeEach(function () {
-        this.icon = new Mirador.AnnotationUtils().Icon;
-        this.icon = new this.icon(paperScope, {name: ''});
-      });
-
-      it('should translate icon by point', function () {
-        this.icon.translateByPoint({x: 1, y: 1});
-        expect(this.icon.item.position.x).toBe(1);
-        expect(this.icon.item.position.y).toBe(1);
-
-      });
-
-      it('should translate icon by x and y as params', function () {
-        this.icon.translateByXY(1, 1);
-        expect(this.icon.item.position.x).toBe(1);
-        expect(this.icon.item.position.y).toBe(1);
-
-      });
-
-      it('should set/call onMouseDown listener', function () {
-        var spy = jasmine.createSpy();
-        this.icon.setOnMouseDownListener(spy);
-        this.icon.onMouseDown();
-        expect(spy.calls.count()).toBe(1);
-      });
-
-      it('should add data to the raster', function () {
-        this.icon.addData('key', 'value');
-        expect(this.icon.item.data.key).toBe('value');
-      });
-
-      it('should rotate icon', function () {
-        this.icon.rotate();
-        expect(this.icon.item.rotate.calls.count()).toBe(1);
-      });
-
-      it('should remove icon', function () {
-        this.icon.remove();
-        expect(this.icon.item.remove.calls.count()).toBe(1);
-      });
-
-      it('should get the width and height', function () {
-        expect(this.icon.getWidth()).toBe(0);
-        expect(this.icon.getHeight()).toBe(0);
-      });
-
-    });
-
-
-    describe('DeleteActionIcon', function () {
-      beforeEach(function () {
-        this.icon = new Mirador.AnnotationUtils().DeleteActionIcon;
-        this.icon = new this.icon(paperScope,{name:''});
-      });
-
-      it('should use defined trashcan icon', function () {
-        expect(this.icon.content).toBe('\uf014');
-      });
-
-      it('should fire delete shape event onMouseDown',function(){
-        var overlay = {
-          eventEmitter:{
-            publish:jasmine.createSpy()
-          }
-        };
-
-        this.icon.setOnMouseDownListener(overlay);
-        this.icon.mouseDown();
-        expect(overlay.eventEmitter.publish).toHaveBeenCalled();
-      });
-
-    });
-
-    describe('RotationIcon', function () {
-      beforeEach(function () {
-        this.icon = new Mirador.AnnotationUtils().RotationIcon;
-        this.icon = new this.icon(paperScope,{name:''});
-      });
-
-      it('should use defined rotate icon', function () {
-        expect(this.icon.content).toBe('\uf01e');
-      });
-
-      it('should set overlay mode to rotate onMouseDown',function(){
-        var overlay = {
-          mode:''
-        };
-
-        this.icon.setOnMouseDownListener(overlay);
-        this.icon.mouseDown();
-        expect(overlay.mode).toBe('rotate');
-      });
-
-    });
-
-  });
-});
\ No newline at end of file
diff --git a/spec/annotations/annotationTooltip.test.js b/spec/annotations/annotationTooltip.test.js
deleted file mode 100644
index 125c080d6d50820953c41cdcb08bfd9b5da1d730..0000000000000000000000000000000000000000
--- a/spec/annotations/annotationTooltip.test.js
+++ /dev/null
@@ -1,56 +0,0 @@
-describe('AnnotationTooltip', function() {
-
-  beforeEach(function() {
-
-  });
-
-  afterEach(function() {
-
-  });
-
-  xdescribe('Initialization', function() {
-    it('should initialize', function() {
-
-    });
-  });
-
-  xdescribe('showEditor', function() {
-
-  });
-  
-  xdescribe('initializeViewerUpgradableToEditor', function() {
-
-  });
-
-  xdescribe('removeAllEvents', function() {
-
-  });
-
-  xdescribe('addViewerEvents', function() {
-
-  });
-
-  xdescribe('addEditorEvents', function() {
-
-  });
-
-  xdescribe('showViewer', function() {
-
-  });
-
-  xdescribe('setTooltipContent', function() {
-
-  });
-
-  xdescribe('getViewerContent', function() {
-
-  });
-
-  xdescribe('freezeQtip', function() {
-
-  });
-
-  xdescribe('unFreezeQtip', function() {
-
-  });
-});
diff --git a/spec/annotations/catchEndpoint.test.js b/spec/annotations/catchEndpoint.test.js
deleted file mode 100644
index 6809a559de5018afbc535da6c64af86ed13d32c2..0000000000000000000000000000000000000000
--- a/spec/annotations/catchEndpoint.test.js
+++ /dev/null
@@ -1,279 +0,0 @@
-// TODO: Please fix CatchEndpoints's getAnnotationEndpoint as you see fit.
-// An older version of this test used to work in 2.1.3.
-// Please also verify the shims in the initial beforeEach() for appropriateness.
-xdescribe('CatchEndpoint', function() {
-  var subject, ajaxSuccess, ajaxData, annotation;
-  
-  beforeEach(function() {
-    this.token = 'token';
-    this.prefix = 'http://catch.myexample.net';
-    this.dfd = jQuery.Deferred();
-    this.annotationsList = [];
-    this.windowID = '380c9e54-7561-4010-a99f-f132f5dc13fd';
-    this.eventEmitter = new Mirador.EventEmitter;
-    this.catchEndpoint = new Mirador.CatchEndpoint({
-      token: this.token,
-      prefix: this.prefix,
-      dfd: this.dfd,
-      annotationsList: this.annotationsList,
-      windowID: this.windowID,
-      eventEmitter: this.eventEmitter,
-    });
-    subject = this.catchEndpoint;
-    ajaxSuccess = true;
-    ajaxData = null;
-    spyOn(jQuery, 'ajax').and.callFake(function(args) {
-      if (ajaxSuccess) {
-        if (typeof args.success === 'function') args.success(ajaxData);
-      }
-      else {
-        if (typeof args.error === 'function') args.error(ajaxData);
-      }
-    });
-    annotation = {
-      "@context": "http://iiif.io/api/presentation/2/context.json",
-      "@type": "oa:Annotation",
-      "motivation": [
-        "oa:commenting", "oa:tagging"
-      ],
-      "resource": [
-        {
-          "@type": "dctypes:Text",
-          "format": "text/html",
-          "chars": "<p>Cell</p>"
-        },
-        {
-          "@type": "oa:Tag",
-          "chars": "Example"
-        },
-      ],
-      "on": {
-        "@type": "oa:SpecificResource",
-        "full": "http://wellcomelibrary.org/iiif/b18035723/canvas/c4",
-        "selector": {
-          "@type": "oa:Choice",
-          "default": {
-            "@type": "oa:FragmentSelector",
-            "value": "xywh=1000,219,198,148"
-          },
-          "item": {
-            "@type": "oa:SvgSelector",
-            "value": "<svg xmlns='http://www.w3.org/2000/svg'><path xmlns=\"http://www.w3.org/2000/svg\" d=\"M1000.24213,219.15375l98.78935,0l0,0l98.78935,0l0,74.09201l0,74.09201l-98.78935,0l-98.78935,0l0,-74.09201z\" data-paper-data=\"{&quot;defaultStrokeValue&quot;:1,&quot;editStrokeValue&quot;:5,&quot;currentStrokeValue&quot;:5,&quot;rotation&quot;:0,&quot;annotation&quot;:null,&quot;editable&quot;:true}\" id=\"rectangle_7e2b56fa-b18b-4d09-a575-0bb19f560b56\" fill-opacity=\"0\" fill=\"#00bfff\" fill-rule=\"nonzero\" stroke=\"#00bfff\" stroke-width=\"30.87167\" stroke-linecap=\"butt\" stroke-linejoin=\"miter\" stroke-miterlimit=\"10\" stroke-dasharray=\"\" stroke-dashoffset=\"0\" font-family=\"sans-serif\" font-weight=\"normal\" font-size=\"12\" text-anchor=\"start\" style=\"mix-blend-mode: normal\"/></svg>"
-          }
-        }
-      },
-      "@id": "51ac4477-7bcc-475d-a7bb-26112db1c230"
-    };
-    // Shims for PhantomJS 2.1.1: Please evaluate
-    // Shim for missing implementation of Array.prototype.forEach in PhantomJS 2.1.1
-    if (typeof annotation.on.forEach === 'undefined') {
-      annotation.on.forEach = function(f) {
-        var _this = this;
-        jQuery.each(_this, function(k, v) {
-          f(v, k, _this);
-        });
-      }
-    }
-    // Shim for _this.imagesList references in catchEndpoint
-    subject.imagesList = [{}];
-    spyOn(Mirador, 'getImageIndexById').and.returnValue(0);
-    spyOn(Mirador, 'getThumbnailForCanvas').and.returnValue('http://www.example.org/iiif/0123456/full/full/0/default.jpg');
-  });
-
-  afterEach(function() {
-    delete this.catchEndpoint;
-  });
-
-  describe('Initialization', function() {
-    it('should initialize', function() {
-      expect(true).toBe(true); // Force beforeEach setup to run
-    });
-  });
-
-  describe('set', function() {
-    it('should set the property to the value with 2 arguments', function() {
-      subject.set('waahoo', 'xekko');
-      expect(subject.waahoo).toEqual('xekko');
-    });
-    it('should set the sub-property to the value with 3 arguments', function() {
-      subject.set(0, 'xekko', { parent: 'annotationsList' });
-      expect(subject.annotationsList[0]).toEqual('xekko');
-    })
-  });
-
-  describe('search', function() {
-    var successCallback, errorCallback;
-    beforeEach(function() {
-      successCallback = jasmine.createSpy('successCallback');
-      errorCallback = jasmine.createSpy('errorCallback');
-      subject.annotationsList = [];
-      spyOn(subject, 'getAnnotationInOA').and.callFake(function(val) {
-        return "oa:" + val;
-      });
-      ajaxData = {
-        rows: ['a','b','c']
-      };
-    });
-    it('should run callback on success if provided', function() {
-      subject.search({}, successCallback, errorCallback);
-      expect(successCallback).toHaveBeenCalledWith(ajaxData);
-      expect(errorCallback).not.toHaveBeenCalled();
-    });
-    it('should update internal annotation list if provided', function() {
-      expect(subject.dfd.state()).not.toEqual('resolved');
-      spyOn(subject.eventEmitter, 'publish');
-      subject.search({});
-      expect(successCallback).not.toHaveBeenCalled();
-      expect(errorCallback).not.toHaveBeenCalled();
-      expect(subject.dfd.state()).toEqual('resolved');
-      expect(subject.annotationsList).toEqual(['oa:a', 'oa:b', 'oa:c']);
-      expect(subject.eventEmitter.publish).toHaveBeenCalledWith('catchAnnotationsLoaded.'+this.windowID, subject.annotationsListCatch);
-      
-    });
-    it('should add console log on failure with no callback given', function() {
-      ajaxSuccess = false;
-      spyOn(console, 'log');
-      subject.search({});
-      expect(successCallback).not.toHaveBeenCalled();
-      expect(errorCallback).not.toHaveBeenCalled();
-      expect(console.log).toHaveBeenCalledWith("There was an error searching this endpoint");
-    });
-    it('should run callback on failure if provided', function() {
-      ajaxSuccess = false;
-      subject.search({}, successCallback, errorCallback);
-      expect(successCallback).not.toHaveBeenCalled();
-      expect(errorCallback).toHaveBeenCalled();
-    });
-  });
-
-  describe('deleteAnnotation', function() {
-    var successCallback, errorCallback;
-    beforeEach(function() {
-      successCallback = jasmine.createSpy('successCallback');
-      errorCallback = jasmine.createSpy('errorCallback');
-    });
-    it('should run callback and fire event on success', function() {
-      spyOn(subject.eventEmitter, 'publish');
-      subject.deleteAnnotation('123', successCallback, errorCallback);
-      expect(successCallback).toHaveBeenCalled();
-      expect(errorCallback).not.toHaveBeenCalled();
-      expect(subject.eventEmitter.publish).toHaveBeenCalledWith('catchAnnotationDeleted.'+this.windowID, '123');
-    });
-    it('should run callback on failure', function() {
-      ajaxSuccess = false;
-      subject.deleteAnnotation('ABC', successCallback, errorCallback);
-      expect(successCallback).not.toHaveBeenCalled();
-      expect(errorCallback).toHaveBeenCalled();
-    });
-  });
-
-  describe('update', function() {
-    var successCallback, errorCallback;
-    beforeEach(function() {
-      successCallback = jasmine.createSpy('successCallback');
-      errorCallback = jasmine.createSpy('errorCallback');
-    });
-    it('should run callback and fire event on success', function() {
-      spyOn(subject.eventEmitter, 'publish');
-      subject.update(annotation, successCallback, errorCallback);
-      expect(successCallback).toHaveBeenCalled();
-      expect(errorCallback).not.toHaveBeenCalled();
-      expect(subject.eventEmitter.publish).toHaveBeenCalledWith('catchAnnotationUpdated.'+this.windowID, jasmine.any(Object));
-    });
-    it('should run callback on failure', function() {
-      ajaxSuccess = false;
-      subject.update(annotation, successCallback, errorCallback);
-      expect(successCallback).not.toHaveBeenCalled();
-      expect(errorCallback).toHaveBeenCalled();
-    });
-  });
-
-  describe('create', function() {
-    var successCallback, errorCallback;
-    beforeEach(function() {
-      successCallback = jasmine.createSpy('successCallback');
-      errorCallback = jasmine.createSpy('errorCallback');
-    });
-    it('should run callback and fire event on success', function() {
-      spyOn(subject.eventEmitter, 'publish');
-      ajaxData = jQuery.extend(true, {
-        id: '1234567890'
-      }, subject.getAnnotationInEndpoint(annotation));
-      subject.create(annotation, successCallback, errorCallback);
-      expect(successCallback).toHaveBeenCalledWith(jasmine.any(Object));
-      expect(errorCallback).not.toHaveBeenCalled();
-      expect(subject.eventEmitter.publish).toHaveBeenCalledWith('catchAnnotationCreated.'+this.windowID, jasmine.any(Object));
-    });
-    it('should run callback on failure', function() {
-      ajaxSuccess = false;
-      subject.create(annotation, successCallback, errorCallback);
-      expect(successCallback).not.toHaveBeenCalled();
-      expect(errorCallback).toHaveBeenCalled();
-    });
-  });
-
-  describe('userAuthorize', function() {
-    var catchAnnotation;
-    beforeEach(function() {
-      catchAnnotation = subject.getAnnotationInEndpoint(annotation);
-    });
-    describe('Instructor', function() {
-      beforeEach(function() {
-        subject.roles = ['Instructor'];
-      });
-      it('should have full access', function() {
-        expect(subject.userAuthorize('admin', catchAnnotation)).toBe(true);
-      });
-    });
-    describe('Administrator', function() {
-      beforeEach(function() {
-        subject.roles = ['Administrator'];
-      });
-      it('should have full access', function() {
-        expect(subject.userAuthorize('admin', catchAnnotation)).toBe(true);
-      });
-    });
-    describe('Regular users', function() {
-      beforeEach(function() {
-        subject.userid = 'student1';
-      });
-      it('should be allowed access to permission-free annotations', function() {
-        delete catchAnnotation.permissions;
-        delete catchAnnotation.user;
-        expect(subject.userAuthorize('admin', catchAnnotation)).toBe(true);
-      });
-      it('should be allowed access to actions not explicitly set (e.g. read)', function() {
-        catchAnnotation.permissions.read = [];
-        expect(subject.userAuthorize('read', catchAnnotation)).toBe(true);
-      });
-      it('should be allowed access to annotations where the user is whitelisted', function() {
-        catchAnnotation.permissions.admin = ['student2', subject.userid];
-        expect(subject.userAuthorize('admin', catchAnnotation)).toBe(true);
-      });
-      it('should be denied access to annotations where the user is not whitelisted', function() {
-        catchAnnotation.permissions.admin = ['student2'];
-        expect(subject.userAuthorize('admin', catchAnnotation)).toBe(false);
-      });
-      it('should be allowed access to own annotations', function() {
-        delete catchAnnotation.permissions;
-        catchAnnotation.user.userid = subject.userid;
-        expect(subject.userAuthorize('admin', catchAnnotation)).toBe(true);
-      });
-      it('should be denied access to annotations owned by others', function() {
-        delete catchAnnotation.permissions;
-        catchAnnotation.user.userid = 'student2';
-        expect(subject.userAuthorize('admin', catchAnnotation)).toBe(false);
-      });
-    });
-  });
-
-  xdescribe('getAnnotationInOA', function() {
-
-  });
-
-  describe('getAnnotationInEndpoint', function() {
-    it('should convert the example in this test properly', function() {
-      expect(subject.getAnnotationInEndpoint(annotation)).not.toBeUndefined();
-    });
-  });
-}); 
diff --git a/spec/annotations/dummy-tool.stub.js b/spec/annotations/dummy-tool.stub.js
deleted file mode 100644
index a42eb6d7f000b079be457b58b2e7440fdb9bc224..0000000000000000000000000000000000000000
--- a/spec/annotations/dummy-tool.stub.js
+++ /dev/null
@@ -1,40 +0,0 @@
-(function () {
-  window.DummyTool = {
-    createShape: function (initialPoint, overlay) {
-      overlay.mode = 'create';
-      var pixel = 1 / overlay.paperScope.view.zoom;
-      var segments = this._createSegments(initialPoint,pixel,overlay);
-      var shape = new overlay.paperScope.Path({
-        segments: segments,
-        fullySelected: true,
-        name: overlay.getName(this)
-      });
-      shape.dashArray = overlay.dashArray;
-      shape.strokeWidth = 1 / overlay.paperScope.view.zoom;
-      shape.strokeColor = overlay.strokeColor;
-      shape.fillColor = overlay.fillColor;
-      shape.fillColor.alpha = overlay.fillColorAlpha;
-      shape.closed = true;
-      shape.data.rotation = 0;
-      overlay.segment = shape.segments[5];
-      this.updateSelection(true, shape, overlay);
-      return shape;
-    },
-    updateSelection: function (selected, item, overlay) {
-      if (item._name.toString().indexOf(this.idPrefix) != -1) {
-
-        if(item._name.toString().indexOf(this.partOfPrefix)!=-1){
-          return;
-        }
-
-        item.selected = selected;
-        if (selected) {
-          item.segments[1].handleOut = new overlay.paperScope.Point(0, 32 / overlay.paperScope.view.zoom);
-          item.segments[1].handleOut = item.segments[1].handleOut.rotate(item.data.rotation, item.segments[1]);
-          var point = item.segments[1].point.clone();
-          point = point.add(item.segments[1].handleOut);
-        } 
-      }
-    }
-  }
-})();
\ No newline at end of file
diff --git a/spec/annotations/endpoint.test.js b/spec/annotations/endpoint.test.js
deleted file mode 100644
index c8111c54cf1e9b00906adc5bab81ab4e176e5efa..0000000000000000000000000000000000000000
--- a/spec/annotations/endpoint.test.js
+++ /dev/null
@@ -1,44 +0,0 @@
-describe('Endpoint', function() {
-
-  beforeEach(function() {
-
-  });
-
-  afterEach(function() {
-
-  });
-
-  xdescribe('Initialization', function() {
-    it('should initialize', function() {
-
-    });
-  });
-
-  xdescribe('search', function() {
-
-  });
-
-  xdescribe('deleteAnnotation', function() {
-
-  });
-
-  xdescribe('update', function() {
-
-  });
-
-  xdescribe('create', function() {
-
-  });
-
-  xdescribe('set', function() {
-
-  });
-
-  xdescribe('getAnnotationInOA', function() {
-
-  });
-
-  xdescribe('getAnnotationInEndpoint', function() {
-
-  });
-}); 
diff --git a/spec/annotations/legacyOpenAnnotationStrategy.test.js b/spec/annotations/legacyOpenAnnotationStrategy.test.js
deleted file mode 100644
index 2f4cacb5c30f4f6778a18b9900b8e135adb75626..0000000000000000000000000000000000000000
--- a/spec/annotations/legacyOpenAnnotationStrategy.test.js
+++ /dev/null
@@ -1,94 +0,0 @@
-describe('Legacy OA Strategy', function() {
-  var subject;
-  
-  beforeEach(function() {
-    jasmine.getJSONFixtures().fixturesPath = 'spec/fixtures';
-    subject = new Mirador.LegacyOpenAnnotationStrategy();
-    this.legacyOa = getJSONFixture('annotationLegacyOa.json');
-    this.miradorLegacyOa = getJSONFixture('annotationMiradorLegacy.json');
-    this.mirador21Oa = getJSONFixture('annotationMirador21.json');
-    this.miradorDualOa = getJSONFixture('annotationMiradorDual.json');
-  });
-
-  describe('Initialization', function() {
-    it('should initialize', function() {
-      expect(true).toBe(true);
-    });
-  });
-  
-  describe('isThisType', function() {
-    it('should recognize a legacy OA annotation', function() {
-      expect(subject.isThisType(this.legacyOa)).toBe(true);
-    });
-    it('should not recognize a Mirador 2.0.x OA annotation', function() {
-      expect(subject.isThisType(this.miradorLegacyOa)).toBe(false);
-    });
-    it('should not recognize a Mirador 2.1.x OA annotation', function() {
-      expect(subject.isThisType(this.mirador21Oa)).toBe(false);
-    });
-    it('should not recognize a dual-selector OA annotation', function() {
-      expect(subject.isThisType(this.miradorDualOa)).toBe(false);
-    });
-  });
-  
-  describe('buildAnnotation', function() {
-    var annotation, window, overlay;
-    
-    beforeEach(function() {
-      // Generate mocks
-      annotation = {
-        "@id": "http://iiif.ultrawaahoo.net/annotations/27",
-        "@type": "oa:Annotation",
-        "motivation": "sc:painting",
-        "resource": {
-          "@id": "http://iiif.ultrawaahoo.net/annotations/27",
-          "@type": "cnt:ContentAsText",
-          "format": "text/plain",
-          "chars": "This is a legacy annotation."
-        }
-      };
-      window = { canvasID: "http://iiif.ultrawaahoo.net/canvases/3927" };
-      overlay = { draftPaths: [{bounds: { x: 154, y: 304, width: 3507, height: 164 }}] };
-    });
-    
-    it('should build the on attribute in the annotation', function() {
-      expect(subject.buildAnnotation({
-        "annotation": annotation,
-        "window": window,
-        "overlay": overlay
-      })).toEqual(this.legacyOa);
-    });
-  });
-  
-  describe('parseRegion', function() {
-    var result, osdRegionDrawTool;
-    
-    beforeEach(function() {
-      osdRegionDrawTool = {
-        parseRectangle: jasmine.createSpy('parseRectangle').and.returnValue({
-          bounds: { x: 2218, y: 3217, width: 371, height: 78 }
-        })
-      }
-    });
-    it ('should parse the rectangle for a legacy OA annotation', function() {
-      result = subject.parseRegion(this.legacyOa, osdRegionDrawTool);
-      expect(result).not.toBe(undefined);
-      expect(osdRegionDrawTool.parseRectangle).toHaveBeenCalled();
-    });
-    it('should do nothing for a Mirador 2.0.x OA annotation', function() {
-      result = subject.parseRegion(this.miradorLegacyOa, osdRegionDrawTool);
-      expect(result).toBe(undefined);
-      expect(osdRegionDrawTool.parseRectangle).not.toHaveBeenCalled();
-    });
-    it('should do nothing for a Mirador 2.1.x OA annotation', function() {
-      result = subject.parseRegion(this.mirador21Oa, osdRegionDrawTool);
-      expect(result).toBe(undefined);
-      expect(osdRegionDrawTool.parseRectangle).not.toHaveBeenCalled();
-    });
-    it('should do nothing for a dual-selector OA annotation', function() {
-      result = subject.parseRegion(this.miradorDualOa, osdRegionDrawTool);
-      expect(result).toBe(undefined);
-      expect(osdRegionDrawTool.parseRectangle).not.toHaveBeenCalled();
-    });
-  });
-});
\ No newline at end of file
diff --git a/spec/annotations/localStorageEndpoint.js b/spec/annotations/localStorageEndpoint.js
deleted file mode 100644
index 7299aa2bba9db57a8cb09f5612023223f009a905..0000000000000000000000000000000000000000
--- a/spec/annotations/localStorageEndpoint.js
+++ /dev/null
@@ -1,212 +0,0 @@
-describe('LocalStorageEndpoint', function() {
-  var subject, bogusStorage;
-  
-
-  beforeEach(function() {
-    bogusStorage = {};
-    spyOn(localStorage, 'setItem').and.callFake(function(k, v) {
-      bogusStorage[k] = v;
-    });
-    spyOn(localStorage, 'getItem').and.callFake(function(k) {
-      return bogusStorage[k];
-    });
-    this.token = 'token';
-    this.prefix = 'BM-';
-    this.dfd = jQuery.Deferred();
-    this.windowID = '380c9e54-7561-4010-a99f-f132f5dc13fd';
-    this.eventEmitter = new Mirador.EventEmitter;
-    this.annotationsList = [];
-    this.localStorageEndpoint = new Mirador.LocalStorageEndpoint({
-      token: this.token,
-      prefix: this.prefix,
-      dfd: this.dfd,
-      windowID: this.windowID,
-      eventEmitter: this.eventEmitter,
-      annotationsList: this.annotationsList
-    });
-    subject = this.localStorageEndpoint;
-  });
-
-  afterEach(function() {
-    delete this.localStorageEndpoint;
-  });
-
-  describe('Initialization', function() {
-    it('should initialize with defaults', function() {
-      expect(true).toBe(true); //Force beforeEach() setup to run
-    });
-  });
-
-  describe('set', function() {
-    it('should set the property to the value with 2 arguments', function() {
-      subject.set('waahoo', 'xekko');
-      expect(subject.waahoo).toEqual('xekko');
-    });
-    it('should set the sub-property to the value with 3 arguments', function() {
-      subject.set(0, 'xekko', { parent: 'annotationsList' });
-      expect(subject.annotationsList[0]).toEqual('xekko');
-    })
-  });
-
-  describe('search', function() {
-    var successCallback, errorCallback, dummyList;
-    beforeEach(function() {
-      successCallback = jasmine.createSpy('successCallback');
-      errorCallback = jasmine.createSpy('errorCallback');
-      dummyList = [
-        {'@id':'A', "on": { full: 'http://0.0.0.0/A' }}, 
-        {'@id':'B', "on": { full: 'http://0.0.0.0/B' }}
-      ];
-    });
-    it('should resolve the DFD when successful without a callback', function() {
-      spyOn(subject, 'getAnnotationList').and.returnValue(dummyList);
-      expect(subject.dfd.state()).not.toEqual('resolved');
-      subject.search({uri: "ABC"});
-      expect(subject.dfd.state()).toEqual('resolved');
-    });
-    it('should run the success callback when successful', function() {
-      spyOn(subject, 'getAnnotationList').and.returnValue(dummyList);
-      subject.search({uri: "ABC"}, successCallback, errorCallback);
-      expect(successCallback).toHaveBeenCalledWith(dummyList);
-      expect(errorCallback).not.toHaveBeenCalled();
-    });
-    it('should show a console message when unsuccessful without a callback', function() {
-      spyOn(console, 'log');
-      spyOn(subject, 'getAnnotationList').and.throwError('fail');
-      subject.search({uri: "ABC"});
-      expect(console.log).toHaveBeenCalledWith('There was an error searching this endpoint');
-    });
-    it('should run the error callback when unsuccessful', function() {
-      spyOn(subject, 'getAnnotationList').and.throwError('fail');
-      subject.search({uri: "ABC"}, successCallback, errorCallback);
-      expect(successCallback).not.toHaveBeenCalled();
-      expect(errorCallback).toHaveBeenCalled();
-    });
-  });
-
-  describe('deleteAnnotation', function() {
-    var successCallback, errorCallback;
-    beforeEach(function() {
-      successCallback = jasmine.createSpy('successCallback');
-      errorCallback = jasmine.createSpy('errorCallback');
-      subject.annotationsList = [
-        {'@id':'A', "on": { full: 'http://0.0.0.0/A' }}, 
-        {'@id':'B', "on": { full: 'http://0.0.0.0/B' }}
-      ];
-    });
-    it('should update the virtual annotations list when successful without a callback', function() {
-      subject.deleteAnnotation('B');
-      expect(subject.annotationsList.length).toEqual(1);
-      expect(subject.annotationsList[0]).toEqual(jasmine.objectContaining({'@id':'A', "on": { full: 'http://0.0.0.0/A' }}));
-    });
-    it('should run the success callback when successful', function() {
-      subject.deleteAnnotation('B', successCallback, errorCallback);
-      expect(successCallback).toHaveBeenCalled();
-      expect(errorCallback).not.toHaveBeenCalled();
-    });
-    it('should run the error callback when unsuccessful', function() {
-      spyOn(jQuery, 'grep').and.throwError('fail');
-      subject.deleteAnnotation('B', successCallback, errorCallback);
-      expect(successCallback).not.toHaveBeenCalled();
-      expect(errorCallback).toHaveBeenCalled();
-    });
-  });
-
-  describe('update', function() {
-    var successCallback, errorCallback, updated;
-    beforeEach(function() {
-      successCallback = jasmine.createSpy('successCallback');
-      errorCallback = jasmine.createSpy('errorCallback');
-      updated = {'@id':'A', edited: true, "on": { full: 'http://0.0.0.0/A' }};
-      subject.annotationsList = [
-        {'@id':'A', "on": { full: 'http://0.0.0.0/A' }}, 
-        {'@id':'B', "on": { full: 'http://0.0.0.0/B' }}
-      ];
-    });
-    it('should grab the new annotations list if the current one is empty', function() {
-      subject.annotationsList = [];
-      spyOn(subject, 'getAnnotationList').and.returnValue([
-        {'@id':'A', "on": { full: 'http://0.0.0.0/A' }}, 
-        {'@id':'B', "on": { full: 'http://0.0.0.0/B' }}
-      ]);
-      subject.update(updated);
-      expect(subject.annotationsList.length).toEqual(2);
-      expect(subject.annotationsList[0]).toEqual(jasmine.objectContaining({'@id':'A', edited: true, "on": { full: 'http://0.0.0.0/A' }}));
-    });
-    it('should resolve the virtual annotations list  when successful without a callback', function() {
-      subject.update(updated);
-      expect(subject.annotationsList.length).toEqual(2);
-      expect(subject.annotationsList[0]).toEqual(jasmine.objectContaining({'@id':'A', edited: true, "on": { full: 'http://0.0.0.0/A' }}));
-    });
-    it('should run the success callback when successful', function() {
-      subject.update(updated, successCallback, errorCallback);
-      expect(successCallback).toHaveBeenCalledWith(jasmine.objectContaining(updated));
-      expect(errorCallback).not.toHaveBeenCalled();
-    });
-    it('should run the error callback when unsuccessful', function() {
-      spyOn(JSON, 'stringify').and.throwError('fail');
-      subject.update(updated, successCallback, errorCallback);
-      expect(successCallback).not.toHaveBeenCalled();
-      expect(errorCallback).toHaveBeenCalled();
-    });
-  });
-
-  describe('create', function() {
-    var successCallback, errorCallback, new_anno, created;
-    beforeEach(function() {
-      spyOn(Mirador, 'genUUID').and.returnValue('ultra-waahoo');
-      successCallback = jasmine.createSpy('successCallback');
-      errorCallback = jasmine.createSpy('errorCallback');
-      new_anno = { "on": { full: 'http://0.0.0.0/B' }};
-      created = { '@id': 'ultra-waahoo', "on": { full: 'http://0.0.0.0/B' }};
-      subject.annotationsList = [
-        {'@id':'A', "on": { full: 'http://0.0.0.0/A' }}
-      ];
-    });
-    it('should grab the new annotations list if the current one is empty', function() {
-      subject.annotationsList = [];
-      spyOn(subject, 'getAnnotationList').and.returnValue([
-        {'@id':'A', "on": { full: 'http://0.0.0.0/A' }}
-      ]);
-      subject.create(new_anno);
-      expect(subject.annotationsList.length).toEqual(2);
-      expect(subject.annotationsList[1]).toEqual(jasmine.objectContaining(created));
-    });
-    it('should resolve the virtual annotations list  when successful without a callback', function() {
-      subject.create(new_anno);
-      expect(subject.annotationsList.length).toEqual(2);
-      expect(subject.annotationsList[1]).toEqual(jasmine.objectContaining(created));
-    });
-    it('should run the success callback when successful', function() {
-      subject.create(new_anno, successCallback, errorCallback);
-      expect(successCallback).toHaveBeenCalledWith(jasmine.objectContaining(created));
-      expect(errorCallback).not.toHaveBeenCalled();
-    });
-    it('should run the error callback when unsuccessful', function() {
-      spyOn(JSON, 'stringify').and.throwError('fail');
-      subject.create(new_anno, successCallback, errorCallback);
-      expect(successCallback).not.toHaveBeenCalled();
-      expect(errorCallback).toHaveBeenCalled();
-    });
-  });
-
-  describe('getAnnotationList', function() {
-    it('should start empty if no existing data is found', function() {
-      expect(subject.getAnnotationList('brand_new')).toEqual([]);
-    });
-    it('should parse the existing data if found', function() {
-      localStorage.setItem('my_annotations', '[{"data":"junk"}]');
-      expect(subject.getAnnotationList('my_annotations')).toEqual([{data:"junk"}]);
-    });
-  });
-
-  describe('userAuthorize', function() {
-    it('should let everyone through for now', function() {
-      expect(subject.userAuthorize('read', {})).toBe(true);
-      expect(subject.userAuthorize('create', {})).toBe(true);
-      expect(subject.userAuthorize('update', {})).toBe(true);
-      expect(subject.userAuthorize('delete', {})).toBe(true);
-      expect(subject.userAuthorize('admin', {})).toBe(true);
-    });
-  });
-}); 
diff --git a/spec/annotations/mirador21Strategy.test.js b/spec/annotations/mirador21Strategy.test.js
deleted file mode 100644
index 881cc3224d606ead51557978f816a5598609bfa0..0000000000000000000000000000000000000000
--- a/spec/annotations/mirador21Strategy.test.js
+++ /dev/null
@@ -1,106 +0,0 @@
-describe('Mirador 2.1.x Annotation Strategy', function() {
-  var subject;
-
-  beforeEach(function() {
-    jasmine.getJSONFixtures().fixturesPath = 'spec/fixtures';
-    subject = new Mirador.Mirador21Strategy();
-    this.legacyOa = getJSONFixture('annotationLegacyOa.json');
-    this.miradorLegacyOa = getJSONFixture('annotationMiradorLegacy.json');
-    this.mirador21Oa = getJSONFixture('annotationMirador21.json');
-    this.miradorDualOa = getJSONFixture('annotationMiradorDual.json');
-  });
-
-  describe('Initialization', function() {
-    it('should initialize', function() {
-      expect(true).toBe(true);
-    });
-  });
-
-  describe('isThisType', function() {
-    it('should not recognize a legacy OA annotation', function() {
-      expect(subject.isThisType(this.legacyOa)).toBe(false);
-    });
-    it('should not recognize a Mirador 2.0.x OA annotation', function() {
-      expect(subject.isThisType(this.miradorLegacyOa)).toBe(false);
-    });
-    it('should recognize a Mirador 2.1.x OA annotation', function() {
-      expect(subject.isThisType(this.mirador21Oa)).toBe(true);
-    });
-    it('should not recognize a dual-selector OA annotation', function() {
-      expect(subject.isThisType(this.miradorDualOa)).toBe(false);
-    });
-  });
-
-  describe('buildAnnotation', function() {
-    var annotation, window, overlay;
-
-    beforeEach(function() {
-      // Generate mocks
-      annotation = {
-        "@context": "http://iiif.io/api/presentation/2/context.json",
-        "@type": "oa:Annotation",
-        "motivation": [
-          "oa:commenting"
-        ],
-        "resource": [
-          {
-            "@type": "dctypes:Text",
-            "format": "text/html",
-            "chars": "<p>something</p>"
-          }
-        ],
-        "@id": "d2eda2e2-951a-4f88-b4ec-03a7b25a5d07"
-      };
-      window = {
-        canvasID: "https://oculus-dev.harvardx.harvard.edu/manifests/huam:320567/canvas/canvas-10466656.json",
-        loadedManifest: "https://oculus-dev.harvardx.harvard.edu/manifests/huam:320567"
-      };
-      overlay = {
-        getSVGString: jasmine.createSpy('getSVGString').and.returnValue("<svg xmlns='http://www.w3.org/2000/svg'><path xmlns=\"http://www.w3.org/2000/svg\" d=\"M1000.24213,219.15375l98.78935,0l0,0l98.78935,0l0,74.09201l0,74.09201l-98.78935,0l-98.78935,0l0,-74.09201z\" data-paper-data=\"{&quot;strokeWidth&quot;:1,&quot;rotation&quot;:0,&quot;annotation&quot;:null,&quot;editable&quot;:true}\" id=\"rectangle_7e2b56fa-b18b-4d09-a575-0bb19f560b56\" fill-opacity=\"0\" fill=\"#00bfff\" fill-rule=\"nonzero\" stroke=\"#00bfff\" stroke-width=\"30.87167\" stroke-linecap=\"butt\" stroke-linejoin=\"miter\" stroke-miterlimit=\"10\" stroke-dasharray=\"\" stroke-dashoffset=\"0\" font-family=\"sans-serif\" font-weight=\"normal\" font-size=\"12\" text-anchor=\"start\" style=\"mix-blend-mode: normal\"/></svg>"),
-        draftPaths: [{bounds: { x: 1000, y: 219, width: 198, height: 148 }}]
-      };
-    });
-
-    it('should build the on attribute in the annotation', function() {
-      expect(subject.buildAnnotation({
-        "annotation": annotation,
-        "window": window,
-        "overlay": overlay
-      })).toEqual(this.mirador21Oa);
-    });
-  });
-
-  describe('parseRegion', function() {
-    var result, osdRegionDrawTool;
-
-    beforeEach(function() {
-      osdRegionDrawTool = {
-        svgOverlay: {
-            parseSVG: jasmine.createSpy('parseSVG').and.returnValue({
-              bounds: { x: 1000, y: 219, width: 198, height: 148 }
-            })
-        }
-      }
-    });
-    it ('should do nothing for a legacy OA annotation', function() {
-      result = subject.parseRegion(this.legacyOa, osdRegionDrawTool);
-      expect(result).toBe(undefined);
-      expect(osdRegionDrawTool.svgOverlay.parseSVG).not.toHaveBeenCalled();
-    });
-    it('should do nothing for a Mirador 2.0.x OA annotation', function() {
-      result = subject.parseRegion(this.miradorLegacyOa, osdRegionDrawTool);
-      expect(result).toBe(undefined);
-      expect(osdRegionDrawTool.svgOverlay.parseSVG).not.toHaveBeenCalled();
-    });
-    it('should parse the SVG for a Mirador 2.1.x OA annotation', function() {
-      result = subject.parseRegion(this.mirador21Oa, osdRegionDrawTool);
-      expect(result).not.toBe(undefined);
-      expect(osdRegionDrawTool.svgOverlay.parseSVG).toHaveBeenCalled();
-    });
-    it('should do nothing for a dual-selector OA annotation', function() {
-      result = subject.parseRegion(this.miradorDualOa, osdRegionDrawTool);
-      expect(result).toBe(undefined);
-      expect(osdRegionDrawTool.svgOverlay.parseSVG).not.toHaveBeenCalled();
-    });
-  });
-});
diff --git a/spec/annotations/miradorDualStrategy.test.js b/spec/annotations/miradorDualStrategy.test.js
deleted file mode 100644
index 7d7df09265a790ab6c4a9dfe3e8c12c0334b66a9..0000000000000000000000000000000000000000
--- a/spec/annotations/miradorDualStrategy.test.js
+++ /dev/null
@@ -1,106 +0,0 @@
-describe('Mirador SVG-xywh Open Annotation Strategy', function() {
-  var subject;
-
-  beforeEach(function() {
-    jasmine.getJSONFixtures().fixturesPath = 'spec/fixtures';
-    subject = new Mirador.MiradorDualStrategy();
-    this.legacyOa = getJSONFixture('annotationLegacyOa.json');
-    this.miradorLegacyOa = getJSONFixture('annotationMiradorLegacy.json');
-    this.mirador21Oa = getJSONFixture('annotationMirador21.json');
-    this.miradorDualOa = getJSONFixture('annotationMiradorDual.json');
-  });
-
-  describe('Initialization', function() {
-    it('should initialize', function() {
-      expect(true).toBe(true);
-    });
-  });
-
-  describe('isThisType', function() {
-    it('should not recognize a legacy OA annotation', function() {
-      expect(subject.isThisType(this.legacyOa)).toBe(false);
-    });
-    it('should not recognize a Mirador 2.0.x OA annotation', function() {
-      expect(subject.isThisType(this.miradorLegacyOa)).toBe(false);
-    });
-    it('should not a Mirador 2.1.x OA annotation', function() {
-      expect(subject.isThisType(this.mirador21Oa)).toBe(false);
-    });
-    it('should recognize a dual-selector OA annotation', function() {
-      expect(subject.isThisType(this.miradorDualOa)).toBe(true);
-    });
-  });
-
-  describe('buildAnnotation', function() {
-    var annotation, window, overlay;
-
-    beforeEach(function() {
-      // Generate mocks
-      annotation = {
-        "@context": "http://iiif.io/api/presentation/2/context.json",
-        "@type": "oa:Annotation",
-        "motivation": [
-          "oa:commenting"
-        ],
-        "resource": [
-          {
-            "@type": "dctypes:Text",
-            "format": "text/html",
-            "chars": "<p>something</p>"
-          }
-        ],
-        "@id": "d2eda2e2-951a-4f88-b4ec-03a7b25a5d07"
-      };
-      window = {
-        canvasID: "https://oculus-dev.harvardx.harvard.edu/manifests/huam:320567/canvas/canvas-10466656.json",
-        loadedManifest: "https://oculus-dev.harvardx.harvard.edu/manifests/huam:320567"
-      };
-      overlay = {
-        getSVGString: jasmine.createSpy('getSVGString').and.returnValue("<svg xmlns='http://www.w3.org/2000/svg'><path xmlns=\"http://www.w3.org/2000/svg\" d=\"M1000.24213,219.15375l98.78935,0l0,0l98.78935,0l0,74.09201l0,74.09201l-98.78935,0l-98.78935,0l0,-74.09201z\" data-paper-data=\"{&quot;strokeWidth&quot;:1,&quot;rotation&quot;:0,&quot;annotation&quot;:null,&quot;editable&quot;:true}\" id=\"rectangle_7e2b56fa-b18b-4d09-a575-0bb19f560b56\" fill-opacity=\"0\" fill=\"#00bfff\" fill-rule=\"nonzero\" stroke=\"#00bfff\" stroke-width=\"30.87167\" stroke-linecap=\"butt\" stroke-linejoin=\"miter\" stroke-miterlimit=\"10\" stroke-dasharray=\"\" stroke-dashoffset=\"0\" font-family=\"sans-serif\" font-weight=\"normal\" font-size=\"12\" text-anchor=\"start\" style=\"mix-blend-mode: normal\"/></svg>"),
-        draftPaths: [{bounds: { x: 1000, y: 219, width: 198, height: 148 }}]
-      };
-    });
-
-    it('should build the on attribute in the annotation', function() {
-      expect(subject.buildAnnotation({
-        "annotation": annotation,
-        "window": window,
-        "overlay": overlay
-      })).toEqual(this.miradorDualOa);
-    });
-  });
-
-  describe('parseRegion', function() {
-    var result, osdRegionDrawTool;
-
-    beforeEach(function() {
-      osdRegionDrawTool = {
-        svgOverlay: {
-            parseSVG: jasmine.createSpy('parseSVG').and.returnValue({
-              bounds: { x: 1000, y: 219, width: 198, height: 148 }
-            })
-        }
-      }
-    });
-    it ('should do nothing for a legacy OA annotation', function() {
-      result = subject.parseRegion(this.legacyOa, osdRegionDrawTool);
-      expect(result).toBe(undefined);
-      expect(osdRegionDrawTool.svgOverlay.parseSVG).not.toHaveBeenCalled();
-    });
-    it('should do nothing for a Mirador 2.0.x OA annotation', function() {
-      result = subject.parseRegion(this.miradorLegacyOa, osdRegionDrawTool);
-      expect(result).toBe(undefined);
-      expect(osdRegionDrawTool.svgOverlay.parseSVG).not.toHaveBeenCalled();
-    });
-    it('should do nothing for a Mirador 2.1.x OA annotation', function() {
-      result = subject.parseRegion(this.mirador21Oa, osdRegionDrawTool);
-      expect(result).toBe(undefined);
-      expect(osdRegionDrawTool.svgOverlay.parseSVG).not.toHaveBeenCalled();
-    });
-    it('should parse the SVG for a dual-selector OA annotation', function() {
-      result = subject.parseRegion(this.miradorDualOa, osdRegionDrawTool);
-      expect(result).not.toBe(undefined);
-      expect(osdRegionDrawTool.svgOverlay.parseSVG).toHaveBeenCalled();
-    });
-  });
-});
diff --git a/spec/annotations/miradorLegacyStrategy.test.js b/spec/annotations/miradorLegacyStrategy.test.js
deleted file mode 100644
index faf679993ea9937739fbacab8d5bd6a5772214f6..0000000000000000000000000000000000000000
--- a/spec/annotations/miradorLegacyStrategy.test.js
+++ /dev/null
@@ -1,93 +0,0 @@
-describe('Mirador 2.0.x Legacy Annotation Strategy', function() {
-  var subject;
-  
-  beforeEach(function() {
-    jasmine.getJSONFixtures().fixturesPath = 'spec/fixtures';
-    subject = new Mirador.MiradorLegacyStrategy();
-    this.legacyOa = getJSONFixture('annotationLegacyOa.json');
-    this.miradorLegacyOa = getJSONFixture('annotationMiradorLegacy.json');
-    this.mirador21Oa = getJSONFixture('annotationMirador21.json');
-    this.miradorDualOa = getJSONFixture('annotationMiradorDual.json');
-  });
-
-  describe('Initialization', function() {
-    it('should initialize', function() {
-      expect(true).toBe(true);
-    });
-  });
-  
-  describe('isThisType', function() {
-    it('should not recognize a legacy OA annotation', function() {
-      expect(subject.isThisType(this.legacyOa)).toBe(false);
-    });
-    it('should recognize a Mirador 2.0.x OA annotation', function() {
-      expect(subject.isThisType(this.miradorLegacyOa)).toBe(true);
-    });
-    it('should not recognize a Mirador 2.1.x OA annotation', function() {
-      expect(subject.isThisType(this.mirador21Oa)).toBe(false);
-    });
-    it('should not recognize a dual-selector OA annotation', function() {
-      expect(subject.isThisType(this.miradorDualOa)).toBe(false);
-    });
-  });
-  
-  describe('buildAnnotation', function() {
-    var annotation, window, overlay;
-    
-    beforeEach(function() {
-      // Generate mocks
-      annotation = {
-        "@context" : "http://iiif.io/api/presentation/2/context.json",
-        "@type" : "oa:Annotation",
-        "motivation" : [ "oa:commenting" ],
-        "resource" : [ {
-          "@type" : "dctypes:Text",
-          "format" : "text/html",
-          "chars" : "<p>1852-1921</p>"
-        } ]
-      };
-      window = { canvasID: "http://dams.llgc.org.uk/iiif/2.0/4574752/canvas/4574755.json" };
-      overlay = { draftPaths: [{bounds: { x: 2218, y: 3217, width: 371, height: 78 }}] };
-    });
-    
-    it('should build the on attribute in the annotation', function() {
-      expect(subject.buildAnnotation({
-        "annotation": annotation,
-        "window": window,
-        "overlay": overlay
-      })).toEqual(this.miradorLegacyOa);
-    });
-  });
-  
-  describe('parseRegion', function() {
-    var result, osdRegionDrawTool;
-    
-    beforeEach(function() {
-      osdRegionDrawTool = {
-        parseRectangle: jasmine.createSpy('parseRectangle').and.returnValue({
-          bounds: { x: 2218, y: 3217, width: 371, height: 78 }
-        })
-      }
-    });
-    it ('should do nothing for a legacy OA annotation', function() {
-      result = subject.parseRegion(this.legacyOa, osdRegionDrawTool);
-      expect(result).toBe(undefined);
-      expect(osdRegionDrawTool.parseRectangle).not.toHaveBeenCalled();
-    });
-    it('should parse the rectangle for a Mirador 2.0.x OA annotation', function() {
-      result = subject.parseRegion(this.miradorLegacyOa, osdRegionDrawTool);
-      expect(result).not.toBe(undefined);
-      expect(osdRegionDrawTool.parseRectangle).toHaveBeenCalled();
-    });
-    it('should do nothing for a Mirador 2.1.x OA annotation', function() {
-      result = subject.parseRegion(this.mirador21Oa, osdRegionDrawTool);
-      expect(result).toBe(undefined);
-      expect(osdRegionDrawTool.parseRectangle).not.toHaveBeenCalled();
-    });
-    it('should do nothing for a dual-selector OA annotation', function() {
-      result = subject.parseRegion(this.miradorDualOa, osdRegionDrawTool);
-      expect(result).toBe(undefined);
-      expect(osdRegionDrawTool.parseRectangle).not.toHaveBeenCalled();
-    });
-  });
-});
\ No newline at end of file
diff --git a/spec/annotations/osd-region-draw-tool.test.js b/spec/annotations/osd-region-draw-tool.test.js
deleted file mode 100644
index a15bc014d4e9854dd29695194f9baddb70a2d1af..0000000000000000000000000000000000000000
--- a/spec/annotations/osd-region-draw-tool.test.js
+++ /dev/null
@@ -1,111 +0,0 @@
-describe('OsdRegionDrawTool', function() {
-
-  beforeEach(function() {
-  });
-
-  afterEach(function() {
-  });
-
-  xdescribe('Initialization', function() {
-    it('should initialize', function() {
-
-    });
-  });
-
-  xdescribe('enterEditMode', function() {
-
-  });
-
-  xdescribe('exitEditMode', function() {
-
-  });
-
-  xdescribe('deleteShape', function() {
-
-  });
-
-  xdescribe('saveEditedShape', function() {
-
-  });
-
-  describe('render', function() {
-    it('should still render the other annotations when SVG parsing fails for one or more', function() {
-      var annotations = [{
-        on: {
-          selector: {
-            '@type': 'oa:SvgSelector',
-            value: '<svg><path></path></sv' // invalid SVG
-          }
-        }
-      }];
-      var drawTool = createDrawTool(annotations);
-      drawTool.render();
-    });
-  });
-
-  xdescribe('showTooltipsFromMousePosition', function() {
-
-  });
-
-  xdescribe('bindEvents', function() {
-
-  });
-
-  xdescribe('getAnnoFromRegion', function() {
-
-  });
-
-  it('should unsubscibe from all events when destroying',function(){
-    var drawTool = createDrawTool([]);
-    drawTool.destroy();
-    for(var key in drawTool.eventEmitter.events){
-      expect(drawTool.eventEmitter.events[key]).toBe(0);
-    }
-    expect(drawTool.osdViewer.addHandler.callCount).toBe(drawTool.osdViewer.removeHandler.callCount);
-  });
-
-  function createDrawTool(annotations) {
-    var windowId = 'window1';
-    jQuery('document.body').append(jQuery('<div>').attr('id', windowId));
-    var osdViewerElem = jQuery('<div/>');
-    var mockPaperScope = {
-      activate: jasmine.createSpy(),
-      project: {
-        clear: jasmine.createSpy()
-      },
-      view: {
-        draw: jasmine.createSpy()
-      }
-    };
-    var mockSvgOverlay = function() {
-      return MockOverlay.getOverlay(mockPaperScope);
-    };
-    var mockSaveController = {
-      currentConfig: {
-        annotationBodyEditor: {
-          module: jasmine.createSpy()
-        }
-      },
-      getWindowElement: function() {
-        return jQuery('#' + windowId);
-      }
-    };
-    var mockAnnotationsLayer = {
-      mode: Mirador.AnnotationsLayer.DISPLAY_ANNOTATIONS
-    };
-    var mockOpenSeadragon = {
-      addHandler: jasmine.createSpy(),
-      svgOverlay: mockSvgOverlay,
-      element: osdViewerElem,
-      removeHandler:jasmine.createSpy()
-    };
-    return new Mirador.OsdRegionDrawTool({
-      eventEmitter: new MockEventEmitter(new Mirador.EventEmitter()),
-      list: annotations,
-      parent: mockAnnotationsLayer,
-      osdViewer: mockOpenSeadragon,
-      state: mockSaveController,
-      svgOverlay: mockSvgOverlay
-    });
-  }
-});
diff --git a/spec/annotations/osd-svg-ellipse.test.js b/spec/annotations/osd-svg-ellipse.test.js
deleted file mode 100644
index 7ede91f5a718582a36db912fe2e7e45fa2dbf058..0000000000000000000000000000000000000000
--- a/spec/annotations/osd-svg-ellipse.test.js
+++ /dev/null
@@ -1,567 +0,0 @@
-paper.install(window);
-
-describe('Ellipse', function() {
-  var diagonalSize;
-
-  beforeAll(function() {
-    this.canvas = jQuery('<canvas></canvas>');
-    this.canvas.attr('id', 'paperId');
-    jasmine.getFixtures().set(this.canvas);
-    paper.setup(this.canvas.attr('id'));
-    this.ellipse = new Mirador.Ellipse();
-    diagonalSize = Math.sqrt(2);
-  });
-  afterAll(function() {
-    delete this.ellipse;
-  });
-
-  it('should create ellipse shape', function() {
-    var initialPoint = {
-      'x': 123,
-      'y': 456
-    };
-    var overlay = MockOverlay.getOverlay(paper);
-    var shape = this.ellipse.createShape(initialPoint, overlay);
-
-    expect(overlay.mode).toBe('create');
-
-    expect(overlay.segment).toBe(shape.segments[6]);
-
-    expect(shape.strokeColor.red).toBe(1);
-    expect(shape.strokeColor.green).toBe(0);
-    expect(shape.strokeColor.blue).toBe(0);
-
-    expect(shape.fillColor.red).toBe(1);
-    expect(shape.fillColor.green).toBe(0);
-    expect(shape.fillColor.blue).toBe(0);
-
-    expect(shape.fillColor.alpha).toBe(overlay.fillColorAlpha);
-
-    expect(shape.closed).toBe(true);
-
-    expect(shape.data.rotation).toBe(0);
-
-    expect(shape.name).toBe(this.ellipse.idPrefix + '1');
-
-    expect(shape.segments.length).toBe(10);
-
-    expect(shape.segments[0].point.x).toBe(initialPoint.x - 2);
-    expect(shape.segments[0].point.y).toBe(initialPoint.y - 2);
-
-    expect(shape.segments[1].point.x).toBe(initialPoint.x - 1);
-    expect(shape.segments[1].point.y).toBe(initialPoint.y - diagonalSize - 1);
-
-    expect(shape.segments[2].point.x).toBe(initialPoint.x - 1);
-    expect(shape.segments[2].point.y).toBe(initialPoint.y - diagonalSize - 1);
-
-    expect(shape.segments[3].point.x).toBe(initialPoint.x - 1);
-    expect(shape.segments[3].point.y).toBe(initialPoint.y - diagonalSize - 1);
-
-    expect(shape.segments[4].point.x).toBe(initialPoint.x);
-    expect(shape.segments[4].point.y).toBe(initialPoint.y - 2);
-
-    expect(shape.segments[5].point.x).toBe(initialPoint.x + diagonalSize - 1);
-    expect(shape.segments[5].point.y).toBe(initialPoint.y - 1);
-
-    expect(shape.segments[6].point.x).toBe(initialPoint.x);
-    expect(shape.segments[6].point.y).toBe(initialPoint.y);
-
-    expect(shape.segments[7].point.x).toBe(initialPoint.x - 1);
-    expect(shape.segments[7].point.y).toBe(initialPoint.y + diagonalSize - 1);
-
-    expect(shape.segments[8].point.x).toBe(initialPoint.x - 2);
-    expect(shape.segments[8].point.y).toBe(initialPoint.y);
-
-    expect(shape.segments[9].point.x).toBe(initialPoint.x - diagonalSize - 1);
-    expect(shape.segments[9].point.y).toBe(initialPoint.y - 1);
-  });
-
-  describe('Ellipse Mouse Tool', function() {
-    var overlay;
-
-    beforeEach(function() {
-      overlay = MockOverlay.getOverlay(paper);
-      this.ellipse = new Mirador.Ellipse();
-      this.initialPoint = {
-        'x': 987,
-        'y': 654
-      };
-      this.shape = this.ellipse.createShape(this.initialPoint, overlay);
-    });
-
-    afterEach(function() {
-      delete this.shape;
-      delete this.ellipse;
-    });
-
-    it('should update selection', function() {
-      this.ellipse.updateSelection(true, this.shape, overlay);
-
-      expect(this.shape.selected).toBe(true);
-
-      this.ellipse.updateSelection(true, this.shape, overlay);
-
-      expect(this.shape.selected).toBe(true);
-
-      this.shape.scale(-10);
-
-      this.ellipse.updateSelection(true, this.shape, overlay);
-
-      expect(this.shape.selected).toBe(true);
-
-      this.ellipse.updateSelection(false, this.shape, overlay);
-
-      expect(this.shape.selected).toBe(false);
-
-      this.shape.add(new Segment(0, 0));
-
-      this.ellipse.updateSelection(false, this.shape, overlay);
-
-      expect(this.shape.segments.length).toBe(10);
-    });
-
-    it('should do nothing on mouse drag when there is no mode set', function() {
-      var event = TestUtils.getEvent({
-        'x': 100,
-        'y': 100
-      });
-      overlay.mode = '';
-      var expected = [];
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        var point = {
-          'x': this.shape.segments[idx].point.x,
-          'y': this.shape.segments[idx].point.y
-        };
-        expected.push(point);
-      }
-      this.ellipse.onMouseDrag(event, overlay);
-
-      expect(this.shape.segments.length).toBe(expected.length);
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        expect(this.shape.segments[idx].point.x).toBeCloseTo(expected[idx].x, 6);
-        expect(this.shape.segments[idx].point.y).toBeCloseTo(expected[idx].y, 6);
-      }
-    });
-
-    it('should translate the whole ellipse shape', function() {
-      var event = TestUtils.getEvent({
-        'x': 3,
-        'y': -3
-      });
-      overlay.mode = 'translate';
-      overlay.path = this.shape;
-
-      this.ellipse.onMouseDrag(event, overlay);
-
-      expect(this.shape.segments[0].point.x - event.delta.x).toBe(this.initialPoint.x - 2);
-      expect(this.shape.segments[0].point.y - event.delta.y).toBe(this.initialPoint.y - 2);
-
-      expect(this.shape.segments[1].point.x - event.delta.x).toBe(this.initialPoint.x - 1);
-      expect(this.shape.segments[1].point.y - event.delta.y).toBe(this.initialPoint.y - diagonalSize - 1);
-
-      expect(this.shape.segments[2].point.x - event.delta.x).toBe(this.initialPoint.x - 1);
-      expect(this.shape.segments[2].point.y - event.delta.y).toBe(this.initialPoint.y - diagonalSize - 1);
-
-      expect(this.shape.segments[3].point.x - event.delta.x).toBe(this.initialPoint.x - 1);
-      expect(this.shape.segments[3].point.y - event.delta.y).toBe(this.initialPoint.y - diagonalSize - 1);
-
-      expect(this.shape.segments[4].point.x - event.delta.x).toBe(this.initialPoint.x);
-      expect(this.shape.segments[4].point.y - event.delta.y).toBe(this.initialPoint.y - 2);
-
-      expect(this.shape.segments[5].point.x - event.delta.x).toBe(this.initialPoint.x + diagonalSize - 1);
-      expect(this.shape.segments[5].point.y - event.delta.y).toBe(this.initialPoint.y - 1);
-
-      expect(this.shape.segments[6].point.x - event.delta.x).toBe(this.initialPoint.x);
-      expect(this.shape.segments[6].point.y - event.delta.y).toBe(this.initialPoint.y);
-
-      expect(this.shape.segments[7].point.x - event.delta.x).toBe(this.initialPoint.x - 1);
-      expect(this.shape.segments[7].point.y - event.delta.y).toBe(this.initialPoint.y + diagonalSize - 1);
-
-      expect(this.shape.segments[8].point.x - event.delta.x).toBe(this.initialPoint.x - 2);
-      expect(this.shape.segments[8].point.y - event.delta.y).toBe(this.initialPoint.y);
-
-      expect(this.shape.segments[9].point.x - event.delta.x).toBe(this.initialPoint.x - diagonalSize - 1);
-      expect(this.shape.segments[9].point.y - event.delta.y).toBe(this.initialPoint.y - 1);
-    });
-
-    it('should resize the whole ellipse shape dragging point[6]', function() {
-      var event = TestUtils.getEvent({
-        'x': 10,
-        'y': 100
-      });
-      var diagonalSizeX = event.delta.x * (2 / (1 + Math.sqrt(1 / 2)));
-      var diagonalSizeY = event.delta.y * (2 / (1 + Math.sqrt(1 / 2)));
-
-      overlay.mode = 'deform';
-      overlay.path = this.shape;
-      overlay.segment = this.shape.segments[6];
-      this.ellipse.onMouseDrag(event, overlay);
-
-      expect(this.shape.segments[0].point.x - diagonalSizeX * ((2 - Math.sqrt(2)) / 4)).toBeCloseTo(this.initialPoint.x - 2, 1);
-      expect(this.shape.segments[0].point.y - diagonalSizeY * ((2 - Math.sqrt(2)) / 4)).toBeCloseTo(this.initialPoint.y - 2, 1);
-
-      expect(this.shape.segments[1].point.x - diagonalSizeX / 2).toBeCloseTo(this.initialPoint.x - 1, 1);
-      expect(this.shape.segments[1].point.y).toBeCloseTo(this.initialPoint.y - diagonalSize - 1, 1);
-
-      expect(this.shape.segments[2].point.x - diagonalSizeX / 2).toBeCloseTo(this.initialPoint.x - 1, 1);
-      expect(this.shape.segments[2].point.y).toBeCloseTo(this.initialPoint.y - diagonalSize - 1, 1);
-
-      expect(this.shape.segments[3].point.x - diagonalSizeX / 2).toBeCloseTo(this.initialPoint.x - 1, 1);
-      expect(this.shape.segments[3].point.y).toBeCloseTo(this.initialPoint.y - diagonalSize - 1, 1);
-
-      expect(this.shape.segments[4].point.x - diagonalSizeX * ((2 + Math.sqrt(2)) / 4)).toBeCloseTo(this.initialPoint.x, 1);
-      expect(this.shape.segments[4].point.y - diagonalSizeY * ((2 - Math.sqrt(2)) / 4)).toBeCloseTo(this.initialPoint.y - 2, 1);
-
-      expect(this.shape.segments[5].point.x - diagonalSizeX).toBeCloseTo(this.initialPoint.x + diagonalSize - 1, 1);
-      expect(this.shape.segments[5].point.y - diagonalSizeY / 2).toBeCloseTo(this.initialPoint.y - 1, 1);
-
-      expect(this.shape.segments[6].point.x - event.delta.x).toBeCloseTo(this.initialPoint.x, 1);
-      expect(this.shape.segments[6].point.y - event.delta.y).toBeCloseTo(this.initialPoint.y, 1);
-
-      expect(this.shape.segments[7].point.x - diagonalSizeX / 2).toBeCloseTo(this.initialPoint.x - 1, 1);
-      expect(this.shape.segments[7].point.y - diagonalSizeY).toBeCloseTo(this.initialPoint.y + diagonalSize - 1, 1);
-
-      expect(this.shape.segments[8].point.x - diagonalSizeX * ((2 - Math.sqrt(2)) / 4)).toBeCloseTo(this.initialPoint.x - 2, 1);
-      expect(this.shape.segments[8].point.y - diagonalSizeY * ((2 + Math.sqrt(2)) / 4)).toBeCloseTo(this.initialPoint.y, 1);
-
-      expect(this.shape.segments[9].point.x).toBeCloseTo(this.initialPoint.x - diagonalSize - 1, 1);
-      expect(this.shape.segments[9].point.y - diagonalSizeY / 2).toBeCloseTo(this.initialPoint.y - 1, 1);
-    });
-
-
-    it('should resize the whole ellipse shape dragging point[0]', function() {
-      var event = TestUtils.getEvent({
-        'x': 10,
-        'y': 100
-      });
-      var diagonalSizeX = event.delta.x * (2 / (1 + Math.sqrt(1 / 2)));
-      var diagonalSizeY = event.delta.y * (2 / (1 + Math.sqrt(1 / 2)));
-
-      overlay.mode = 'deform';
-      overlay.path = this.shape;
-      overlay.segment = this.shape.segments[0];
-      this.ellipse.onMouseDrag(event, overlay);
-
-      expect(this.shape.segments[0].point.x - event.delta.x).toBeCloseTo(this.initialPoint.x - 2, 1);
-      expect(this.shape.segments[0].point.y - event.delta.y).toBeCloseTo(this.initialPoint.y - 2, 1);
-
-      expect(this.shape.segments[1].point.x - diagonalSizeX / 2).toBeCloseTo(this.initialPoint.x - 1, 1);
-      expect(this.shape.segments[1].point.y - diagonalSizeY).toBeCloseTo(this.initialPoint.y - diagonalSize - 1, 1);
-
-      expect(this.shape.segments[2].point.x - diagonalSizeX / 2).toBeCloseTo(this.initialPoint.x - 1, 1);
-      expect(this.shape.segments[2].point.y - diagonalSizeY).toBeCloseTo(this.initialPoint.y - diagonalSize - 1, 1);
-
-      expect(this.shape.segments[3].point.x - diagonalSizeX / 2).toBeCloseTo(this.initialPoint.x - 1, 1);
-      expect(this.shape.segments[3].point.y - diagonalSizeY).toBeCloseTo(this.initialPoint.y - diagonalSize - 1, 1);
-
-      expect(this.shape.segments[4].point.x - diagonalSizeX * ((2 - Math.sqrt(2)) / 4)).toBeCloseTo(this.initialPoint.x, 1);
-      expect(this.shape.segments[4].point.y - event.delta.y).toBeCloseTo(this.initialPoint.y - 2, 1);
-
-      expect(this.shape.segments[5].point.x).toBeCloseTo(this.initialPoint.x + diagonalSize - 1, 1);
-      expect(this.shape.segments[5].point.y - diagonalSizeY / 2).toBeCloseTo(this.initialPoint.y - 1, 1);
-
-      expect(this.shape.segments[6].point.x - diagonalSizeX * ((2 - Math.sqrt(2)) / 4)).toBeCloseTo(this.initialPoint.x, 1);
-      expect(this.shape.segments[6].point.y - diagonalSizeY * ((2 - Math.sqrt(2)) / 4)).toBeCloseTo(this.initialPoint.y, 1);
-
-      expect(this.shape.segments[7].point.x - diagonalSizeX / 2).toBeCloseTo(this.initialPoint.x - 1, 1);
-      expect(this.shape.segments[7].point.y).toBeCloseTo(this.initialPoint.y + diagonalSize - 1, 1);
-
-      expect(this.shape.segments[8].point.x - event.delta.x).toBeCloseTo(this.initialPoint.x - 2, 1);
-      expect(this.shape.segments[8].point.y - diagonalSizeY * ((2 - Math.sqrt(2)) / 4)).toBeCloseTo(this.initialPoint.y, 1);
-
-      expect(this.shape.segments[9].point.x - diagonalSizeX).toBeCloseTo(this.initialPoint.x - diagonalSize - 1, 1);
-      expect(this.shape.segments[9].point.y - diagonalSizeY / 2).toBeCloseTo(this.initialPoint.y - 1, 1);
-    });
-
-
-    function rotatePoint(point, initialPoint, angle) {
-      var angleRad = angle * Math.PI / 180.0;
-      return {
-        x: Math.cos(angleRad) * (point.x - initialPoint.x) - Math.sin(angleRad) * (point.y - initialPoint.y) + initialPoint.x,
-        y: Math.sin(angleRad) * (point.x - initialPoint.x) + Math.cos(angleRad) * (point.y - initialPoint.y) + initialPoint.y
-      };
-    }
-
-    it('should rotate the whole ellipse shape', function() {
-      var size = {
-        'x': 1,
-        'y': 1
-      };
-      var scale = 2;
-      var rotationAngle = -90;
-      // -90 degrees rotation + scale
-      var event = TestUtils.getEvent({
-        'x': -size.x,
-        'y': size.y
-      }, {
-        'x': this.shape.position.x,
-        'y': this.shape.position.y - size.y
-      });
-      var localCenterPoint = {
-        'x': this.shape.position.x,
-        'y': this.shape.position.y
-      };
-
-      overlay.mode = 'rotate';
-      overlay.path = this.shape;
-      var expected = [];
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        var point = this.shape.segments[idx].point;
-        point = rotatePoint(point, localCenterPoint, rotationAngle);
-        expected.push(point);
-      }
-      this.ellipse.onMouseDrag(event, overlay);
-
-      expect(this.shape.segments.length).toBe(expected.length);
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        expect(this.shape.segments[idx].point.x).toBeCloseTo(expected[idx].x, 6);
-        expect(this.shape.segments[idx].point.y).toBeCloseTo(expected[idx].y, 6);
-      }
-    });
-
-    it('should create ellipse shape', function() {
-      var event = TestUtils.getEvent({}, {
-        'x': this.initialPoint.x + 1000,
-        'y': this.initialPoint.y + 1000
-      });
-      overlay.mode = '';
-      this.ellipse.onMouseDown(event, overlay);
-
-      expect(overlay.path).not.toBeNull();
-      expect(overlay.onDrawFinish.calls.count()).toEqual(0);
-
-      this.ellipse.onMouseUp(event, overlay);
-
-      expect(overlay.onDrawFinish.calls.count()).toEqual(1);
-
-      overlay.mode = '';
-      overlay.onDrawFinish.calls.reset();
-      this.ellipse.onMouseUp(event, overlay);
-
-      expect(overlay.onDrawFinish.calls.count()).toEqual(0);
-    });
-
-    describe('should select elipse shape when clicking on',function(){
-
-      beforeEach(function(){
-        overlay.mode = '';
-      });
-
-      it('point[6] to deform ellipse', function() {
-
-        var event = TestUtils.getEvent({}, {
-          'x': this.initialPoint.x,
-          'y': this.initialPoint.y
-        });
-
-        this.ellipse.onMouseDown(event, overlay);
-
-        expect(overlay.mode).toBe('deform');
-        expect(overlay.segment).toBe(this.shape.segments[6]);
-        expect(overlay.path).toBe(this.shape);
-      });
-
-      it('point[5] to deform ellipse', function() {
-
-        var event = TestUtils.getEvent({}, {
-          'x': this.initialPoint.x + diagonalSize - 1,
-          'y': this.initialPoint.y - 1
-        });
-        this.ellipse.onMouseDown(event, overlay);
-
-        expect(overlay.mode).toBe('deform');
-        expect(overlay.segment).toBe(this.shape.segments[5]);
-        expect(overlay.path).toBe(this.shape);
-
-      });
-
-      it('point[1] to deform ellipse', function() {
-
-        var event = TestUtils.getEvent({}, {
-          'x': this.initialPoint.x - 1,
-          'y': this.initialPoint.y - diagonalSize - 1
-        });
-        this.ellipse.onMouseDown(event, overlay);
-
-        expect(overlay.mode).toBe('deform');
-        expect(overlay.segment).toBe(this.shape.segments[1]);
-        expect(overlay.path).toBe(this.shape);
-
-      });
-
-      it('point[0] to deform ellipse', function() {
-
-        var event = TestUtils.getEvent({}, {
-          'x': this.initialPoint.x - 2,
-          'y': this.initialPoint.y - 2
-        });
-        this.ellipse.onMouseDown(event, overlay);
-
-        expect(overlay.mode).toBe('deform');
-        expect(overlay.segment).toBe(this.shape.segments[0]);
-        expect(overlay.path).toBe(this.shape);
-
-      });
-
-      it('point[7] to deform ellipse', function() {
-
-        var event = TestUtils.getEvent({}, {
-          'x': this.initialPoint.x - 1,
-          'y': this.initialPoint.y + diagonalSize - 1
-        });
-        this.ellipse.onMouseDown(event, overlay);
-
-        expect(overlay.mode).toBe('deform');
-        expect(overlay.segment).toBe(this.shape.segments[7]);
-        expect(overlay.path).toBe(this.shape);
-
-      });
-
-      it('point[8] to deform ellipse', function() {
-
-        var event = TestUtils.getEvent({}, {
-          'x': this.initialPoint.x - 2,
-          'y': this.initialPoint.y
-        });
-        this.ellipse.onMouseDown(event, overlay);
-
-        expect(overlay.mode).toBe('deform');
-        expect(overlay.segment).toBe(this.shape.segments[8]);
-        expect(overlay.path).toBe(this.shape);
-
-      });
-
-      it('point[9] to deform ellipse', function() {
-
-        var event = TestUtils.getEvent({}, {
-          'x': this.initialPoint.x - diagonalSize - 1,
-          'y': this.initialPoint.y - 1
-        });
-        this.ellipse.onMouseDown(event, overlay);
-
-        expect(overlay.mode).toBe('deform');
-        expect(overlay.segment).toBe(this.shape.segments[9]);
-        expect(overlay.path).toBe(this.shape);
-      });
-
-    });
-
-    it('should change stroke when hovering ellipse',function(){
-      var red = {
-        r:1,
-        g:0,
-        b:0
-      };
-      this.ellipse.onHover(true,this.shape,1,'red');
-
-      expect(this.shape.data.hovered).toBe(true);
-      expect(this.shape.strokeColor.red).toBe(red.r);
-      expect(this.shape.strokeColor.green).toBe(red.g);
-      expect(this.shape.strokeColor.blue).toBe(red.b);
-    });
-
-    it('should change stroke back to original when not hovering ellipse',function(){
-
-      var oldColor = this.shape.strokeColor;
-      this.ellipse.onHover(true,this.shape,'red');
-
-      expect(this.shape.data.nonHoverStrokeColor.red).toBe(oldColor.red);
-      expect(this.shape.data.nonHoverStrokeColor.green).toBe(oldColor.green);
-      expect(this.shape.data.nonHoverStrokeColor.blue).toBe(oldColor.blue);
-
-      this.ellipse.onHover(false,this.shape,1);
-      expect(this.shape.data.hovered).toBe(undefined);
-      expect(this.shape.strokeColor.red).toBe(oldColor.red);
-      expect(this.shape.strokeColor.green).toBe(oldColor.green);
-      expect(this.shape.strokeColor.blue).toBe(oldColor.blue);
-    });
-
-
-    it('should change cursor to move when stroke is hit',function(){
-      var hitResult = {
-        type:'stroke'
-      };
-
-      overlay.viewer.canvas = this.canvas;
-      this.ellipse.setCursor(hitResult,overlay);
-
-      expect(jQuery(overlay.viewer.canvas).css('cursor')).toBe('move');
-    });
-
-    it('should change cursor to move when handle-in is hit',function(){
-      var hitResult = {
-        type:'handle-in'
-      };
-
-      overlay.viewer.canvas = this.canvas;
-      this.ellipse.setCursor(hitResult,overlay);
-
-      expect(jQuery(overlay.viewer.canvas).css('cursor')).toBe('move');
-    });
-
-    it('should change cursor to move when handle-out is hit',function(){
-      var hitResult = {
-        type:'handle-in'
-      };
-
-      overlay.viewer.canvas = this.canvas;
-      this.ellipse.setCursor(hitResult,overlay);
-
-      expect(jQuery(overlay.viewer.canvas).css('cursor')).toBe('move');
-    });
-
-    // it('should change cursor when hovering icon',function(){
-    //
-    // });
-
-    it('should change cursor on mouse move',function(){
-      var event = TestUtils.getEvent({},{
-        x: this.initialPoint.x,
-        y: this.initialPoint.y
-      });
-      overlay.viewer.canvas = this.canvas;
-      this.ellipse.onMouseMove(event,overlay);
-
-      expect(jQuery(overlay.viewer.canvas).css('cursor')).toBe('move');
-    });
-
-    it('should not update selection if the item is part of selected shape',function(){
-      var _this = this;
-      var item = {
-        '_name':{
-          toString:function(){
-            return 'dummy_tool_shape';
-          }
-        }
-      };
-      this.ellipse.updateSelection(true,item,overlay);
-      expect(item.selected).toBeUndefined();
-    });
-
-    it('should resize the trash can icon when resized',function(){
-      var _this = this;
-      var item = {
-        '_name':{
-          toString:function(){
-            return _this.ellipse.idPrefix + _this.ellipse.partOfPrefix + 'delete';
-          }
-        },
-        data:{
-          self:new overlay.annotationUtils.DeleteActionIcon(),
-          parent:{ // should use mock shape
-            data:{
-              rotation:1
-            },
-            contains:jasmine.createSpy().and.returnValue(true)
-          }
-        }
-      };
-
-      this.ellipse.onResize(item,overlay);
-
-      expect(item.data.self.resize).toHaveBeenCalledWith(24);
-      expect(item.data.self.rotate).toHaveBeenCalledWith(180);
-    });
-
-  });
-});
diff --git a/spec/annotations/osd-svg-freehand.test.js b/spec/annotations/osd-svg-freehand.test.js
deleted file mode 100644
index 16f4221aa56ea64415f354146a72abbda61cfed3..0000000000000000000000000000000000000000
--- a/spec/annotations/osd-svg-freehand.test.js
+++ /dev/null
@@ -1,527 +0,0 @@
-paper.install(window);
-
-describe('Freehand', function() {
-
-  beforeAll(function() {
-    this.canvas = jQuery('<canvas></canvas>');
-    this.canvas.attr('id', 'paperId');
-    jasmine.getFixtures().set(this.canvas);
-    paper.setup(this.canvas.attr('id'));
-    this.freehand = new Mirador.Freehand();
-  });
-  afterAll(function() {
-    delete this.freehand;
-  });
-
-  it('should create freehand shape', function() {
-    var initialPoint = {
-      'x': 123,
-      'y': 456
-    };
-    var overlay = MockOverlay.getOverlay(paper);
-    var shape = this.freehand.createShape(initialPoint, overlay);
-
-    expect(overlay.mode).toBe('create');
-
-    expect(shape.strokeColor.red).toBe(1);
-    expect(shape.strokeColor.green).toBe(0);
-    expect(shape.strokeColor.blue).toBe(0);
-
-    expect(shape.closed).toBe(false);
-
-    expect(shape.name).toBe(this.freehand.idPrefix + '1');
-
-    expect(shape.segments.length).toBe(1);
-
-    expect(shape.segments[0].point.x).toBe(initialPoint.x);
-    expect(shape.segments[0].point.y).toBe(initialPoint.y);
-  });
-
-  describe('Freehand Mouse Tool', function() {
-    var overlay;
-
-    beforeEach(function() {
-      overlay = MockOverlay.getOverlay(paper);
-      this.freehand = new Mirador.Freehand();
-      this.initialPoint = {
-        'x': 987,
-        'y': 654
-      };
-      this.shape = this.freehand.createShape(this.initialPoint, overlay);
-      var point = {
-        'x': this.initialPoint.x + 5,
-        'y': this.initialPoint.y
-      };
-      this.shape.add(point);
-      point = {
-        'x': this.initialPoint.x,
-        'y': this.initialPoint.y + 5
-      };
-      this.shape.add(point);
-    });
-
-    afterEach(function() {
-      delete this.shape;
-      delete this.freehand;
-    });
-
-    it('should update selection', function() {
-      var ellipseTool = new Mirador.Ellipse();
-      var initialPoint = {
-        'x': 987,
-        'y': 654
-      };
-      var ellipse = ellipseTool.createShape(initialPoint, overlay);
-      this.freehand.updateSelection(true, ellipse, overlay);
-
-      expect(this.shape.selected).toBe(false);
-
-      this.freehand.updateSelection(true, this.shape, overlay);
-
-      expect(this.shape.selected).toBe(true);
-    
-      this.freehand.updateSelection(false, this.shape, overlay);
-      
-      expect(this.shape.selected).toBe(false);
-      expect(this.shape.data.deleteIcon).toBe(null);
-    });
-
-    it('should change stroke when hovering freehand',function(){
-      var red = {
-        r:1,
-        g:0,
-        b:0
-      };
-      this.freehand.onHover(true,this.shape,1,'red');
-
-      expect(this.shape.data.hovered).toBe(true);
-      expect(this.shape.strokeColor.red).toBe(red.r);
-      expect(this.shape.strokeColor.green).toBe(red.g);
-      expect(this.shape.strokeColor.blue).toBe(red.b);
-    });
-
-    it('should change stroke back to original when not hovering freehand',function(){
-
-      var oldColor = this.shape.strokeColor;
-      this.freehand.onHover(true,this.shape,1,'red');
-
-      expect(this.shape.data.nonHoverStrokeColor.red).toBe(oldColor.red);
-      expect(this.shape.data.nonHoverStrokeColor.green).toBe(oldColor.green);
-      expect(this.shape.data.nonHoverStrokeColor.blue).toBe(oldColor.blue);
-
-      this.freehand.onHover(false,this.shape,1);
-      expect(this.shape.data.hovered).toBe(undefined);
-      expect(this.shape.strokeColor.red).toBe(oldColor.red);
-      expect(this.shape.strokeColor.green).toBe(oldColor.green);
-      expect(this.shape.strokeColor.blue).toBe(oldColor.blue);
-    });
-
-    it('should do nothing', function() {
-      var event = TestUtils.getEvent({
-        'x': 100,
-        'y': 100
-      });
-      overlay.mode = '';
-      var localCenterPoint = {
-        'x': this.initialPoint.x - 1,
-        'y': this.initialPoint.y - 1
-      };
-      var expected = [];
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        var point = {
-          'x': this.shape.segments[idx].point.x,
-          'y': this.shape.segments[idx].point.y
-        };
-        expected.push(point);
-      }
-      this.freehand.onMouseDrag(event, overlay);
-
-      expect(this.shape.segments.length).toBe(expected.length);
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        expect(this.shape.segments[idx].point.x).toBeCloseTo(expected[idx].x, 6);
-        expect(this.shape.segments[idx].point.y).toBeCloseTo(expected[idx].y, 6);
-      }
-      overlay = MockOverlay.getOverlay(paper);
-      overlay.mode = 'edit';
-      this.freehand.onMouseDrag(event, overlay);
-
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        expect(this.shape.segments[idx].point.x).toBeCloseTo(expected[idx].x, 6);
-        expect(this.shape.segments[idx].point.y).toBeCloseTo(expected[idx].y, 6);
-      }
-    });
-
-    it('should edit the whole freehand shape', function() {
-      var event = TestUtils.getEvent({
-        'x': 3,
-        'y': -3
-      });
-      this.freehand.updateSelection(true,this.shape,overlay);
-      overlay.mode = 'translate';
-      overlay.path = this.shape;
-      var expected = [];
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        var point = {
-          'x': this.shape.segments[idx].point.x + event.delta.x,
-          'y': this.shape.segments[idx].point.y + event.delta.y
-        };
-        expected.push(point);
-      }
-      this.freehand.onMouseDrag(event, overlay);
-
-      expect(this.shape.segments.length).toBe(expected.length);
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        expect(this.shape.segments[idx].point.x).toBeCloseTo(expected[idx].x, 6);
-        expect(this.shape.segments[idx].point.y).toBeCloseTo(expected[idx].y, 6);
-      }
-
-      var selectedPointIndex = 1;
-      overlay = MockOverlay.getOverlay(paper);
-      overlay.mode = 'deform';
-      overlay.path = this.shape;
-      overlay.segment  = this.shape.segments[selectedPointIndex];
-      expected = [];
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        if (idx == selectedPointIndex) {
-          var point = {
-            'x': this.shape.segments[idx].point.x + event.delta.x,
-            'y': this.shape.segments[idx].point.y + event.delta.y
-          };
-          expected.push(point);
-        } else {
-          var point = {
-            'x': this.shape.segments[idx].point.x,
-            'y': this.shape.segments[idx].point.y
-          };
-          expected.push(point);
-        }
-      }
-      this.freehand.onMouseDrag(event, overlay);
-
-      expect(this.shape.segments.length).toBe(expected.length);
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        expect(this.shape.segments[idx].point.x).toBeCloseTo(expected[idx].x, 6);
-        expect(this.shape.segments[idx].point.y).toBeCloseTo(expected[idx].y, 6);
-      }
-
-      event = TestUtils.getEvent({}, {
-        'x': 100,
-        'y': 100
-      });
-      overlay.mode = 'create';
-      overlay.path = this.shape;
-      expected = [];
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        var point = {
-          'x': this.shape.segments[idx].point.x,
-          'y': this.shape.segments[idx].point.y
-        };
-        expected.push(point);
-      }
-      expected.push(event.point);
-      this.freehand.onMouseDrag(event, overlay);
-
-      expect(this.shape.segments.length).toBe(expected.length);
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        expect(this.shape.segments[idx].point.x).toBeCloseTo(expected[idx].x, 6);
-        expect(this.shape.segments[idx].point.y).toBeCloseTo(expected[idx].y, 6);
-      }
-    });
-
-    it('should finish freehand shape', function() {
-      var event = TestUtils.getEvent();
-      overlay.mode = 'create';
-      overlay.shape = this.shape;
-      overlay.path = this.shape;
-      spyOn(overlay.path, 'simplify').and.callThrough();
-      this.freehand.onMouseUp(event, overlay);
-      expect(overlay.path.simplify).toHaveBeenCalled();
-      expect(overlay.onDrawFinish).toHaveBeenCalled();
-    });
-
-    // TODO this should be refactored
-    it('should select freehand shape', function() {
-      var event = TestUtils.getEvent({}, {
-        'x': this.initialPoint.x - 100,
-        'y': this.initialPoint.y - 100
-      });
-      overlay.mode = '';
-      this.freehand.onMouseDown(event, overlay);
-
-      expect(overlay.mode).toBe('create');
-      expect(overlay.segment).toBeNull();
-      expect(overlay.path).not.toBe(this.shape);
-
-      event = TestUtils.getEvent({}, {
-        'x': this.initialPoint.x - 100,
-        'y': this.initialPoint.y - 100
-      }, {
-        'shift': null
-      });
-      overlay.mode = 'create';
-      overlay.path = this.shape;
-      var expected = [];
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        var point = {
-          'x': this.shape.segments[idx].point.x,
-          'y': this.shape.segments[idx].point.y
-        };
-        expected.push(point);
-      }
-      this.freehand.onMouseDown(event, overlay);
-
-      expect(this.shape.segments.length).toBe(expected.length);
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        expect(this.shape.segments[idx].point.x).toBeCloseTo(expected[idx].x, 6);
-        expect(this.shape.segments[idx].point.y).toBeCloseTo(expected[idx].y, 6);
-      }
-
-      overlay = MockOverlay.getOverlay(paper);
-      overlay.mode = 'translate';
-      this.freehand.onMouseDown(event, overlay);
-
-      expect(overlay.segment.point.x).toBe(event.point.x);
-      expect(overlay.segment.point.y).toBe(event.point.y);
-
-      expect(overlay.path).not.toBe(this.shape);
-
-      overlay = MockOverlay.getOverlay(paper);
-      overlay.mode = 'translate';
-      overlay.path = this.shape;
-
-      this.freehand.onMouseDown(event, overlay);
-
-      event = TestUtils.getEvent({}, {
-        'x': this.initialPoint.x + 5,
-        'y': this.initialPoint.y
-      }, {
-        'shift': 'selected'
-      });
-
-      expected = [];
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        var point = {
-          'x': this.shape.segments[idx].point.x,
-          'y': this.shape.segments[idx].point.y
-        };
-        if (point.x != event.point.x || point.y != event.point.y) {
-          expected.push(point);
-        }
-      }
-
-      overlay = overlay = MockOverlay.getOverlay(paper);
-      this.freehand.onMouseDown(event, overlay);
-
-      expect(this.shape.segments.length).toBe(expected.length);
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        expect(this.shape.segments[idx].point.x).toBeCloseTo(expected[idx].x, 6);
-        expect(this.shape.segments[idx].point.y).toBeCloseTo(expected[idx].y, 6);
-      }
-
-      event = TestUtils.getEvent({}, {
-        'x': this.initialPoint.x + 3,
-        'y': this.initialPoint.y
-      }, {
-        'shift': 'selected'
-      });
-      overlay.mode = '';
-      expected = [];
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        var point = {
-          'x': this.shape.segments[idx].point.x,
-          'y': this.shape.segments[idx].point.y
-        };
-        expected.push(point);
-      }
-      this.freehand.onMouseDown(event, overlay);
-
-      expect(this.shape.segments.length).toBe(expected.length);
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        expect(this.shape.segments[idx].point.x).toBeCloseTo(expected[idx].x, 6);
-        expect(this.shape.segments[idx].point.y).toBeCloseTo(expected[idx].y, 6);
-      }
-
-      event = TestUtils.getEvent({}, {
-        'x': this.initialPoint.x + 3,
-        'y': this.initialPoint.y
-      }, {
-        'shift': null
-      });
-
-      MockOverlay.getOverlay(paper);
-      overlay.mode='edit';
-      overlay.path = this.shape;
-
-      expected = [];
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        var point = {
-          'x': this.shape.segments[idx].point.x,
-          'y': this.shape.segments[idx].point.y
-        };
-        expected.push(point);
-      }
-      this.freehand.onMouseDown(event, overlay);
-
-      expect(this.shape.segments.length).toBe(expected.length);
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        expect(this.shape.segments[idx].point.x).toBeCloseTo(expected[idx].x, 6);
-        expect(this.shape.segments[idx].point.y).toBeCloseTo(expected[idx].y, 6);
-      }
-
-      event = TestUtils.getEvent({}, {
-        'x': this.initialPoint.x + 3,
-        'y': this.initialPoint.y
-      }, {
-        'shift': null
-      });
-      overlay = MockOverlay.getOverlay(paper);
-      overlay.mode = 'edit';
-      expected = [];
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        var point = {
-          'x': this.shape.segments[idx].point.x,
-          'y': this.shape.segments[idx].point.y
-        };
-        expected.push(point);
-      }
-      this.freehand.onMouseDown(event, overlay);
-
-      expect(this.shape.segments.length).toBe(expected.length);
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        expect(this.shape.segments[idx].point.x).toBeCloseTo(expected[idx].x, 6);
-        expect(this.shape.segments[idx].point.y).toBeCloseTo(expected[idx].y, 6);
-      }
-
-      event = TestUtils.getEvent({}, {
-        'x': this.initialPoint.x + 100,
-        'y': this.initialPoint.y
-      }, {
-        'shift': null
-      });
-      expected = [];
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        var point = {
-          'x': this.shape.segments[idx].point.x,
-          'y': this.shape.segments[idx].point.y
-        };
-        expected.push(point);
-      }
-      this.freehand.onMouseDown(event, overlay);
-
-      expect(this.shape.segments.length).toBe(expected.length);
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        expect(this.shape.segments[idx].point.x).toBeCloseTo(expected[idx].x, 6);
-        expect(this.shape.segments[idx].point.y).toBeCloseTo(expected[idx].y, 6);
-      }
-
-      event = TestUtils.getEvent({}, {
-        'x': this.initialPoint.x,
-        'y': this.initialPoint.y
-      }, {
-        'shift': null
-      });
-      overlay = MockOverlay.getOverlay(paper);
-      overlay.mode = 'edit';
-      overlay.hitOptions.stroke = false;
-      overlay.hitOptions.segments = false;
-      overlay.hitOptions.tolerance = 5;
-
-      this.shape.closed = true;
-      this.shape.fillColor = '#0000ff';
-      expected = [];
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        var point = {
-          'x': this.shape.segments[idx].point.x,
-          'y': this.shape.segments[idx].point.y
-        };
-        expected.push(point);
-      }
-      this.freehand.onMouseDown(event, overlay);
-
-      expect(this.shape.segments.length).toBe(expected.length);
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        expect(this.shape.segments[idx].point.x).toBeCloseTo(expected[idx].x, 6);
-        expect(this.shape.segments[idx].point.y).toBeCloseTo(expected[idx].y, 6);
-      }
-    });
-
-    it('should select prefixed shapes', function() {
-      var event = TestUtils.getEvent();
-      spyOn(overlay.paperScope.project, 'hitTest').and.returnValue({
-        item: this.shape
-      });
-      this.shape._name = "12-ABCD-EFG";
-      this.shape.data.self = jasmine.createSpyObj('self', ['onMouseDown']);
-      this.freehand.idPrefix = "ABCD";
-      this.freehand.partOfPrefix = "12";
-      this.freehand.onMouseDown(event, overlay);
-      expect(this.shape.data.self.onMouseDown).toHaveBeenCalled();
-    });
-
-    it('should resize the trash can icon when resized',function(){
-      var _this = this;
-      var item = {
-        '_name':{
-          toString:function(){
-            return _this.freehand.idPrefix + _this.freehand.partOfPrefix + 'delete';
-          }
-        },
-        data:{
-          self:new overlay.annotationUtils.DeleteActionIcon(),
-          parent:{ // should use mock shape
-            data:{
-              rotation:1
-            },
-            contains:jasmine.createSpy().and.returnValue(true)
-          }
-        }
-      };
-
-      this.freehand.onResize(item,overlay);
-
-      expect(item.data.self.resize).toHaveBeenCalledWith(24);
-    });
-
-
-    it('should change cursor on mouse move',function(){
-      var event = TestUtils.getEvent({}, {
-        'x': this.initialPoint.x,
-        'y': this.initialPoint.y
-      });
-      overlay.viewer.canvas = this.canvas;
-      overlay.hoveredPath = this.shape;
-      this.freehand.onMouseMove(event,overlay);
-
-      expect(jQuery(overlay.viewer.canvas).css('cursor')).toBe('pointer');
-    });
-    
-    it('should set cursor to pointer on handle-in or handle-out', function() {
-      var _this = this;
-      jQuery.each(['handle-in', 'handle-out'], function(k, v) {
-        var hitResult = { type: v };
-        overlay.viewer.canvas = _this.canvas;
-        _this.freehand.setCursor(hitResult, overlay);
-        expect(jQuery(overlay.viewer.canvas).css('cursor')).toBe('pointer');
-      });
-    });
-
-    it('should set cursor to move when stoke is hit',function(){
-      var hitResult = {
-        type:'stroke'
-      };
-      overlay.viewer.canvas = this.canvas;
-      this.freehand.setCursor(hitResult,overlay);
-      expect(jQuery(overlay.viewer.canvas).css('cursor')).toBe('move');
-    });
-
-    it('should set cursor to pointer when icon is hit',function(){
-      var hitResult = {
-        type:'pixel'
-      };
-      overlay.viewer.canvas = this.canvas;
-      this.freehand.setCursor(hitResult,overlay);
-      expect(jQuery(overlay.viewer.canvas).css('cursor')).toBe('pointer');
-    });
-
-  });
-});
diff --git a/spec/annotations/osd-svg-overlay.test.js b/spec/annotations/osd-svg-overlay.test.js
deleted file mode 100644
index 38d60f99bdbe80b5aef7dcd67c56eb557c5faa6e..0000000000000000000000000000000000000000
--- a/spec/annotations/osd-svg-overlay.test.js
+++ /dev/null
@@ -1,581 +0,0 @@
-describe('Overlay', function() {
-
-  function getEvent(delta, point, lastPoint, event) {
-    return {
-      'delta': delta,
-      'point': point,
-      'lastPoint': lastPoint,
-      'event': event,
-      'stopPropagation': jasmine.createSpy()
-    };
-  }
-
-  beforeEach(function() {
-    //register Handlebars helper
-    Mirador.Handlebars.registerHelper('t', function(i18n_key) {
-      var result = i18next.t(i18n_key);
-      return new Mirador.Handlebars.SafeString(result);
-    });
-
-    var id = 'test';
-    this.canvas = jQuery('<canvas></canvas>');
-    this.canvas.attr('id', 'draw_canvas_' + id);
-    jasmine.getFixtures().set(this.canvas);
-    this.eventEmitter = new Mirador.EventEmitter();// TODO should stub
-    this.windowObjMock = {
-      'id': id,
-      'windowId': id,
-      'viewer': {
-        'id': 'viewerId'
-      },
-      'canvasID': 'myCanvasId',
-      'canvases': {
-        'myCanvasId': {}
-      }
-    };
-    this.viewerMock = {
-      'canvas': {
-        'appendChild': function() {
-        }
-      },
-      'viewport': {
-        'getZoom': function() {
-          return 1.0;
-        },
-        'pixelFromPoint': function(point, current) {
-          return point;
-        },
-        'getBounds': function(current) {
-          return {
-            'x': 800,
-            'y': 600
-          };
-        },
-        'containerSize': {
-          'x': 800,
-          'y': 600
-        },
-        'contentSize': {
-          'x': 800,
-          'y': 600
-        },
-        'getBounds': function() {
-          return {
-            'x': 0,
-            'y': 0,
-            'width': 800,
-            'height': 600
-          };
-        }
-      },
-      'addHandler': function(eventName, functionBody) {
-      },
-      'removeHandler':function(eventName,functionBody){
-      }
-    };
-    var drawingToolsSettings = {
-      'doubleClickReactionTime': 300,
-      'strokeColor': 'deepSkyBlue',
-      'fillColor': 'deepSkyBlue',
-      'fillColorAlpha': 0.0
-    };
-
-    var state = new Mirador.SaveController({
-      eventEmitter: this.eventEmitter,
-      windowObjects: [this.windowObjMock]
-    }); // TODO should stub this
-
-    state.getStateProperty = function(key) {
-    if (key === 'drawingToolsSettings') {
-     return {
-       'doubleClickReactionTime': 300,
-       'strokeColor': 'deepSkyBlue',
-       'fillColor': 'deepSkyBlue',
-       'fillColorAlpha': 0.0
-     };
-    }
-    if (key === 'availableAnnotationDrawingTools') {
-     return [];
-    }
-    if (key === 'availableExternalCommentsPanel') {
-     return false;
-    }
-     return null;
-    };
-
-    state.currentConfig.windowObjects[0].canvases['myCanvasId'].getBounds = function() {
-      return {
-        'x': 800,
-        'y': 600
-      };
-    };
-    this.overlay = new Mirador.Overlay(this.viewerMock, this.windowObjMock.viewer.id, this.windowObjMock.windowId, state, new MockEventEmitter(this.eventEmitter));
-    this.overlay.annotationUtils = new AnnotationUtilsStub();
-  });
-
-  afterEach(function() {
-    delete this.overlay;
-  });
-
-  it('toggleDrawingTool', function() {
-    this.eventEmitter.publish('toggleDrawingTool.' + this.windowObjMock.windowId, [null]);
-
-    expect(this.overlay.currentTool).toBeNull();
-
-    this.pin = new Mirador.Pin(); //TODO should use the dummy tool
-    this.overlay.disabled = true;
-    this.eventEmitter.publish('toggleDrawingTool.' + this.windowObjMock.windowId, [this.pin.logoClass]);
-
-    expect(this.overlay.currentTool).toBeNull();
-
-    this.overlay.disabled = false;
-    this.eventEmitter.publish('toggleDrawingTool.' + this.windowObjMock.windowId, [this.pin.logoClass]);
-
-    expect(this.overlay.currentTool).not.toBeNull();
-    expect(this.overlay.currentTool.logoClass).toBe(this.pin.logoClass);
-  });
-
-  it('changeBorderColor', function() {
-    var color = '#ff0000';
-    this.eventEmitter.publish('changeBorderColor.' + this.windowObjMock.windowId, [color]);
-
-    expect(this.overlay.strokeColor).toBe(color);
-
-    color = '#00ff00';
-    this.rectangle = new Mirador.Rectangle(); // TODO should use the dummy object
-    var initialPoint = {
-      'x': 123,
-      'y': 456
-    };
-
-   this.overlay.hoveredPath = this.rectangle.createShape(initialPoint, this.overlay);
-
-    expect(this.overlay.hoveredPath.strokeColor.red).toBe(1);
-    expect(this.overlay.hoveredPath.strokeColor.green).toBe(0);
-    expect(this.overlay.hoveredPath.strokeColor.blue).toBe(0);
-
-    this.eventEmitter.publish('changeBorderColor.' + this.windowObjMock.windowId, [color]);
-
-    expect(this.overlay.strokeColor).toBe(color);
-    expect(this.overlay.hoveredPath.strokeColor.red).toBe(0);
-    expect(this.overlay.hoveredPath.strokeColor.green).toBe(1);
-    expect(this.overlay.hoveredPath.strokeColor.blue).toBe(0);
-  });
-
-  it('changeFillColor', function() {
-    var color = '#00ff00';
-    var alpha = 0.00001;
-    this.eventEmitter.publish('changeFillColor.' + this.windowObjMock.windowId, [color, alpha]);
-
-    expect(this.overlay.fillColor).toBe(color);
-    expect(this.overlay.fillColorAlpha).toBe(0.00001);
-
-    color = '#ff0000';
-
-    this.rectangle = new Mirador.Rectangle(); // TODO should use the dummy tool
-    var initialPoint = {
-      'x': 123,
-      'y': 456
-    };
-
-    this.overlay.hoveredPath = this.rectangle.createShape(initialPoint, this.overlay);
-
-    expect(this.overlay.hoveredPath.fillColor.red).toBe(0);
-    expect(this.overlay.hoveredPath.fillColor.green).toBe(1);
-    expect(this.overlay.hoveredPath.fillColor.blue).toBe(0);
-    expect(this.overlay.hoveredPath.fillColor.alpha).toBe(0.00001);
-
-    alpha = 0.5;
-    this.eventEmitter.publish('changeFillColor.' + this.windowObjMock.windowId, [color, alpha]);
-
-    expect(this.overlay.fillColor).toBe(color);
-    expect(this.overlay.fillColorAlpha).toBe(alpha);
-    expect(this.overlay.hoveredPath.fillColor.red).toBe(1);
-    expect(this.overlay.hoveredPath.fillColor.green).toBe(0);
-    expect(this.overlay.hoveredPath.fillColor.blue).toBe(0);
-    expect(this.overlay.hoveredPath.fillColor.alpha).toBe(0.5);
-
-    this.polygon = new Mirador.Polygon(); // TODO should use the dummy tool
-    this.overlay.hoveredPath = this.polygon.createShape(initialPoint, this.overlay);
-
-  });
-
-  it('getTools', function() {
-    expect(Mirador.svgOverlayTools).not.toBeNull();
-
-    var cache = Mirador.svgOverlayTools;
-    var newTools = Mirador.getTools();
-
-    expect(cache.length).toBe(newTools.length);
-    for (var i = 0; i < cache.length; i++) {
-      expect(cache[i]).toBe(newTools[i]);
-    }
-  });
-
-  it('onDrawFinish', function() {
-    this.rectangle = new Mirador.Rectangle(); // TODO should use stubbed tool
-    var initialPoint = {
-      'x': 123,
-      'y': 456
-    };
-
-    this.overlay.hoveredPath = this.rectangle.createShape(initialPoint, this.overlay);
-    this.overlay.onDrawFinish();
-
-    expect(this.overlay.hoveredPath).not.toBeNull();
-    expect(this.overlay.hoveredPath).not.toBe(this.overlay.path);
-
-    this.overlay.path = this.rectangle.createShape(initialPoint, this.overlay);
-    this.overlay.onDrawFinish();
-
-    expect(this.overlay.hoveredPath).not.toBeNull();
-    expect(this.overlay.hoveredPath).not.toBe(this.overlay.path);
-
-    var comment = this.overlay.commentPanel;
-    this.overlay.hoveredPath = null;
-    this.overlay.path = this.rectangle.createShape(initialPoint, this.overlay);
-    this.overlay.onDrawFinish();
-
-    expect(this.overlay.hoveredPath).not.toBeNull();
-    expect(this.overlay.hoveredPath).not.toBe(this.overlay.path);
-    expect(this.overlay.commentPanel).toBe(comment);
-  });
-
-  it('onMouseUp', function() {
-    this.rectangle = new Mirador.Rectangle(); // TODO should use stubbed tool
-    spyOn(this.rectangle, 'onMouseUp');
-    var event = getEvent({
-      'x': 100,
-      'y': 100
-    });
-    this.overlay.overlay = this.overlay;
-    this.overlay.disabled = true;
-    this.overlay.onMouseUp(event);
-
-    expect(this.rectangle.onMouseUp.calls.count()).toEqual(0);
-
-    this.overlay.currentTool = this.rectangle;
-    this.overlay.disabled = false;
-    this.overlay.onMouseUp(event);
-
-    expect(this.rectangle.onMouseUp.calls.count()).toEqual(1);
-  });
-
-  it('onMouseDrag', function() {
-    this.rectangle = new Mirador.Rectangle(); // TODO should use stubbed tool
-    spyOn(this.rectangle, 'onMouseDrag');
-    var event = getEvent({
-      'x': 100,
-      'y': 100
-    }, {}, {
-      'x' : 99,
-      'y' : 99
-    }, {
-      'clientX': 100,
-      'clientX': 100
-    });
-    this.overlay.path = {};
-    this.overlay.path.bounds = {
-      'x': 0,
-      'y': 0,
-      'width': 100,
-      height: 100
-    };
-    this.overlay.overlay = this.overlay;
-    this.overlay.disabled = true;
-    this.overlay.onMouseDrag(event);
-
-    expect(this.rectangle.onMouseDrag.calls.count()).toEqual(0);
-
-    this.overlay.currentTool = this.rectangle;
-    this.overlay.disabled = false;
-    this.overlay.onMouseDrag(event);
-
-    expect(this.rectangle.onMouseDrag.calls.count()).toEqual(1);
-  });
-
-  it('onMouseMove', function() {
-    this.rectangle = new Mirador.Rectangle(); // TODO should use stubbed tool
-    spyOn(this.rectangle, 'onMouseMove');
-    var event = getEvent({
-      'x': 100,
-      'y': 100
-    }, {}, {}, {
-      'clientX': 100,
-      'clientX': 100
-    });
-    this.overlay.overlay = this.overlay;
-    this.overlay.disabled = true;
-    this.overlay.onMouseMove(event);
-
-    expect(this.rectangle.onMouseMove.calls.count()).toEqual(0);
-
-    this.overlay.currentTool = this.rectangle;
-    this.overlay.disabled = false;
-    this.overlay.onMouseMove(event);
-
-    expect(this.rectangle.onMouseMove.calls.count()).toEqual(1);
-  });
-
-  it('onDoubleClick', function() {
-    this.rectangle = new Mirador.Rectangle(); // TODO should use stubbed tool
-    spyOn(this.rectangle, 'onDoubleClick');
-    var event = getEvent({
-      'x': 100,
-      'y': 100
-    });
-    this.overlay.overlay = this.overlay;
-    this.overlay.onDoubleClick(event);
-
-    expect(this.rectangle.onDoubleClick.calls.count()).toEqual(0);
-
-    this.overlay.currentTool = this.rectangle;
-    this.overlay.onDoubleClick(event);
-
-    expect(this.rectangle.onDoubleClick.calls.count()).toEqual(1);
-  });
-
-  it('should not select non editable item',function(){
-    var stubbedTool = {
-      onMouseDown : jasmine.createSpy(),
-      onDoubleClick: jasmine.createSpy()
-    };
-
-    var event = getEvent({
-      'x': 100,
-      'y': 100
-    }, {
-      'x': 100,
-      'y': 100
-    });
-
-    var date = new Date();
-    this.overlay.latestMouseDownTime = date.getTime()  -2 * this.overlay.doubleClickReactionTime;
-    this.overlay.overlay = this.overlay;
-    this.overlay.disabled = false;
-
-    var rectangle = new Mirador.Rectangle();// TODO should use stubbed tool // should stub the hitTest
-    this.overlay.currentTool = rectangle;
-
-    event.item = rectangle.createShape(event.point, this.overlay);
-    this.overlay.mode = '';
-
-    this.overlay.onMouseDown(event);
-
-    expect(stubbedTool.onMouseDown.calls.count()).toEqual(0);
-    expect(stubbedTool.onDoubleClick.calls.count()).toEqual(0);
-  });
-
-  it('onMouseDown', function() {
-    this.rectangle = new Mirador.Rectangle(); // TODO should use stubbed tool
-    spyOn(this.rectangle, 'onMouseDown');
-    spyOn(this.rectangle, 'onDoubleClick');
-    var event = getEvent({
-      'x': 100,
-      'y': 100
-    }, {
-      'x': 100,
-      'y': 100
-    });
-    var date = new Date();
-    this.overlay.latestMouseDownTime = date.getTime();
-    this.overlay.overlay = this.overlay;
-    this.overlay.disabled = true;
-
-    this.overlay.currentTool = this.rectangle;
-    this.overlay.mode = 'create';
-
-    this.overlay.onMouseDown(event);
-
-    expect(this.rectangle.onMouseDown.calls.count()).toEqual(0);
-    expect(this.rectangle.onDoubleClick.calls.count()).toEqual(0);
-
-    this.overlay.currentTool = this.rectangle;
-    this.overlay.disabled = false;
-    this.overlay.mode = 'create';
-
-    this.overlay.onMouseDown(event);
-
-    expect(this.rectangle.onMouseDown.calls.count()).toEqual(0);
-    expect(this.rectangle.onDoubleClick.calls.count()).toEqual(1);
-
-    this.overlay.latestMouseDownTime -= 2 * this.overlay.doubleClickReactionTime;
-
-    this.overlay.onMouseDown(event);
-
-    expect(this.rectangle.onMouseDown.calls.count()).toEqual(1);
-    expect(this.rectangle.onDoubleClick.calls.count()).toEqual(1);
-
-    // click without hovering items
-    this.overlay.latestMouseDownTime -= 2 * this.overlay.doubleClickReactionTime;
-    this.overlay.currentTool = undefined;
-    this.overlay.onMouseDown(event);
-
-    expect(this.rectangle.onMouseDown.calls.count()).toEqual(1);
-    expect(this.rectangle.onDoubleClick.calls.count()).toEqual(1);
-
-    // hover item
-    event.item = this.rectangle.createShape(event.point, this.overlay);
-    event.item.data.editable = true;
-    this.overlay.latestMouseDownTime -= 2 * this.overlay.doubleClickReactionTime;
-    this.overlay.currentTool = this.rectangle;
-    this.overlay.onMouseDown(event);
-
-    expect(this.rectangle.onMouseDown.calls.count()).toEqual(2);
-    expect(this.rectangle.onDoubleClick.calls.count()).toEqual(1);
-
-    // // hover new item and add to edited paths
-    this.overlay.currentTool = this.rectangle;
-     event.item = this.rectangle.createShape(event.point, this.overlay); // TODO SEEMS TO BE OUTDATED test
-     event.item.data.editable = true;
-    // this.overlay.latestMouseDownTime -= 2 * this.overlay.doubleClickReactionTime;
-    // this.overlay.mode = 'translate';
-    // this.overlay.path = event.item;
-    // this.overlay.path.data.annotation = '<svg>stored svg</svg>';
-    // this.overlay.onMouseDown(event);
-    //
-    // expect(this.rectangle.onMouseDown.calls.count()).toEqual(3);
-    // expect(this.rectangle.onDoubleClick.calls.count()).toEqual(1);
-
-    // hover new item
-    this.overlay.latestMouseDownTime -= 2 * this.overlay.doubleClickReactionTime;
-
-    this.overlay.onMouseDown(event);
-
-    expect(this.rectangle.onMouseDown.calls.count()).toEqual(3);
-    expect(this.rectangle.onDoubleClick.calls.count()).toEqual(1);
-
-    this.overlay.restoreEditedShapes();
-    this.overlay.restoreDraftShapes();
-
-    this.overlay.latestMouseDownTime -= 2 * this.overlay.doubleClickReactionTime;
-    this.overlay.hoveredPath = this.rectangle.createShape(event.point, this.overlay);
-    this.overlay.segment = this.overlay.hoveredPath.segments[0];
-    this.overlay.path = this.overlay.hoveredPath;
-    event = getEvent({
-      'x': 1000,
-      'y': 1000
-    }, {
-      'x': 1000,
-      'y': 1000
-    });
-    this.ellipse = new Mirador.Ellipse(); // TODO SHOULD STUB
-    var newShape = this.ellipse.createShape(event.point, this.overlay);
-    newShape.data.editable = true;
-    this.overlay.mode = '';
-
-    this.overlay.onMouseDown(event);
-
-    expect(this.overlay.hoveredPath).toBe(newShape);
-    expect(this.overlay.segment).toBe(newShape.segments[0]);
-    expect(this.overlay.path).toBe(newShape);
-    expect(this.overlay.mode).toEqual('deform');
-  });
-
-  it('parseSVG', function() {
-    var svg = '<svg xmlns="http://www.w3.org/2000/svg"><g><path d="M207.55023,187.98214l143.12613,0l143.12613,0l0,97.81055l0,97.81055l-143.12613,0l-143.12613,0l0,-97.81055z" data-paper-data="{&quot;rotation&quot;:0,&quot;annotation&quot;:null}" id="rectangle_154807a4-4121-43f0-a920-5e6792523959" fill-opacity="0.5" fill="#008000" stroke="#ff0000" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" font-family="sans-serif" font-weight="normal" font-size="12" text-anchor="start" mix-blend-mode="normal"/><path xmlns="http://www.w3.org/2000/svg" d="M465.02563,80.868c27.12902,-14.80678 65.56711,-23.45636 103.98969,-23.45148c38.42258,0.00488 76.82965,8.66424 103.98969,23.45148c27.16004,14.78724 43.07305,35.70236 43.07394,56.61687c0.00089,20.91451 -15.91035,41.82842 -43.07394,56.61687c-27.16359,14.78845 -66.01382,23.21455 -103.98969,23.45148c-37.97587,0.23693 -76.58764,-8.53597 -103.98969,-23.45148c-27.40205,-14.91551 -43.17951,-35.75374 -43.07394,-56.61687c0.10556,-20.86313 15.94492,-41.81009 43.07394,-56.61687z" data-paper-data="{&quot;rotation&quot;:0,&quot;annotation&quot;:null}" id="circle_3c667714-d8cf-4b52-80eb-d22e863cf486" fill-opacity="0.5" fill="#008000" stroke="#ff0000" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" font-family="sans-serif" font-weight="normal" font-size="12" text-anchor="start" mix-blend-mode="normal"></path></g></svg>';
-    var annotation = {};
-    var result = this.overlay.parseSVG(svg, annotation);
-
-    expect(result.length).toEqual(2);
-    expect(result[0].name).toContain('rectangle_');
-    expect(result[1].name).toContain('circle_');
-  });
-
-  // set of tests for both import and export functionality. Simulates load and store of annotation shapes.
-  it('getSVGString1', function() {
-    var svg='<svg xmlns=\'http://www.w3.org/2000/svg\'><g><path d="M207.55023,187.98214l143.12613,0l0,0l143.12613,0l0,97.81055l0,97.81055l-143.12613,0l-143.12613,0l0,-97.81055z" data-paper-data="{&quot;rotation&quot;:0,&quot;annotation&quot;:null}" id="rectangle_154807a4-4121-43f0-a920-5e6792523959" fill-opacity="0.5" fill="#008000" fill-rule="nonzero" stroke="#ff0000" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" font-family="sans-serif" font-weight="normal" font-size="12" text-anchor="start" style="mix-blend-mode: normal"></path><path d="M465.02563,80.868c27.12902,-14.80678 65.56711,-23.45636 103.98969,-23.45148c38.42258,0.00488 76.82965,8.66424 103.98969,23.45148c27.16004,14.78724 43.07305,35.70236 43.07394,56.61687c0.00089,20.91451 -15.91035,41.82842 -43.07394,56.61687c-27.16359,14.78845 -66.01382,23.21455 -103.98969,23.45148c-37.97587,0.23693 -76.58764,-8.53597 -103.98969,-23.45148c-27.40205,-14.91551 -43.17951,-35.75374 -43.07394,-56.61687c0.10556,-20.86313 15.94492,-41.81009 43.07394,-56.61687z" data-paper-data="{&quot;rotation&quot;:0,&quot;annotation&quot;:null}" id="circle_3c667714-d8cf-4b52-80eb-d22e863cf486" fill-opacity="0.5" fill="#008000" fill-rule="nonzero" stroke="#ff0000" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" font-family="sans-serif" font-weight="normal" font-size="12" text-anchor="start" style="mix-blend-mode: normal"></path></g></svg>'
-    var annotation = {};
-    var result = this.overlay.parseSVG(svg, annotation);
-    var exportedSVG = this.overlay.getSVGString(result);
-
-    // TODO should find better way to test this
-    // each style change results in failed test
-    //expect(svg).toEqual(exportedSVG);
-  });
-
-  it('getSVGString2', function() {
-    var svgTestTwo = '<svg xmlns=\'http://www.w3.org/2000/svg\'><path d="M207.55023,187.98214l143.12613,0l0,0l143.12613,0l0,97.81055l0,97.81055l-143.12613,0l-143.12613,0l0,-97.81055z" data-paper-data="{&quot;rotation&quot;:0,&quot;annotation&quot;:null}" id="rectangle_154807a4-4121-43f0-a920-5e6792523959" fill-opacity="0.5" fill="#008000" fill-rule="nonzero" stroke="#ff0000" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" font-family="sans-serif" font-weight="normal" font-size="12" text-anchor="start" style="mix-blend-mode: normal"></path></svg>';
-    var annotation = {};
-    var result = this.overlay.parseSVG(svgTestTwo, annotation);
-    var exportedSVGTestTwo = this.overlay.getSVGString(result);
-
-    // TODO should find better way to test this
-    // each style change results in failed test
-    //expect(svgTestTwo).toEqual(exportedSVGTestTwo);
-  });
-
-  it('should delete shape',function(){
-
-    var mockShape = {
-      '_name': {
-        toString: function () {
-
-        }
-      },
-      remove:jasmine.createSpy()
-    };
-
-    this.overlay.draftPaths = [mockShape];
-
-    this.overlay.deleteShape(mockShape);
-
-    expect(this.overlay.draftPaths.length).toBe(0);
-    expect(mockShape.remove.calls.any()).toBe(true);
-  });
-
-  it('should unsubscibe from all events when destroying',function(){
-   this.overlay.destroy();
-   for(var key in this.overlay.eventEmitter.events){
-     expect(this.overlay.eventEmitter.events[key]).toBe(0);
-   }
-  });
-
-  it('sets and removes the mouse tool', function() {
-    var key = this.overlay.mouseToolKey;
-    var paperScope = this.overlay.paperScope;
-
-    this.overlay.setMouseTool();
-    expect(paperScope.tools.length).toEqual(1);
-
-    this.overlay.removeMouseTool();
-    expect(paperScope.tools.length).toEqual(0);
-  });
-
-  describe("When there are two overlays: ", function() {
-
-    beforeEach(function() {
-      var state = new Mirador.SaveController({eventEmitter: this.eventEmitter});
-
-      this.overlay2 = new Mirador.Overlay(this.viewerMock, this.windowObjMock.viewer.id, this.windowObjMock.windowId, state, new MockEventEmitter(this.eventEmitter));
-      this.overlay2.annotationUtils = new AnnotationUtilsStub();
-    });
-
-    afterEach(function() {
-      delete this.overlay2;
-    });
-
-    it("creates different paperScopes for each overlay", function() {
-      expect(this.overlay.paperScope._id).not.toEqual(this.overlay2.paperScope._id);
-    });
-
-    it("the global paper object should be set to the most recently instantiated paperScope", function() {
-      // since overlay2 was created most recently, the global paper object should be set to the paperScope of overlay2
-      expect(paper._id).toEqual(this.overlay2.paperScope._id);
-    });
-
-    it("correctly sets the global paper object when an overlay's setMouseTool method is called", function(){
-      // make sure the global paper object is set to the paperScope of overlay2
-      expect(paper._id).toEqual(this.overlay2.paperScope._id);
-      // call setMouseTool on the first overlay
-      this.overlay.setMouseTool();
-      // make sure the global paper object is set to the paperScope of the first overlay
-      expect(paper._id).toEqual(this.overlay.paperScope._id);
-      // call setMouseTool on overlay2 and check the global paper object again
-      this.overlay2.setMouseTool();
-      expect(paper._id).toEqual(this.overlay2.paperScope._id);
-      expect(paper._id).not.toEqual(this.overlay.paperScope._id);
-    });
-  });
-
-});
diff --git a/spec/annotations/osd-svg-pin.test.js b/spec/annotations/osd-svg-pin.test.js
deleted file mode 100644
index 37da5a5ef674f0d91e02968778df3525da9b34b9..0000000000000000000000000000000000000000
--- a/spec/annotations/osd-svg-pin.test.js
+++ /dev/null
@@ -1,326 +0,0 @@
-paper.install(window);
-
-describe('Pin', function() {
-  var pinNumber;
-
-  beforeAll(function() {
-    this.canvas = jQuery('<canvas></canvas>');
-    this.canvas.attr('id', 'paperId');
-    jasmine.getFixtures().set(this.canvas);
-    paper.setup(this.canvas.attr('id'));
-    this.pin = new Mirador.Pin();
-    pinNumber = 0;
-  });
-
-  afterAll(function() {
-    delete this.pin;
-  });
-
-  it('should create pin shape', function() {
-    var initialPoint = {
-      'x': 123,
-      'y': 456
-    };
-    var overlay = MockOverlay.getOverlay(paper);
-    var shape = this.pin.createShape(initialPoint, overlay);
-
-    expect(overlay.mode).toBe('create');
-
-    expect(shape.strokeColor.red).toBe(1);
-    expect(shape.strokeColor.green).toBe(0);
-    expect(shape.strokeColor.blue).toBe(0);
-
-    expect(shape.fillColor.red).toBe(1);
-    expect(shape.fillColor.green).toBe(0);
-    expect(shape.fillColor.blue).toBe(0);
-
-    expect(shape.fillColor.alpha).toBe(overlay.fillColorAlpha);
-
-    expect(shape.closed).toBe(true);
-
-    expect(shape.name).toBe(this.pin.idPrefix + '1');
-
-    expect(shape.segments.length).toBe(5);
-
-    expect(shape.segments[0].point.x).toBe(initialPoint.x);
-    expect(shape.segments[0].point.y).toBe(initialPoint.y);
-  });
-
-  describe('Pin Mouse Tool', function() {
-    var overlay;
-
-    beforeEach(function() {
-      overlay = MockOverlay.getOverlay(paper);
-      this.pin = new Mirador.Pin();
-      this.initialPoint = {
-        'x': 987,
-        'y': 654
-      };
-      this.shape = this.pin.createShape(this.initialPoint, overlay);
-    });
-
-    afterEach(function() {
-      delete this.shape;
-      delete this.pin;
-    });
-
-    it('should update selection to true', function() {
-      var initialPoint = {
-        'x': 987,
-        'y': 654
-      };
-
-      var event = TestUtils.getEvent(initialPoint);
-
-      this.pin.updateSelection(true, this.shape, overlay);
-
-      var redColor = {
-        red:1,
-        green: 0,
-        blue:0
-      };
-
-      expect(this.shape.strokeColor.red).toBe(redColor.red);
-      expect(this.shape.strokeColor.green).toBe(redColor.green);
-      expect(this.shape.strokeColor.blue).toBe(redColor.blue);
-      expect(this.shape.data.deleteIcon).not.toBeUndefined;
-    });
-
-    it('should update selection to false', function() {
-      var initialPoint = {
-        'x': 987,
-        'y': 654
-      };
-
-      var event = TestUtils.getEvent(initialPoint);
-
-      this.pin.updateSelection(true, this.shape, overlay);
-
-      this.pin.updateSelection(false, this.shape, overlay);
-
-      var redColor = {
-        red:1,
-        green: 0,
-        blue:0
-      };
-
-      expect(this.shape.strokeColor.red).toBe(redColor.red);
-      expect(this.shape.strokeColor.green).toBe(redColor.green);
-      expect(this.shape.strokeColor.blue).toBe(redColor.blue);
-      expect(this.shape.data.deleteIcon).toBeUndefined;
-    });
-
-    it('should change stroke when hovering pin',function(){
-      var red = {
-        r:1,
-        g:0,
-        b:0
-      };
-      this.pin.onHover(true,this.shape,1,'red');
-
-      expect(this.shape.data.hovered).toBe(true);
-      expect(this.shape.strokeColor.red).toBe(red.r);
-      expect(this.shape.strokeColor.green).toBe(red.g);
-      expect(this.shape.strokeColor.blue).toBe(red.b);
-    });
-
-    it('should change stroke back to original when not hovering pin',function(){
-
-      var oldColor = this.shape.strokeColor;
-      this.pin.onHover(true,this.shape,1,'red');
-
-      expect(this.shape.data.nonHoverStrokeColor.red).toBe(oldColor.red);
-      expect(this.shape.data.nonHoverStrokeColor.green).toBe(oldColor.green);
-      expect(this.shape.data.nonHoverStrokeColor.blue).toBe(oldColor.blue);
-
-      this.pin.onHover(false,this.shape,1);
-      expect(this.shape.data.hovered).toBe(undefined);
-      expect(this.shape.strokeColor.red).toBe(oldColor.red);
-      expect(this.shape.strokeColor.green).toBe(oldColor.green);
-      expect(this.shape.strokeColor.blue).toBe(oldColor.blue);
-    });
-
-    it('should do nothing when no mode is selected', function() {
-      var event = TestUtils.getEvent({
-        'x': 100,
-        'y': 100
-      });
-      overlay.mode = '';
-      var localCenterPoint = {
-        'x': this.initialPoint.x - 1,
-        'y': this.initialPoint.y - 1
-      };
-      var expected = [];
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        var point = {
-          'x': this.shape.segments[idx].point.x,
-          'y': this.shape.segments[idx].point.y
-        };
-        expected.push(point);
-      }
-      this.pin.onMouseDrag(event, overlay);
-
-      expect(this.shape.segments.length).toBe(expected.length);
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        expect(this.shape.segments[idx].point.x).toBeCloseTo(expected[idx].x, 6);
-        expect(this.shape.segments[idx].point.y).toBeCloseTo(expected[idx].y, 6);
-      }
-    });
-
-    it('should translate the whole pin shape', function() {
-      var event = TestUtils.getEvent({
-        'x': 3,
-        'y': -3
-      });
-      this.pin.updateSelection(true,this.shape,overlay);
-      overlay.mode = 'translate';
-      overlay.path = this.shape;
-      var expected = [];
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        var point = {
-          'x': this.shape.segments[idx].point.x + event.delta.x,
-          'y': this.shape.segments[idx].point.y + event.delta.y
-        };
-        expected.push(point);
-      }
-      this.pin.onMouseDrag(event, overlay);
-
-      expect(this.shape.segments.length).toBe(expected.length);
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        expect(this.shape.segments[idx].point.x).toBeCloseTo(expected[idx].x, 6);
-        expect(this.shape.segments[idx].point.y).toBeCloseTo(expected[idx].y, 6);
-      }
-    });
-
-    it('should  not translate the whole pin shape when no pin is selected', function() {
-      var event = TestUtils.getEvent({
-        'x': 3,
-        'y': -3
-      });
-      overlay.mode = 'translate';
-      overlay.path = this.shape;
-      var expected = [];
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        var point = {
-          'x': this.shape.segments[idx].point.x + event.delta.x,
-          'y': this.shape.segments[idx].point.y + event.delta.y
-        };
-        expected.push(point);
-      }
-      overlay.mode = 'translate';
-      this.pin.onMouseDrag(event, overlay);
-
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        expect(this.shape.segments[idx].point.x).toBeCloseTo(expected[idx].x, 6);
-        expect(this.shape.segments[idx].point.y).toBeCloseTo(expected[idx].y, 6);
-      }
-    });
-
-    it('should select pin shape for translate', function() {
-      var event = TestUtils.getEvent({}, {
-        'x': this.initialPoint.x,
-        'y': this.initialPoint.y
-      });
-
-      overlay.mode = '';
-      this.pin.onMouseDown(event, overlay);
-
-      expect(overlay.mode).toBe('translate');
-      expect(overlay.segment).toBeNull();
-      expect(overlay.path).toBe(this.shape);
-
-      this.pin.onMouseDown(event, overlay);
-
-      expect(overlay.mode).toBe('');
-      expect(overlay.segment).toBeNull();
-      expect(overlay.path).toBeNull();
-    });
-
-    it('should create pin',function(){
-
-      var event = TestUtils.getEvent({}, {
-        'x': this.initialPoint.x + 100,
-        'y': this.initialPoint.y + 100
-      });
-
-      overlay.mode = '';
-      this.pin.onMouseDown(event, overlay);
-
-      expect(overlay.mode).toBe('create');
-    });
-    
-    it('should bubble onMouseDown event when the part-of prefix is found', function() {
-      var mockHitResult = {
-        item: {
-          _name: "abcdefg",
-          data: { self: { onMouseDown: jasmine.createSpy('onMouseDown') } }
-        }
-      };
-      spyOn(overlay.paperScope.project, 'hitTest').and.returnValue(mockHitResult);
-      this.pin.partOfPrefix = "cde";
-      this.pin.idPrefix = "ab";
-      var event = TestUtils.getEvent({}, {
-        x: this.initialPoint.x,
-        y: this.initialPoint.y
-      });
-      this.pin.onMouseDown(event, overlay);
-      expect(mockHitResult.item.data.self.onMouseDown).toHaveBeenCalled();
-    });
-
-    it('should change cursor on mouse move',function(){
-      var event = TestUtils.getEvent({}, {
-        'x': this.initialPoint.x,
-        'y': this.initialPoint.y
-      });
-      overlay.viewer.canvas = this.canvas;
-      overlay.hoveredPath = this.shape;
-      this.pin.onMouseMove(event,overlay);
-
-      expect(jQuery(overlay.viewer.canvas).css('cursor')).toBe('move');
-    });
-
-    it('should set cursor to pointer when stoke is hit',function(){
-      var hitResult = {
-        type:'stroke'
-      };
-      overlay.viewer.canvas = this.canvas;
-      this.pin.setCursor(hitResult,overlay);
-      expect(jQuery(overlay.viewer.canvas).css('cursor')).toBe('move');
-    });
-
-    it('should set cursor to pointer when icon is hit',function(){
-      var hitResult = {
-        type:'pixel'
-      };
-      overlay.viewer.canvas = this.canvas;
-      this.pin.setCursor(hitResult,overlay);
-      expect(jQuery(overlay.viewer.canvas).css('cursor')).toBe('pointer');
-    });
-
-    it('should resize the trash can icon',function(){
-      var _this = this;
-      var item = {
-        '_name':{
-          toString:function(){
-            return _this.pin.idPrefix + _this.pin.partOfPrefix + 'delete';
-          }
-        },
-        data:{
-          self:new overlay.annotationUtils.DeleteActionIcon(),
-          parent:{ // should use mock shape
-            data:{
-              rotation:1
-            },
-            contains:jasmine.createSpy().and.returnValue(true)
-          }
-        }
-      };
-
-      this.pin.onResize(item,overlay);
-
-      expect(item.data.self.resize).toHaveBeenCalledWith(24);
-    });
-
-  });
-
-});
diff --git a/spec/annotations/osd-svg-polygon.test.js b/spec/annotations/osd-svg-polygon.test.js
deleted file mode 100644
index aed971fee314ffc64f4a1d9d87f8db378f7258d0..0000000000000000000000000000000000000000
--- a/spec/annotations/osd-svg-polygon.test.js
+++ /dev/null
@@ -1,574 +0,0 @@
-paper.install(window);
-
-describe('Polygon', function() {
-
-  beforeAll(function() {
-    this.canvas = jQuery('<canvas></canvas>');
-    this.canvas.attr('id', 'paperId');
-    jasmine.getFixtures().set(this.canvas);
-    paper.setup(this.canvas.attr('id'));
-    this.polygon = new Mirador.Polygon();
-  });
-  afterAll(function() {
-    delete this.polygon;
-  });
-
-  it('should create polygon shape', function() {
-    var initialPoint = {
-      'x': 123,
-      'y': 456
-    };
-    var overlay = MockOverlay.getOverlay(paper);
-    var shape = this.polygon.createShape(initialPoint, overlay);
-
-    expect(overlay.mode).toBe('create');
-
-    expect(shape.strokeColor.red).toBe(1);
-    expect(shape.strokeColor.green).toBe(0);
-    expect(shape.strokeColor.blue).toBe(0);
-
-    expect(shape.closed).toBe(false);
-
-    expect(shape.name).toBe(this.polygon.idPrefix + '1');
-
-    expect(shape.segments.length).toBe(1);
-
-    expect(shape.segments[0].point.x).toBe(initialPoint.x);
-    expect(shape.segments[0].point.y).toBe(initialPoint.y);
-  });
-
-  describe('Polygon Mouse Tool', function() {
-    var overlay;
-
-    beforeEach(function() {
-      overlay = MockOverlay.getOverlay(paper);
-      this.polygon = new Mirador.Polygon();
-      this.initialPoint = {
-        'x': 987,
-        'y': 654
-      };
-      this.shape = this.polygon.createShape(this.initialPoint, overlay);
-      var point = {
-        'x': this.initialPoint.x + 5,
-        'y': this.initialPoint.y
-      };
-      this.shape.add(point);
-      point = {
-        'x': this.initialPoint.x,
-        'y': this.initialPoint.y + 5
-      };
-      this.shape.add(point);
-    });
-
-    afterEach(function() {
-      delete this.shape;
-      delete this.polygon;
-    });
-
-    it('should update selection', function() {
-      var ellipseTool = new Mirador.Ellipse(); // TODO should use stub
-      var initialPoint = {
-        'x': 987,
-        'y': 654
-      };
-      var ellipse = ellipseTool.createShape(initialPoint, overlay);
-      this.polygon.updateSelection(true, ellipse, overlay);
-
-      expect(this.shape.selected).toBe(false);
-
-      this.polygon.updateSelection(true, this.shape, overlay);
-
-      expect(this.shape.selected).toBe(true);
-    });
-
-    it('should update selection to true', function() {
-      overlay.mode = 'edit';
-      this.polygon.updateSelection(true, this.shape, overlay);
-
-      expect(this.shape.selected).toBe(true);
-      expect(this.shape.data.deleteIcon).not.toBeUndefined();
-    });
-
-    it('should update selection to false', function() {
-      overlay.mode = 'edit'
-      this.polygon.updateSelection(true, this.shape, overlay);
-      this.polygon.updateSelection(false, this.shape, overlay);
-
-      expect(this.shape.selected).toBe(false);
-      expect(this.shape.data.deleteIcon).toBe(null);
-    });
-
-
-    it('should change stroke when hovering polygon',function(){
-      var red = {
-        r:1,
-        g:0,
-        b:0
-      };
-      this.polygon.onHover(true,this.shape,1,'red');
-
-      expect(this.shape.data.hovered).toBe(true);
-      expect(this.shape.strokeColor.red).toBe(red.r);
-      expect(this.shape.strokeColor.green).toBe(red.g);
-      expect(this.shape.strokeColor.blue).toBe(red.b);
-    });
-
-    it('should change stroke back to original when not hovering polygon',function(){
-
-      var oldColor = this.shape.strokeColor;
-      this.polygon.onHover(true,this.shape,1,'red');
-
-      expect(this.shape.data.nonHoverStrokeColor.red).toBe(oldColor.red);
-      expect(this.shape.data.nonHoverStrokeColor.green).toBe(oldColor.green);
-      expect(this.shape.data.nonHoverStrokeColor.blue).toBe(oldColor.blue);
-
-      this.polygon.onHover(false,this.shape,1);
-      expect(this.shape.data.hovered).toBe(undefined);
-      expect(this.shape.strokeColor.red).toBe(oldColor.red);
-      expect(this.shape.strokeColor.green).toBe(oldColor.green);
-      expect(this.shape.strokeColor.blue).toBe(oldColor.blue);
-    });
-
-    it('should do nothing', function() {
-      var event = TestUtils.getEvent({
-        'x': 100,
-        'y': 100
-      });
-      overlay = MockOverlay.getOverlay(paper);
-      var localCenterPoint = {
-        'x': this.initialPoint.x - 1,
-        'y': this.initialPoint.y - 1
-      };
-      var expected = [];
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        var point = {
-          'x': this.shape.segments[idx].point.x,
-          'y': this.shape.segments[idx].point.y
-        };
-        expected.push(point);
-      }
-      this.polygon.onMouseDrag(event, overlay);
-
-      expect(this.shape.segments.length).toBe(expected.length);
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        expect(this.shape.segments[idx].point.x).toBeCloseTo(expected[idx].x, 6);
-        expect(this.shape.segments[idx].point.y).toBeCloseTo(expected[idx].y, 6);
-      }
-
-      overlay = MockOverlay.getOverlay(paper);
-      overlay.mode = 'edit';
-      this.polygon.onMouseDrag(event, overlay);
-
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        expect(this.shape.segments[idx].point.x).toBeCloseTo(expected[idx].x, 6);
-        expect(this.shape.segments[idx].point.y).toBeCloseTo(expected[idx].y, 6);
-      }
-    });
-
-    it('should edit the whole polygon shape', function() {
-      var event = TestUtils.getEvent({
-        'x': 3,
-        'y': -3
-      });
-      overlay.mode = 'edit';
-      this.polygon.updateSelection(true,this.shape,overlay);
-      overlay.mode = 'translate';
-      overlay.path = this.shape;
-
-      var expected = [];
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        var point = {
-          'x': this.shape.segments[idx].point.x + event.delta.x,
-          'y': this.shape.segments[idx].point.y + event.delta.y
-        };
-        expected.push(point);
-      }
-      this.polygon.onMouseDrag(event, overlay);
-
-      expect(this.shape.segments.length).toBe(expected.length);
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        expect(this.shape.segments[idx].point.x).toBeCloseTo(expected[idx].x, 6);
-        expect(this.shape.segments[idx].point.y).toBeCloseTo(expected[idx].y, 6);
-      }
-
-      var selectedPointIndex = 1;
-      overlay = MockOverlay.getOverlay(paper);
-      overlay.mode = 'deform';
-      overlay.path = this.shape;
-      overlay.segment = this.shape.segments[selectedPointIndex];
-
-      expected = [];
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        if (idx == selectedPointIndex) {
-          var point = {
-            'x': this.shape.segments[idx].point.x + event.delta.x,
-            'y': this.shape.segments[idx].point.y + event.delta.y
-          };
-          expected.push(point);
-        } else {
-          var point = {
-            'x': this.shape.segments[idx].point.x,
-            'y': this.shape.segments[idx].point.y
-          };
-          expected.push(point);
-        }
-      }
-      this.polygon.onMouseDrag(event, overlay);
-
-      expect(this.shape.segments.length).toBe(expected.length);
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        expect(this.shape.segments[idx].point.x).toBeCloseTo(expected[idx].x, 6);
-        expect(this.shape.segments[idx].point.y).toBeCloseTo(expected[idx].y, 6);
-      }
-    });
-
-    it('should finish generation of polygon shape', function() {
-      var event = TestUtils.getEvent({
-        'x': 100,
-        'y': 100
-      });
-      overlay.mode = 'create';
-      var expected = [];
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        var point = {
-          'x': this.shape.segments[idx].point.x,
-          'y': this.shape.segments[idx].point.y
-        };
-        expected.push(point);
-      }
-      this.polygon.onDoubleClick(event, overlay);
-
-      expect(this.shape.segments.length).toBe(expected.length);
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        expect(this.shape.segments[idx].point.x).toBeCloseTo(expected[idx].x, 6);
-        expect(this.shape.segments[idx].point.y).toBeCloseTo(expected[idx].y, 6);
-      }
-
-      overlay = MockOverlay.getOverlay(paper);
-      overlay.path = this.shape;
-      overlay.mode = 'create';
-      this.polygon.onDoubleClick(event, overlay);
-
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        expect(this.shape.segments[idx].point.x).toBeCloseTo(expected[idx].x, 6);
-        expect(this.shape.segments[idx].point.y).toBeCloseTo(expected[idx].y, 6);
-      }
-
-      event = TestUtils.getEvent({
-        'x': this.initialPoint.x,
-        'y': this.initialPoint.y
-      });
-      overlay = MockOverlay.getOverlay(paper);
-      overlay.path = this.shape;
-      overlay.hitOptions.stroke = false;
-      overlay.hitOptions.segments = false;
-      overlay.hitOptions.tolerance = 5;
-      overlay.mode = 'create';
-
-      expected.push(this.initialPoint);
-      this.shape.add(this.initialPoint);
-      this.polygon.onDoubleClick(event, overlay);
-
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        expect(this.shape.segments[idx].point.x).toBeCloseTo(expected[idx].x, 6);
-        expect(this.shape.segments[idx].point.y).toBeCloseTo(expected[idx].y, 6);
-      }
-
-      expect(this.shape.closed).toBe(true);
-
-      expect(this.shape.fillColor.red).toBe(1);
-      expect(this.shape.fillColor.green).toBe(0);
-      expect(this.shape.fillColor.blue).toBe(0);
-
-      expect(this.shape.fillColor.alpha).toBe(overlay.fillColorAlpha);
-    });
-
-    it('should change cursor on mouse move',function(){
-      var event = TestUtils.getEvent({}, {
-        'x': this.initialPoint.x,
-        'y': this.initialPoint.y
-      });
-      overlay.viewer.canvas = this.canvas;
-      overlay.hoveredPath = this.shape;
-      this.polygon.onMouseMove(event,overlay);
-
-      expect(jQuery(overlay.viewer.canvas).css('cursor')).toBe('pointer');
-    });
-    
-    it('should set cursor to pointer on handle-in or handle-out', function() {
-      var _this = this;
-      jQuery.each(['handle-in', 'handle-out'], function(k, v) {
-        var hitResult = { type: v };
-        overlay.viewer.canvas = _this.canvas;
-        _this.polygon.setCursor(hitResult, overlay);
-        expect(jQuery(overlay.viewer.canvas).css('cursor')).toBe('pointer');
-      });
-    });
-
-    it('should set cursor to pointer when stoke is hit',function(){
-      var hitResult = {
-        type:'stroke'
-      };
-      overlay.viewer.canvas = this.canvas;
-      this.polygon.setCursor(hitResult,overlay);
-      expect(jQuery(overlay.viewer.canvas).css('cursor')).toBe('move');
-    });
-
-    it('should set cursor to pointer when icon is hit',function(){
-      var hitResult = {
-        type:'pixel'
-      };
-      overlay.viewer.canvas = this.canvas;
-      this.polygon.setCursor(hitResult,overlay);
-      expect(jQuery(overlay.viewer.canvas).css('cursor')).toBe('pointer');
-    });
-
-    it('should select polygon shape', function() {
-      var event = TestUtils.getEvent({}, {
-        'x': this.initialPoint.x - 100,
-        'y': this.initialPoint.y - 100
-      });
-      overlay.mode = '';
-      this.polygon.updateSelection(true,this.shape,overlay);
-      this.polygon.onMouseDown(event, overlay);
-
-      expect(overlay.mode).toBe('create');
-      expect(overlay.segment).toBeNull();
-      expect(overlay.path).not.toBe(this.shape);
-      event = TestUtils.getEvent({}, {
-        'x': this.initialPoint.x - 100,
-        'y': this.initialPoint.y - 100
-      }, {
-        'shift': null
-      });
-
-      overlay.mode = 'create';
-      overlay.path = this.shape;
-
-      var expected = [];
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        var point = {
-          'x': this.shape.segments[idx].point.x,
-          'y': this.shape.segments[idx].point.y
-        };
-        expected.push(point);
-      }
-      expected.push(event.point);
-      this.polygon.onMouseDown(event, overlay);
-
-      expect(this.shape.segments.length).toBe(expected.length);
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        expect(this.shape.segments[idx].point.x).toBeCloseTo(expected[idx].x, 6);
-        expect(this.shape.segments[idx].point.y).toBeCloseTo(expected[idx].y, 6);
-      }
-
-      overlay = MockOverlay.getOverlay(paper);
-      overlay.mode  = 'edit';
-
-      this.polygon.onMouseDown(event, overlay);
-
-      expect(overlay.segment.point.x).toBe(event.point.x);
-      expect(overlay.segment.point.y).toBe(event.point.y);
-
-      expect(overlay.path).not.toBe(this.shape);
-      expect(document.body.style.cursor).toBe('move');
-
-      overlay = MockOverlay.getOverlay(paper);
-      overlay.mode = 'translate';
-      overlay.path = this.shape;
-      this.polygon.onMouseDown(event, overlay);
-
-      event = TestUtils.getEvent({}, {
-        'x': this.initialPoint.x + 5,
-        'y': this.initialPoint.y
-      }, {
-        'shift': 'selected'
-      });
-
-      overlay = MockOverlay.getOverlay(paper);
-      overlay.mode = '';
-
-      expected = [];
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        var point = {
-          'x': this.shape.segments[idx].point.x,
-          'y': this.shape.segments[idx].point.y
-        };
-        if (point.x != event.point.x || point.y != event.point.y) {
-          expected.push(point);
-        }
-      }
-      this.polygon.onMouseDown(event, overlay);
-
-      expect(this.shape.segments.length).toBe(expected.length);
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        expect(this.shape.segments[idx].point.x).toBeCloseTo(expected[idx].x, 6);
-        expect(this.shape.segments[idx].point.y).toBeCloseTo(expected[idx].y, 6);
-      }
-
-      event = TestUtils.getEvent({}, {
-        'x': this.initialPoint.x + 3,
-        'y': this.initialPoint.y
-      }, {
-        'shift': 'selected'
-      });
-      overlay = MockOverlay.getOverlay(paper);
-      expected = [];
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        var point = {
-          'x': this.shape.segments[idx].point.x,
-          'y': this.shape.segments[idx].point.y
-        };
-        expected.push(point);
-      }
-      this.polygon.onMouseDown(event, overlay);
-
-      expect(this.shape.segments.length).toBe(expected.length);
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        expect(this.shape.segments[idx].point.x).toBeCloseTo(expected[idx].x, 6);
-        expect(this.shape.segments[idx].point.y).toBeCloseTo(expected[idx].y, 6);
-      }
-
-      event = TestUtils.getEvent({}, {
-        'x': this.initialPoint.x + 3,
-        'y': this.initialPoint.y
-      }, {
-        'shift': null
-      });
-      overlay = MockOverlay.getOverlay(paper);
-      overlay.edit = 'edit';
-      overlay.path = this.shape;
-
-      expected = [];
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        var point = {
-          'x': this.shape.segments[idx].point.x,
-          'y': this.shape.segments[idx].point.y
-        };
-        expected.push(point);
-      }
-      this.polygon.onMouseDown(event, overlay);
-
-      expect(this.shape.segments.length).toBe(expected.length);
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        expect(this.shape.segments[idx].point.x).toBeCloseTo(expected[idx].x, 6);
-        expect(this.shape.segments[idx].point.y).toBeCloseTo(expected[idx].y, 6);
-      }
-
-      event = TestUtils.getEvent({}, {
-        'x': this.initialPoint.x + 3,
-        'y': this.initialPoint.y
-      }, {
-        'shift': null
-      });
-
-      overlay = MockOverlay.getOverlay(paper);
-      overlay.mode = 'edit';
-      expected = [];
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        var point = {
-          'x': this.shape.segments[idx].point.x,
-          'y': this.shape.segments[idx].point.y
-        };
-        expected.push(point);
-      }
-      this.polygon.onMouseDown(event, overlay);
-
-      expect(this.shape.segments.length).toBe(expected.length);
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        expect(this.shape.segments[idx].point.x).toBeCloseTo(expected[idx].x, 6);
-        expect(this.shape.segments[idx].point.y).toBeCloseTo(expected[idx].y, 6);
-      }
-
-      event = TestUtils.getEvent({}, {
-        'x': this.initialPoint.x + 100,
-        'y': this.initialPoint.y
-      }, {
-        'shift': null
-      });
-      expected = [];
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        var point = {
-          'x': this.shape.segments[idx].point.x,
-          'y': this.shape.segments[idx].point.y
-        };
-        expected.push(point);
-      }
-      this.polygon.onMouseDown(event, overlay);
-
-      expect(this.shape.segments.length).toBe(expected.length);
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        expect(this.shape.segments[idx].point.x).toBeCloseTo(expected[idx].x, 6);
-        expect(this.shape.segments[idx].point.y).toBeCloseTo(expected[idx].y, 6);
-      }
-
-      event = TestUtils.getEvent({}, {
-        'x': this.initialPoint.x,
-        'y': this.initialPoint.y
-      }, {
-        'shift': null
-      });
-      overlay.mode = 'edit';
-      overlay.hitOptions.stroke = false;
-      overlay.hitOptions.segments = false;
-      overlay.hitOptions.tolerance = 5;
-      this.shape.closed = true;
-      this.shape.fillColor = '#0000ff';
-      expected = [];
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        var point = {
-          'x': this.shape.segments[idx].point.x,
-          'y': this.shape.segments[idx].point.y
-        };
-        expected.push(point);
-      }
-      this.polygon.onMouseDown(event, overlay);
-
-      expect(this.shape.segments.length).toBe(expected.length);
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        expect(this.shape.segments[idx].point.x).toBeCloseTo(expected[idx].x, 6);
-        expect(this.shape.segments[idx].point.y).toBeCloseTo(expected[idx].y, 6);
-      }
-    });
-    
-    it('should select prefixed shapes', function() {
-      var event = TestUtils.getEvent();
-      spyOn(overlay.paperScope.project, 'hitTest').and.returnValue({
-        item: this.shape
-      });
-      this.shape._name = "12-ABCD-EFG";
-      this.shape.data.self = jasmine.createSpyObj('self', ['onMouseDown']);
-      this.polygon.idPrefix = "ABCD";
-      this.polygon.partOfPrefix = "12";
-      this.polygon.onMouseDown(event, overlay);
-      expect(this.shape.data.self.onMouseDown).toHaveBeenCalled();
-    });
-
-    it('should resize the trash can icon when resized',function(){
-      var _this = this;
-      var item = {
-        '_name':{
-          toString:function(){
-            return _this.polygon.idPrefix + _this.polygon.partOfPrefix + 'delete';
-          }
-        },
-        data:{
-          self:new overlay.annotationUtils.DeleteActionIcon(),
-          parent:{ // should use mock shape
-            data:{
-              rotation:1
-            },
-            contains:jasmine.createSpy().and.returnValue(true)
-          }
-        }
-      };
-
-      this.polygon.onResize(item,overlay);
-
-      expect(item.data.self.resize).toHaveBeenCalledWith(24);
-    });
-
-
-  });
-
-});
diff --git a/spec/annotations/osd-svg-rectangle.test.js b/spec/annotations/osd-svg-rectangle.test.js
deleted file mode 100644
index 9d612e3a2f1365169fd572800e7b3be36c79a920..0000000000000000000000000000000000000000
--- a/spec/annotations/osd-svg-rectangle.test.js
+++ /dev/null
@@ -1,604 +0,0 @@
-paper.install(window);
-
-describe('Rectangle', function() {
-
-  beforeAll(function() {
-    this.canvas = jQuery('<canvas></canvas>');
-    this.canvas.attr('id', 'paperId');
-    jasmine.getFixtures().set(this.canvas);
-    paper.setup(this.canvas.attr('id'));
-    this.rectangle = new Mirador.Rectangle();
-  });
-  afterAll(function() {
-    delete this.rectangle;
-  });
-
-  it('should create rectangular shape', function() {
-    var initialPoint = {
-      'x': 123,
-      'y': 456
-    };
-    var overlay = MockOverlay.getOverlay(paper);
-
-    var shape = this.rectangle.createShape(initialPoint, overlay);
-
-    expect(overlay.mode).toBe('create');
-
-    expect(overlay.segment).toBe(shape.segments[5]);
-
-    expect(shape.strokeColor.red).toBe(1);
-    expect(shape.strokeColor.green).toBe(0);
-    expect(shape.strokeColor.blue).toBe(0);
-
-    expect(shape.fillColor.red).toBe(1);
-    expect(shape.fillColor.green).toBe(0);
-    expect(shape.fillColor.blue).toBe(0);
-
-    expect(shape.fillColor.alpha).toBe(overlay.fillColorAlpha);
-
-    expect(shape.closed).toBe(true);
-
-    expect(shape.data.rotation).toBe(0);
-
-    expect(shape.selected).toBe(true);
-
-    expect(shape.name).toBe(this.rectangle.idPrefix + '1');
-
-    expect(shape.segments.length).toBe(9);
-
-    expect(shape.segments[0].point.x).toBe(initialPoint.x - 2);
-    expect(shape.segments[0].point.y).toBe(initialPoint.y - 2);
-
-    expect(shape.segments[1].point.x).toBe(initialPoint.x - 1);
-    expect(shape.segments[1].point.y).toBe(initialPoint.y - 2);
-
-    expect(shape.segments[2].point.x).toBe(initialPoint.x - 1);
-    expect(shape.segments[2].point.y).toBe(initialPoint.y - 2);
-
-    expect(shape.segments[3].point.x).toBe(initialPoint.x);
-    expect(shape.segments[3].point.y).toBe(initialPoint.y - 2);
-
-    expect(shape.segments[4].point.x).toBe(initialPoint.x);
-    expect(shape.segments[4].point.y).toBe(initialPoint.y - 1);
-
-    expect(shape.segments[5].point.x).toBe(initialPoint.x);
-    expect(shape.segments[5].point.y).toBe(initialPoint.y);
-
-    expect(shape.segments[6].point.x).toBe(initialPoint.x - 1);
-    expect(shape.segments[6].point.y).toBe(initialPoint.y);
-
-    expect(shape.segments[7].point.x).toBe(initialPoint.x - 2);
-    expect(shape.segments[7].point.y).toBe(initialPoint.y);
-
-    expect(shape.segments[8].point.x).toBe(initialPoint.x - 2);
-    expect(shape.segments[8].point.y).toBe(initialPoint.y - 1);
-  });
-
-  describe('Rectangle Mouse Tool', function() {
-    var overlay;
-
-    beforeEach(function() {
-      overlay = MockOverlay.getOverlay(paper);
-      this.rectangle = new Mirador.Rectangle();
-      this.initialPoint = {
-        'x': 987,
-        'y': 654
-      };
-      this.shape = this.rectangle.createShape(this.initialPoint, overlay);
-    });
-
-    afterEach(function() {
-      delete this.shape;
-      delete this.rectangle;
-    });
-
-    it('should update selection to false', function() {
-      // when created the shape is selected by default
-      expect(this.shape.selected).toBe(true);
-
-      this.rectangle.updateSelection(false, this.shape, overlay);
-
-      expect(this.shape.selected).toBe(false);
-
-      this.rectangle.updateSelection(true, this.shape, overlay);
-
-      expect(this.shape.selected).toBe(true);
-    });
-
-    it('should change stroke when hovering rectangle',function(){
-      var red = {
-        r:1,
-        g:0,
-        b:0
-      };
-      this.rectangle.onHover(true,this.shape,1,'red');
-
-      expect(this.shape.data.hovered).toBe(true);
-      expect(this.shape.strokeColor.red).toBe(red.r);
-      expect(this.shape.strokeColor.green).toBe(red.g);
-      expect(this.shape.strokeColor.blue).toBe(red.b);
-    });
-
-    it('should change stroke back to original when not hovering rectangle',function(){
-      var oldColor = this.shape.strokeColor;
-
-      this.rectangle.onHover(true,this.shape,1,'red');
-      expect(this.shape.data.nonHoverStrokeColor.red).toBe(oldColor.red);
-      expect(this.shape.data.nonHoverStrokeColor.green).toBe(oldColor.green);
-      expect(this.shape.data.nonHoverStrokeColor.blue).toBe(oldColor.blue);
-
-      this.rectangle.onHover(false,this.shape,1);
-      expect(this.shape.data.hovered).toBe(undefined);
-      expect(this.shape.strokeColor.red).toBe(oldColor.red);
-      expect(this.shape.strokeColor.green).toBe(oldColor.green);
-      expect(this.shape.strokeColor.blue).toBe(oldColor.blue);
-    });
-
-    it('should do nothing on mouse drag when there is not set mode', function () {
-      var event = TestUtils.getEvent({
-        'x': 100,
-        'y': 100
-      });
-      var expected = [];
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        var point = {
-          'x': this.shape.segments[idx].point.x,
-          'y': this.shape.segments[idx].point.y
-        };
-        expected.push(point);
-      }
-
-      overlay.mode = '';
-
-      this.rectangle.onMouseDrag(event, overlay);
-
-      expect(this.shape.segments.length).toBe(expected.length);
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        expect(this.shape.segments[idx].point.x).toBeCloseTo(expected[idx].x, 6);
-        expect(this.shape.segments[idx].point.y).toBeCloseTo(expected[idx].y, 6);
-      }
-    });
-
-    it('should translate the whole rectangular shape', function() {
-      var event = TestUtils.getEvent({
-        'x': 3,
-        'y': -3
-      });
-
-      overlay.mode = 'translate';
-      overlay.path = this.shape;
-
-      this.rectangle.onMouseDrag(event, overlay);
-
-      expect(this.shape.segments[0].point.x - event.delta.x).toBe(this.initialPoint.x - 2);
-      expect(this.shape.segments[0].point.y - event.delta.y).toBe(this.initialPoint.y - 2);
-
-      expect(this.shape.segments[1].point.x - event.delta.x).toBe(this.initialPoint.x - 1);
-      expect(this.shape.segments[1].point.y - event.delta.y).toBe(this.initialPoint.y - 2);
-
-      expect(this.shape.segments[2].point.x - event.delta.x).toBe(this.initialPoint.x - 1);
-      expect(this.shape.segments[2].point.y - event.delta.y).toBe(this.initialPoint.y - 2);
-
-      expect(this.shape.segments[3].point.x - event.delta.x).toBe(this.initialPoint.x);
-      expect(this.shape.segments[3].point.y - event.delta.y).toBe(this.initialPoint.y - 2);
-
-      expect(this.shape.segments[4].point.x - event.delta.x).toBe(this.initialPoint.x);
-      expect(this.shape.segments[4].point.y - event.delta.y).toBe(this.initialPoint.y - 1);
-
-      expect(this.shape.segments[5].point.x - event.delta.x).toBe(this.initialPoint.x);
-      expect(this.shape.segments[5].point.y - event.delta.y).toBe(this.initialPoint.y);
-
-      expect(this.shape.segments[6].point.x - event.delta.x).toBe(this.initialPoint.x - 1);
-      expect(this.shape.segments[6].point.y - event.delta.y).toBe(this.initialPoint.y);
-
-      expect(this.shape.segments[7].point.x - event.delta.x).toBe(this.initialPoint.x - 2);
-      expect(this.shape.segments[7].point.y - event.delta.y).toBe(this.initialPoint.y);
-
-      expect(this.shape.segments[8].point.x - event.delta.x).toBe(this.initialPoint.x - 2);
-      expect(this.shape.segments[8].point.y - event.delta.y).toBe(this.initialPoint.y - 1);
-    });
-
-    it('should resize the whole rectangular shape when resized from the bottom right corner and then from the top left corner', function() {
-      var event = TestUtils.getEvent({
-        'x': 10,
-        'y': 100
-      });
-      overlay.mode = 'deform';
-      overlay.path = this.shape;
-      overlay.segment = this.shape.segments[5];
-      this.rectangle.onMouseDrag(event, overlay);
-
-      expect(this.shape.segments[0].point.x).toBe(this.initialPoint.x - 2);
-      expect(this.shape.segments[0].point.y).toBe(this.initialPoint.y - 2);
-
-      expect(this.shape.segments[1].point.x - event.delta.x / 2).toBe(this.initialPoint.x - 1);
-      expect(this.shape.segments[1].point.y).toBe(this.initialPoint.y - 2);
-
-      expect(this.shape.segments[2].point.x - event.delta.x / 2).toBe(this.initialPoint.x - 1);
-      expect(this.shape.segments[2].point.y).toBe(this.initialPoint.y - 2);
-
-      expect(this.shape.segments[3].point.x - event.delta.x).toBe(this.initialPoint.x);
-      expect(this.shape.segments[3].point.y).toBe(this.initialPoint.y - 2);
-
-      expect(this.shape.segments[4].point.x - event.delta.x).toBe(this.initialPoint.x);
-      expect(this.shape.segments[4].point.y - event.delta.y / 2).toBe(this.initialPoint.y - 1);
-
-      expect(this.shape.segments[5].point.x - event.delta.x).toBe(this.initialPoint.x);
-      expect(this.shape.segments[5].point.y - event.delta.y).toBe(this.initialPoint.y);
-
-      expect(this.shape.segments[6].point.x - event.delta.x / 2).toBe(this.initialPoint.x - 1);
-      expect(this.shape.segments[6].point.y - event.delta.y).toBe(this.initialPoint.y);
-
-      expect(this.shape.segments[7].point.x).toBe(this.initialPoint.x - 2);
-      expect(this.shape.segments[7].point.y - event.delta.y).toBe(this.initialPoint.y);
-
-      expect(this.shape.segments[8].point.x).toBe(this.initialPoint.x - 2);
-      expect(this.shape.segments[8].point.y - event.delta.y / 2).toBe(this.initialPoint.y - 1);
-
-      var event2 = TestUtils.getEvent({
-        'x': 100,
-        'y': 10
-      });
-      overlay.segment = this.shape.segments[0];
-      this.rectangle.onMouseDrag(event2, overlay);
-
-      expect(this.shape.segments[0].point.x - event2.delta.x).toBe(this.initialPoint.x - 2);
-      expect(this.shape.segments[0].point.y - event2.delta.y).toBe(this.initialPoint.y - 2);
-
-      expect(this.shape.segments[1].point.x - event.delta.x / 2 - event2.delta.x / 2).toBe(this.initialPoint.x - 1);
-      expect(this.shape.segments[1].point.y - event2.delta.y).toBe(this.initialPoint.y - 2);
-
-      expect(this.shape.segments[2].point.x - event.delta.x / 2 - event2.delta.x / 2).toBe(this.initialPoint.x - 1);
-      expect(this.shape.segments[2].point.y - event2.delta.y).toBe(this.initialPoint.y - 2);
-
-      expect(this.shape.segments[3].point.x - event.delta.x).toBe(this.initialPoint.x);
-      expect(this.shape.segments[3].point.y - event2.delta.y).toBe(this.initialPoint.y - 2);
-
-      expect(this.shape.segments[4].point.x - event.delta.x).toBe(this.initialPoint.x);
-      expect(this.shape.segments[4].point.y - event.delta.y / 2 - event2.delta.y / 2).toBe(this.initialPoint.y - 1);
-
-      expect(this.shape.segments[5].point.x - event.delta.x).toBe(this.initialPoint.x);
-      expect(this.shape.segments[5].point.y - event.delta.y).toBe(this.initialPoint.y);
-
-      expect(this.shape.segments[6].point.x - event.delta.x / 2 - event2.delta.x / 2).toBe(this.initialPoint.x - 1);
-      expect(this.shape.segments[6].point.y - event.delta.y).toBe(this.initialPoint.y);
-
-      expect(this.shape.segments[7].point.x - event2.delta.x).toBe(this.initialPoint.x - 2);
-      expect(this.shape.segments[7].point.y - event.delta.y).toBe(this.initialPoint.y);
-
-      expect(this.shape.segments[8].point.x - event2.delta.x).toBe(this.initialPoint.x - 2);
-      expect(this.shape.segments[8].point.y - event.delta.y / 2 - event2.delta.y / 2).toBe(this.initialPoint.y - 1);
-    });
-
-
-    it('should resize the whole rectangular shape from top middle corner and then left middle', function() {
-      var event = TestUtils.getEvent({
-        'x': 10,
-        'y': 100
-      });
-      overlay.mode = 'deform';
-      overlay.path = this.shape;
-      overlay.segment = this.shape.segments[2];
-
-      this.rectangle.onMouseDrag(event, overlay);
-
-      expect(this.shape.segments[0].point.x).toBe(this.initialPoint.x - 2);
-      expect(this.shape.segments[0].point.y - event.delta.y).toBe(this.initialPoint.y - 2);
-
-      expect(this.shape.segments[1].point.x).toBe(this.initialPoint.x - 1);
-      expect(this.shape.segments[1].point.y - event.delta.y).toBe(this.initialPoint.y - 2);
-
-      expect(this.shape.segments[2].point.x).toBe(this.initialPoint.x - 1);
-      expect(this.shape.segments[2].point.y - event.delta.y).toBe(this.initialPoint.y - 2);
-
-      expect(this.shape.segments[3].point.x).toBe(this.initialPoint.x);
-      expect(this.shape.segments[3].point.y - event.delta.y).toBe(this.initialPoint.y - 2);
-
-      expect(this.shape.segments[4].point.x).toBe(this.initialPoint.x);
-      expect(this.shape.segments[4].point.y - event.delta.y / 2).toBe(this.initialPoint.y - 1);
-
-      expect(this.shape.segments[5].point.x).toBe(this.initialPoint.x);
-      expect(this.shape.segments[5].point.y).toBe(this.initialPoint.y);
-
-      expect(this.shape.segments[6].point.x).toBe(this.initialPoint.x - 1);
-      expect(this.shape.segments[6].point.y).toBe(this.initialPoint.y);
-
-      expect(this.shape.segments[7].point.x).toBe(this.initialPoint.x - 2);
-      expect(this.shape.segments[7].point.y).toBe(this.initialPoint.y);
-
-      expect(this.shape.segments[8].point.x).toBe(this.initialPoint.x - 2);
-      expect(this.shape.segments[8].point.y - event.delta.y / 2).toBe(this.initialPoint.y - 1);
-
-      var event2 = TestUtils.getEvent({
-        'x': 100,
-        'y': 10
-      });
-      overlay .segment = this.shape.segments[4];
-      this.rectangle.onMouseDrag(event2, overlay);
-
-      expect(this.shape.segments[0].point.x).toBe(this.initialPoint.x - 2);
-      expect(this.shape.segments[0].point.y - event.delta.y).toBe(this.initialPoint.y - 2);
-
-      expect(this.shape.segments[1].point.x - event2.delta.x / 2).toBe(this.initialPoint.x - 1);
-      expect(this.shape.segments[1].point.y - event.delta.y).toBe(this.initialPoint.y - 2);
-
-      expect(this.shape.segments[2].point.x - event2.delta.x / 2).toBe(this.initialPoint.x - 1);
-      expect(this.shape.segments[2].point.y - event.delta.y).toBe(this.initialPoint.y - 2);
-
-      expect(this.shape.segments[3].point.x - event2.delta.x).toBe(this.initialPoint.x);
-      expect(this.shape.segments[3].point.y - event.delta.y).toBe(this.initialPoint.y - 2);
-
-      expect(this.shape.segments[4].point.x - event2.delta.x).toBe(this.initialPoint.x);
-      expect(this.shape.segments[4].point.y - event.delta.y / 2).toBe(this.initialPoint.y - 1);
-
-      expect(this.shape.segments[5].point.x - event2.delta.x).toBe(this.initialPoint.x);
-      expect(this.shape.segments[5].point.y).toBe(this.initialPoint.y);
-
-      expect(this.shape.segments[6].point.x - event2.delta.x / 2).toBe(this.initialPoint.x - 1);
-      expect(this.shape.segments[6].point.y).toBe(this.initialPoint.y);
-
-      expect(this.shape.segments[7].point.x).toBe(this.initialPoint.x - 2);
-      expect(this.shape.segments[7].point.y).toBe(this.initialPoint.y);
-
-      expect(this.shape.segments[8].point.x).toBe(this.initialPoint.x - 2);
-      expect(this.shape.segments[8].point.y - event.delta.y / 2).toBe(this.initialPoint.y - 1);
-    });
-
-    it('should rotate the whole rectangular shape', function() {
-      var size = {
-        'x': 1,
-        'y': 1
-      };
-      var scale = 2;
-      var rotationAngle = -90;
-      // -90 degrees rotation + scale
-      var event = TestUtils.getEvent({
-        'x': -size.x,
-        'y': size.y
-      }, {
-        'x': this.shape.position.x,
-        'y': this.shape.position.y - size.y
-      });
-      var localCenterPoint = {
-        'x': this.shape.position.x,
-        'y': this.shape.position.y
-      };
-
-      overlay.mode = 'rotate';
-      overlay.path = this.shape;
-
-      var expected = [];
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        var point = this.shape.segments[idx].point;
-        point = TestUtils.rotatePoint(point, localCenterPoint, rotationAngle);
-        expected.push(point);
-      }
-      this.rectangle.onMouseDrag(event, overlay);
-
-      expect(this.shape.segments.length).toBe(expected.length);
-      for (var idx = 0; idx < this.shape.segments.length; idx++) {
-        expect(this.shape.segments[idx].point.x).toBeCloseTo(expected[idx].x, 6);
-        expect(this.shape.segments[idx].point.y).toBeCloseTo(expected[idx].y, 6);
-      }
-    });
-
-    it('should create rectangular shape', function() {
-      var event = TestUtils.getEvent({}, {
-        'x': this.initialPoint.x + 1000,
-        'y': this.initialPoint.y + 1000
-      });
-
-      this.rectangle.onMouseDown(event, overlay);
-
-      expect(overlay.path).not.toBeNull();
-      expect(overlay.onDrawFinish.calls.count()).toEqual(0);
-
-      this.rectangle.onMouseUp(event, overlay);
-
-      expect(overlay.onDrawFinish.calls.count()).toEqual(1);
-
-      overlay.mode = '';
-      overlay.onDrawFinish.calls.reset();
-
-      this.rectangle.onMouseUp(event, overlay);
-
-      expect(overlay.onDrawFinish.calls.count()).toEqual(0);
-    });
-
-    it('should select point[5] deform rectangular', function() {
-
-      var event = TestUtils.getEvent({}, {
-        'x': this.initialPoint.x,
-        'y': this.initialPoint.y
-      });
-      overlay.mode = '';
-
-      this.rectangle.onMouseDown(event, overlay);
-
-      expect(overlay.mode).toBe('deform');
-      expect(overlay.segment).toBe(this.shape.segments[5]);
-      expect(overlay.path).toBe(this.shape);
-    });
-
-    it('should select point[4] to deform rectangular', function() {
-
-     var event = TestUtils.getEvent({}, {
-        'x': this.initialPoint.x,
-        'y': this.initialPoint.y - 1
-      });
-      overlay.mode = '';
-
-      this.rectangle.onMouseDown(event, overlay);
-
-      expect(overlay.mode).toBe('deform');
-      expect(overlay.segment).toBe(this.shape.segments[4]);
-      expect(overlay.path).toBe(this.shape);
-    });
-
-    it('should select point[3] to deform rectangular', function() {
-
-      var event = TestUtils.getEvent({}, {
-        'x': this.initialPoint.x,
-        'y': this.initialPoint.y - 2
-      });
-
-      overlay.mode = '';
-
-      this.rectangle.onMouseDown(event, overlay);
-
-      expect(overlay.mode).toBe('deform');
-      expect(overlay.segment).toBe(this.shape.segments[3]);
-      expect(overlay.path).toBe(this.shape);
-    });
-
-    it('should select point[1] to deform rectangular', function() {
-
-      var event = TestUtils.getEvent({}, {
-        'x': this.initialPoint.x - 1,
-        'y': this.initialPoint.y - 2
-      });
-      overlay.mode = '';
-      this.rectangle.onMouseDown(event, overlay);
-
-      expect(overlay.mode).toBe('deform');
-      expect(overlay.segment).toBe(this.shape.segments[1]);
-      expect(overlay.path).toBe(this.shape);
-    });
-
-    it('should select point[0] to deform rectangular', function() {
-
-     var event = TestUtils.getEvent({}, {
-        'x': this.initialPoint.x - 2,
-        'y': this.initialPoint.y - 2
-      });
-      overlay.mode = '';
-      this.rectangle.onMouseDown(event, overlay);
-
-      expect(overlay.mode).toBe('deform');
-      expect(overlay.segment).toBe(this.shape.segments[0]);
-      expect(overlay.path).toBe(this.shape);
-
-    });
-
-    it('should select point[6] to deform rectangular', function() {
-
-     var event = TestUtils.getEvent({}, {
-        'x': this.initialPoint.x - 1,
-        'y': this.initialPoint.y
-      });
-      overlay.mode  = '';
-      this.rectangle.onMouseDown(event, overlay);
-
-      expect(overlay.mode).toBe('deform');
-      expect(overlay.segment).toBe(this.shape.segments[6]);
-      expect(overlay.path).toBe(this.shape);
-
-    });
-
-    it('should select point[7] to deform rectangular', function() {
-
-      var event = TestUtils.getEvent({}, {
-        'x': this.initialPoint.x - 2,
-        'y': this.initialPoint.y
-      });
-      overlay.mode = '';
-      this.rectangle.onMouseDown(event, overlay);
-
-      expect(overlay.mode).toBe('deform');
-      expect(overlay.segment).toBe(this.shape.segments[7]);
-      expect(overlay.path).toBe(this.shape);
-
-    });
-
-    it('should select point[8] to deform rectangular', function() {
-
-      var event = TestUtils.getEvent({}, {
-        'x': this.initialPoint.x - 2,
-        'y': this.initialPoint.y - 1
-      });
-      overlay.mode = '';
-      this.rectangle.onMouseDown(event, overlay);
-
-      expect(overlay.mode).toBe('deform');
-      expect(overlay.segment).toBe(this.shape.segments[8]);
-      expect(overlay.path).toBe(this.shape);
-
-    });
-
-    it('should change cursor to move when stroke is hit',function(){
-     var hitResult = {
-       type:'stroke'
-     };
-
-      overlay.viewer.canvas = this.canvas;
-      this.rectangle.setCursor(hitResult,overlay);
-
-      expect(jQuery(overlay.viewer.canvas).css('cursor')).toBe('move');
-    });
-
-    // it('should change cursor to pointer when hovering delete icon',function(){
-    //
-    //
-    // });
-
-    it('should change cursor on mouse move',function(){
-      var event = TestUtils.getEvent({},{
-        x: this.initialPoint.x,
-        y: this.initialPoint.y
-      });
-      overlay.viewer.canvas = this.canvas;
-      overlay.hoveredPath = this.shape;
-      this.rectangle.onMouseMove(event,overlay);
-
-      expect(jQuery(overlay.viewer.canvas).css('cursor')).toBe('pointer');
-    });
-
-    it('should not update selection if the item is part of selected shape',function(){
-      var _this = this;
-      var item = {
-        '_name':{
-          toString:function(){
-            return _this.rectangle.idPrefix + _this.rectangle.partOfPrefix;
-          }
-        }
-      };
-      this.rectangle.updateSelection(true,item,overlay);
-      expect(item.selected).toBeUndefined();
-    });
-
-    it('should adapt segments (old rects have different pivot points)',function(){
-
-      this.rectangle.adaptSegments(this.shape);
-      expect(this.shape.segments[1].point.x).toBe(this.shape.segments[2].point.x);
-      expect(this.shape.segments[1].point.y).toBe(this.shape.segments[2].point.y);
-
-    });
-
-    it('should resize the trash can icon',function(){
-      var _this = this;
-      var item = {
-        '_name':{
-          toString:function(){
-            return _this.rectangle.idPrefix + _this.rectangle.partOfPrefix + 'delete';
-          }
-        },
-        data:{
-          self:new overlay.annotationUtils.DeleteActionIcon(),
-          parent:{ // should use mock shape
-            data:{
-              rotation:1
-            },
-            contains:jasmine.createSpy().and.returnValue(true)
-          }
-        }
-      };
-
-      this.rectangle.onResize(item,overlay);
-
-      expect(item.data.self.resize).toHaveBeenCalledWith(24);
-      expect(item.data.self.rotate).toHaveBeenCalledWith(180);
-    });
-
-  });
-
-});
diff --git a/spec/annotations/overlay.stub.js b/spec/annotations/overlay.stub.js
deleted file mode 100644
index 71977f773caf785b45e8c166c33ad563fcdab390..0000000000000000000000000000000000000000
--- a/spec/annotations/overlay.stub.js
+++ /dev/null
@@ -1,41 +0,0 @@
-(function () {
-  window.MockOverlay = {
-    getOverlay: function (paperScope) {
-      return {
-        viewer: {
-          canvas: '',
-        },
-        paperScope: paperScope,
-        strokeColor: 'red',
-        fillColor: 'red',
-        fillColorAlpha: 1.0,
-        mode: '',
-        path: null,
-        segment: null,
-        viewZoom: 1,
-        hitOptions: {
-          stroke:true,
-          handles: true,
-          segments: true,
-          tolerance: 0
-        },
-        selectedColor:'red',
-        fitFixedSizeShapes: jasmine.createSpy(),
-        fixedShapeSize: 5,
-        annotationUtils: new AnnotationUtilsStub(),
-        state: {
-          getStateProperty: jasmine.createSpy()
-        },
-        onDrawFinish: jasmine.createSpy(),
-        getName: function (tool) {
-          return tool.idPrefix + '1';
-        },
-        show: jasmine.createSpy(),
-        hide: jasmine.createSpy(),
-        disable: jasmine.createSpy(),
-        destroy: jasmine.createSpy(),
-        restoreEditedShapes: jasmine.createSpy()
-      }
-    }
-  }
-})();
diff --git a/spec/annotations/simple-as-endpoint.test.js b/spec/annotations/simple-as-endpoint.test.js
deleted file mode 100644
index 56bb3dafe99abb1ba60f173e7d80a7de6b1bc3b5..0000000000000000000000000000000000000000
--- a/spec/annotations/simple-as-endpoint.test.js
+++ /dev/null
@@ -1,211 +0,0 @@
-describe('SimpleASEndpoint', function() {
-  var subject, ajaxSuccess, ajaxData, endpointOpts;
-
-  beforeEach(function() {
-    this.dfd = jQuery.Deferred();
-    endpointOpts = {
-      url:'test',
-      userid:'1',
-      dfd: this.dfd
-    };
-    this.endpoint = new Mirador.SimpleASEndpoint(endpointOpts);
-    subject = this.endpoint;
-    ajaxSuccess = true;
-    ajaxData = null;
-    spyOn(jQuery, 'ajax').and.callFake(function(args) {
-      if (ajaxSuccess) {
-        if (typeof args.success === 'function') args.success(ajaxData);
-      }
-      else {
-        if (typeof args.error === 'function') args.error(ajaxData);
-      }
-    });
-  });
-
-  afterEach(function() {
-    delete this.endpoint;
-  });
-
-  describe('Initialization', function() {
-    it('should initialize', function() {
-
-      expect(this.endpoint.catchOptions).toBeDefined();
-      expect(this.endpoint.catchOptions.user.id).toBe(endpointOpts.userid);
-
-      expect(this.endpoint.catchOptions.permissions.read.length).toBe(0);
-      expect(this.endpoint.catchOptions.permissions.update).toContain(endpointOpts.userid);
-      expect(this.endpoint.catchOptions.permissions.delete).toContain(endpointOpts.userid);
-      expect(this.endpoint.catchOptions.permissions.admin).toContain(endpointOpts.userid);
-    });
-  });
-
-  describe('search', function() {
-    var successCallback, errorCallback, genUuidCounter;
-    beforeEach(function() {
-      successCallback = jasmine.createSpy('successCallback');
-      errorCallback = jasmine.createSpy('errorCallback');
-      subject.annotationsList = [];
-      ajaxData = [
-        { '@id': 'AAA' },
-        { '@id': 'BBB' }
-      ];
-      genUuidCounter = 0;
-      spyOn(Mirador, 'genUUID').and.callFake(function() {
-        return 'uuid' + genUuidCounter++;
-      });
-    });
-    it('should run callback on success if provided', function() {
-      subject.search({}, successCallback, errorCallback);
-      expect(successCallback).toHaveBeenCalledWith(ajaxData);
-      expect(errorCallback).not.toHaveBeenCalled();
-    });
-    it('should update internal annotation list if provided', function() {
-      expect(subject.dfd.state()).not.toEqual('resolved');
-      subject.search({});
-      expect(successCallback).not.toHaveBeenCalled();
-      expect(errorCallback).not.toHaveBeenCalled();
-      expect(subject.dfd.state()).toEqual('resolved');
-      expect(subject.annotationsList).toEqual(ajaxData);
-      expect(subject.idMapper.uuid0).toEqual('AAA');
-      expect(subject.idMapper.uuid1).toEqual('BBB');
-    });
-    it('should add console log on failure with no callback given', function() {
-      ajaxSuccess = false;
-      spyOn(console, 'log');
-      subject.search({uri: "http://sas.example.net"});
-      expect(successCallback).not.toHaveBeenCalled();
-      expect(errorCallback).not.toHaveBeenCalled();
-      expect(console.log).toHaveBeenCalledWith("The request for annotations has caused an error for endpoint: http://sas.example.net due to undefined");
-    });
-    it('should run callback on failure if provided', function() {
-      ajaxSuccess = false;
-      subject.search({}, successCallback, errorCallback);
-      expect(successCallback).not.toHaveBeenCalled();
-      expect(errorCallback).toHaveBeenCalled();
-    });
-  });
-
-  describe('deleteAnnotations', function() {
-    var returnSuccess, returnError;
-    beforeEach(function() {
-      subject.idMapper = {
-        'uuid0': 'AAA',
-        'uuid1': 'BBB'
-      };
-      subject.annotationsList = [
-        { '@id': 'AAA' },
-        { '@id': 'BBB' }
-      ];
-      returnSuccess = jasmine.createSpy('returnSuccess');
-      returnError = jasmine.createSpy('returnError');
-    });
-    it('should run callback on success', function() {
-      subject.deleteAnnotation('uuid0', returnSuccess, returnError);
-      expect(jQuery.ajax).toHaveBeenCalledWith(jasmine.objectContaining({
-        url: subject.url + "/destroy?uri=AAA&APIKey=" + subject.APIKey,
-        type: 'DELETE'
-      }));
-      expect(returnSuccess).toHaveBeenCalled();
-      expect(returnError).not.toHaveBeenCalled();
-    });
-    it('should run callback on failure', function() {
-      ajaxSuccess = false;
-      subject.deleteAnnotation('uuid1', returnSuccess, returnError);
-      expect(jQuery.ajax).toHaveBeenCalledWith(jasmine.objectContaining({
-        url: subject.url + "/destroy?uri=BBB&APIKey=" + subject.APIKey,
-        type: 'DELETE'
-      }));
-      expect(returnSuccess).not.toHaveBeenCalled();
-      expect(returnError).toHaveBeenCalled();
-    });
-  });
-
-  describe('update', function() {
-    var returnSuccess, returnError, oaAnnotation;
-    beforeEach(function() {
-      returnSuccess = jasmine.createSpy('returnSuccess');
-      returnError = jasmine.createSpy('returnError');
-      oaAnnotation = {
-        '@id': 'uuid0',
-        fullId: 'AAA',
-        endpoint: {}
-      };
-    });
-    it('should run callback on success', function() {
-      subject.update(oaAnnotation, returnSuccess, returnError);
-      expect(jQuery.ajax).toHaveBeenCalledWith(jasmine.objectContaining({
-        url: subject.url + "/update?APIKey=" + subject.APIKey,
-        type: 'POST'
-      }));
-      expect(returnSuccess).toHaveBeenCalled();
-      expect(returnError).not.toHaveBeenCalled();
-      expect(oaAnnotation.endpoint).toEqual(subject);
-    });
-    it('should run callback on failure', function() {
-      ajaxSuccess = false;
-      subject.update(oaAnnotation, returnSuccess, returnError);
-      expect(jQuery.ajax).toHaveBeenCalledWith(jasmine.objectContaining({
-        url: subject.url + "/update?APIKey=" + subject.APIKey,
-        type: 'POST'
-      }));
-      expect(returnSuccess).not.toHaveBeenCalled();
-      expect(returnError).toHaveBeenCalled();
-    });
-  });
-
-  describe('create', function() {
-    var returnSuccess, returnError, oaAnnotation;
-    beforeEach(function() {
-      returnSuccess = jasmine.createSpy('returnSuccess');
-      returnError = jasmine.createSpy('returnError');
-      oaAnnotation = {
-        fullId: 'AAA',
-        endpoint: {}
-      };
-    });
-    it('should run callback on success', function() {
-      ajaxData = {
-        '@id': 'nuevo',
-      };
-      subject.create(oaAnnotation, returnSuccess, returnError);
-      expect(jQuery.ajax).toHaveBeenCalledWith(jasmine.objectContaining({
-        url: subject.url + "/create?APIKey=" + subject.APIKey,
-        type: 'POST'
-      }));
-      expect(returnSuccess).toHaveBeenCalledWith(ajaxData);
-      expect(returnError).not.toHaveBeenCalled();
-      expect(ajaxData.endpoint).toEqual(subject);
-    });
-    it('should run callback on failure', function() {
-      ajaxSuccess = false;
-      subject.create(oaAnnotation, returnSuccess, returnError);
-      expect(jQuery.ajax).toHaveBeenCalledWith(jasmine.objectContaining({
-        url: subject.url + "/create?APIKey=" + subject.APIKey,
-        type: 'POST'
-      }));
-      expect(returnSuccess).not.toHaveBeenCalled();
-      expect(returnError).toHaveBeenCalled();
-    });
-  });
-
-  describe('set', function() {
-    it('should set the property to the value with 2 arguments', function() {
-      subject.set('waahoo', 'xekko');
-      expect(subject.waahoo).toEqual('xekko');
-    });
-    it('should set the sub-property to the value with 3 arguments', function() {
-      subject.set(0, 'xekko', { parent: 'annotationsList' });
-      expect(subject.annotationsList[0]).toEqual('xekko');
-    })
-  });
-
-  describe('userAuthorize', function() {
-    it('should let everyone through for now', function() {
-      expect(subject.userAuthorize('read', {})).toBe(true);
-      expect(subject.userAuthorize('create', {})).toBe(true);
-      expect(subject.userAuthorize('update', {})).toBe(true);
-      expect(subject.userAuthorize('delete', {})).toBe(true);
-      expect(subject.userAuthorize('admin', {})).toBe(true);
-    });
-  });
-});
diff --git a/spec/annotations/test-utils.js b/spec/annotations/test-utils.js
deleted file mode 100644
index e387a70b574059c898d7521251d29d950f3b630e..0000000000000000000000000000000000000000
--- a/spec/annotations/test-utils.js
+++ /dev/null
@@ -1,18 +0,0 @@
-(function () {
-  window.TestUtils = {
-    rotatePoint: function (point, initialPoint, angle) {
-      var angleRad = angle * Math.PI / 180.0;
-      return {
-        x: Math.cos(angleRad) * (point.x - initialPoint.x) - Math.sin(angleRad) * (point.y - initialPoint.y) + initialPoint.x,
-        y: Math.sin(angleRad) * (point.x - initialPoint.x) + Math.cos(angleRad) * (point.y - initialPoint.y) + initialPoint.y
-      };
-    },
-    getEvent: function (delta, point,modifiers) {
-      return {
-        'delta': delta,
-        'point': point,
-        'modifiers': modifiers
-      };
-    }
-  }
-})();
\ No newline at end of file
diff --git a/spec/annotations/tinymce-annotation-editor.test.js b/spec/annotations/tinymce-annotation-editor.test.js
deleted file mode 100644
index e8c8d7105fd35fc5f74661aa6cafe88722cf9b79..0000000000000000000000000000000000000000
--- a/spec/annotations/tinymce-annotation-editor.test.js
+++ /dev/null
@@ -1,252 +0,0 @@
-describe('TinyMCEAnnotationBodyEditor', function() {
-  var subject;
-  beforeEach(function() {
-    jQuery('body').append('<div id="mycontainer"></div>');
-    tinymce = jasmine.createSpyObj('tinymce', ['init']);
-    this.sandbox = jQuery('#mycontainer');
-    this.annotation = {
-      "@context": "http://iiif.io/api/presentation/2/context.json",
-      "@type": "oa:Annotation",
-      "motivation": [
-        "oa:commenting"
-      ],
-      "resource": [
-        {
-          "@type": "dctypes:Text",
-          "format": "text/html",
-          "chars": "<p>Waahoo</p>"
-        },
-        {
-          "@type": "oa:Tag",
-          "chars": "tagged"
-        },
-        {
-          "@type": "oa:Tag",
-          "chars": "silly"
-        },
-      ],
-      "on": [{
-        "@type": "oa:SpecificResource",
-        "full": "https://oculus-dev.harvardx.harvard.edu/manifests/huam:320567/canvas/canvas-10466656.json",
-        "selector": {
-          "@type": "oa:Choice",
-          "default": {
-            "@type": "oa:FragmentSelector",
-            "value": "xywh=1000,219,198,148"
-          },
-          "item": {
-            "@type": "oa:SvgSelector",
-            "value": "<svg xmlns='http://www.w3.org/2000/svg'><path xmlns=\"http://www.w3.org/2000/svg\" d=\"M1000.24213,219.15375l98.78935,0l0,0l98.78935,0l0,74.09201l0,74.09201l-98.78935,0l-98.78935,0l0,-74.09201z\" data-paper-data=\"{&quot;strokeWidth&quot;:1,&quot;rotation&quot;:0,&quot;annotation&quot;:null,&quot;editable&quot;:true}\" id=\"rectangle_7e2b56fa-b18b-4d09-a575-0bb19f560b56\" fill-opacity=\"0\" fill=\"#00bfff\" fill-rule=\"nonzero\" stroke=\"#00bfff\" stroke-width=\"30.87167\" stroke-linecap=\"butt\" stroke-linejoin=\"miter\" stroke-miterlimit=\"10\" stroke-dasharray=\"\" stroke-dashoffset=\"0\" font-family=\"sans-serif\" font-weight=\"normal\" font-size=\"12\" text-anchor=\"start\" style=\"mix-blend-mode: normal\"/></svg>"
-          }
-        },
-        "within": {
-          "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/huam:320567",
-          "@type": "sc:Manifest"
-        }
-      }],
-      "@id": "51ac4477-7bcc-475d-a7bb-26112db1c230"
-    };
-    this.windowId = '380c9e54-7561-4010-a99f-f132f5dc13fd';
-    this.tinyMce = new Mirador.TinyMCEAnnotationBodyEditor({
-      annotation: this.annotation,
-      windowId: this.windowId,
-      config: {
-        tags: ["config1", "config2"]
-      }
-    });
-    subject = this.tinyMce;
-    subject.show('#mycontainer');
-  });
-
-  afterEach(function() {
-    delete this.tinyMce;
-    $('body').html('');
-  });
-
-  describe('Initialization', function() {
-    it('should initialize', function() {
-      expect(true).toBe(true); //Force beforeEach() setup to run
-      expect(this.sandbox.find('.text-editor').val()).toEqual('<p>Waahoo</p>');
-      expect(this.sandbox.find('.tags-editor').val()).toEqual(['tagged', 'silly']);
-    });
-    it('should initialize with legacy annotations', function() {
-      this.annotation.resource = {
-        "@type": "dctypes:Text",
-        "format": "text/plain",
-        "chars": "Old stuff"
-      };
-      var legacyTinyMce = new Mirador.TinyMCEAnnotationBodyEditor({
-        annotation: this.annotation,
-        windowId: this.windowId
-      });
-      legacyTinyMce.show('#mycontainer');
-      expect(this.sandbox.find('.text-editor').val()).toEqual('Old stuff');
-    });
-  });
-
-  describe('isDirty', function() {
-    var dirty;
-    beforeEach(function() {
-      tinymce.activeEditor = {
-        isDirty: jasmine.createSpy('isDirty').and.callFake(function() {
-          return dirty;
-        })
-      };
-    });
-    it('should return dirtiness when true', function() {
-      dirty = true;
-      expect(subject.isDirty()).toBe(true);
-    });
-    it('should return dirtiness when false', function() {
-      dirty = false;
-      expect(subject.isDirty()).toBe(false);
-    });
-  });
-
-  describe('createAnnotation', function() {
-    beforeEach(function() {
-      var _this = this;
-      tinymce.activeEditor = {
-        getContent: jasmine.createSpy('getContent').and.callFake(function() {
-          return _this.sandbox.find('.text-editor').val();
-        })
-      };
-    });
-    it('should create a full annotation with tags from config', function() {
-      this.sandbox.find('.text-editor').val('Sample annotation');
-      this.sandbox.find('.tags-editor').val(['config1', 'config2']).trigger('change');
-      expect(subject.createAnnotation()).toEqual({
-        "@context": "http://iiif.io/api/presentation/2/context.json",
-        "@type": "oa:Annotation",
-        "motivation": ['oa:tagging', 'oa:commenting'],
-        "resource": [
-          {
-            "@type": "oa:Tag",
-            "chars": "config1"
-          },
-          {
-            "@type": "oa:Tag",
-            "chars": "config2"
-          },
-          {
-            "@type": "dctypes:Text",
-            "format": "text/html",
-            "chars": "Sample annotation"
-          }
-        ]
-      });
-    });
-
-    it('should create a full annotation with new tags', function() {
-      this.sandbox.find('.text-editor').val('Sample annotation');
-      this.sandbox.find('.tags-editor').append('<option value="tag">tag</option>');
-      this.sandbox.find('.tags-editor').append('<option value="nags">nags</option>');
-      this.sandbox.find('.tags-editor').val(['tag', 'nags']).trigger('change');
-      expect(subject.createAnnotation()).toEqual({
-        "@context": "http://iiif.io/api/presentation/2/context.json",
-        "@type": "oa:Annotation",
-        "motivation": ['oa:tagging', 'oa:commenting'],
-        "resource": [
-          {
-            "@type": "oa:Tag",
-            "chars": "tag"
-          },
-          {
-            "@type": "oa:Tag",
-            "chars": "nags"
-          },
-          {
-            "@type": "dctypes:Text",
-            "format": "text/html",
-            "chars": "Sample annotation"
-          }
-        ]
-      });
-    });
-  });
-
-  describe('updateAnnotation', function() {
-    beforeEach(function() {
-      var _this = this;
-      tinymce.activeEditor = {
-        getContent: jasmine.createSpy('getContent').and.callFake(function() {
-          return _this.sandbox.find('.text-editor').val();
-        })
-      };
-    });
-    it('should update the given annotation with new tags', function() {
-      var oaAnno = {
-        "@context": "http://iiif.io/api/presentation/2/context.json",
-        "@type": "oa:Annotation",
-        "motivation": ['oa:commenting'],
-        "resource": [{
-          "@type": "dctypes:Text",
-          "format": "text/html",
-          "chars": "Sample annotation"
-        }]
-      };
-      this.sandbox.find('.text-editor').val('Sample annotation 2');
-      this.sandbox.find('.tags-editor').append('<option value="tag2">tag2</option>');
-      this.sandbox.find('.tags-editor').append('<option value="nags2">nags2</option>');
-      this.sandbox.find('.tags-editor').val(['tag2', 'nags2']).trigger('change');
-      subject.updateAnnotation(oaAnno);
-      expect(oaAnno).toEqual({
-        "@context": "http://iiif.io/api/presentation/2/context.json",
-        "@type": "oa:Annotation",
-        "motivation": ['oa:commenting', 'oa:tagging'],
-        "resource": [
-          {
-            "@type": "dctypes:Text",
-            "format": "text/html",
-            "chars": "Sample annotation 2"
-          },
-          {
-            "@type": "oa:Tag",
-            "chars": "tag2"
-          },
-          {
-            "@type": "oa:Tag",
-            "chars": "nags2"
-          }
-        ]
-      });
-    });
-
-    it('should update the given annotation with tags from config', function() {
-      var oaAnno = {
-        "@context": "http://iiif.io/api/presentation/2/context.json",
-        "@type": "oa:Annotation",
-        "motivation": ['oa:commenting'],
-        "resource": [{
-          "@type": "dctypes:Text",
-          "format": "text/html",
-          "chars": "Sample annotation"
-        }]
-      };
-      this.sandbox.find('.text-editor').val('Sample annotation 2');
-      this.sandbox.find('.tags-editor').val(['config1', 'config2']).trigger('change');
-      subject.updateAnnotation(oaAnno);
-      expect(oaAnno).toEqual({
-        "@context": "http://iiif.io/api/presentation/2/context.json",
-        "@type": "oa:Annotation",
-        "motivation": ['oa:commenting', 'oa:tagging'],
-        "resource": [
-          {
-            "@type": "dctypes:Text",
-            "format": "text/html",
-            "chars": "Sample annotation 2"
-          },
-          {
-            "@type": "oa:Tag",
-            "chars": "config1"
-          },
-          {
-            "@type": "oa:Tag",
-            "chars": "config2"
-          }
-        ]
-      });
-    });
-
-  });
-});
diff --git a/spec/data/Walters/bd183mz0176/manifest.json b/spec/data/Walters/bd183mz0176/manifest.json
deleted file mode 100644
index e58579836a614fd48d2f3869a73f28f08a73e03e..0000000000000000000000000000000000000000
--- a/spec/data/Walters/bd183mz0176/manifest.json
+++ /dev/null
@@ -1,77 +0,0 @@
-{
-  "@context": "http://www.shared-canvas.org/ns/context.json",
-  "@id": "http://dms-data.stanford.edu/Walters/bd183mz0176/manifest.json",
-  "@type": "sc:Manifest",
-  "label": "Walters MS 688",
-  "agent": "",
-  "date": "Early 11th century AH / 17th CE",
-  "description": "This manuscript illustration of a group\n                    of youths before a king and his courtiers was executed in Iran during the early\n                    eleventh century AH / seventeenth CE. Stylistically it relates to manuscript\n                    production in Shiraz in the tenth century AH / sixteenth CE and early eleventh\n                    century AH / seventeenth CE. The painting is framed by illuminated borders in\n                    tones of gold. The back of the leaf has additional illumination and no\n                    text. For full description, see http://www.thedigitalwalters.org/Data/WaltersManuscripts/html/W688/description.html",
-  "attribution": "Provided by the Walters Art Museum, Baltimore, MD",
-  "license": "Licensed for use under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported Access Rights, http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode. Images are free for any noncommercial use, provided you follow the terms of this license. You do not need to apply to the Walters prior to using the images. We ask only that you cite the source of the images as the Walters Art Museum (see citation style at http://www.thedigitalwalters.org/03_ReadMe.html). Additionally, we request that a copy of any work created using these materials be sent to the Curator of Manuscripts and Rare Books at the Walters Art Museum, 600 N. Charles Street, Baltimore, MD 21201, mss-curator@thewalters.org.",
-  "seeAlso": {
-    "@id": "http://purl.stanford.edu/bd183mz0176.mods",
-    "profile": "application/mods+xml"
-  },
-  "within": "http://dms-data.stanford.edu/Walters/",
-  "sequences": [
-    {
-      "@id": "http://dms-data.stanford.edu/Walters/bd183mz0176/normal",
-      "@type": "sc:Sequence",
-      "label": "Current page order",
-      "canvases": [
-        {
-          "@id": "http://dms-data.stanford.edu/Walters/bd183mz0176/canvas/canvas-1",
-          "@type": "sc:Canvas",
-          "label": "fol. W.688a",
-          "height": 4851,
-          "width": 3071,
-          "resources": [
-            {
-              "@id": "http://dms-data.stanford.edu/Walters/bd183mz0176/imageanno/anno-1",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "http://stacks.stanford.edu/image/bd183mz0176/W688_000001_300",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 4851,
-                "width": 3071,
-                "service": {
-                  "@id": "https://stacks.stanford.edu/image/iiif/bd183mz0176%252FW688_000001_300",
-                  "profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1"
-                }
-              },
-              "on": "http://dms-data.stanford.edu/Walters/bd183mz0176/canvas/canvas-1"
-            }
-          ]
-        },
-        {
-          "@id": "http://dms-data.stanford.edu/Walters/bd183mz0176/canvas/canvas-2",
-          "@type": "sc:Canvas",
-          "label": "fol. W.688b",
-          "height": 4817,
-          "width": 3038,
-          "resources": [
-            {
-              "@id": "http://dms-data.stanford.edu/Walters/bd183mz0176/imageanno/anno-2",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "http://stacks.stanford.edu/image/bd183mz0176/W688_000002_300",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 4817,
-                "width": 3038,
-                "service": {
-                  "@id": "https://stacks.stanford.edu/image/iiif/bd183mz0176%252FW688_000002_300",
-                  "profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1"
-                }
-              },
-              "on": "http://dms-data.stanford.edu/Walters/bd183mz0176/canvas/canvas-2"
-            }
-          ]
-        }
-      ]
-    }
-  ]
-}
\ No newline at end of file
diff --git a/spec/data/manifest.json b/spec/data/manifest.json
deleted file mode 100644
index 0f1f58d7d88d70f8f31d970165dc43f72fb4ed88..0000000000000000000000000000000000000000
--- a/spec/data/manifest.json
+++ /dev/null
@@ -1 +0,0 @@
-{"@context":"http://iiif.io/api/presentation/2/context.json","@id":"https://sul-purl-test.stanford.edu/ck546xs5106/iiif/manifest.json","@type":"sc:Manifest","label":"Ege No. 1 - University of Mississippi","attribution":"Provided by the Stanford University Libraries", "logo":"https://stacks-test.stanford.edu/image/iiif/ck546xs5106%2Folemiss1/full/300,/0/default.jpg","seeAlso":{"@id":"https://sul-purl-test.stanford.edu/ck546xs5106.mods","format":"application/mods+xml"},"thumbnail":{"@id":"https://stacks-test.stanford.edu/image/iiif/ck546xs5106%2Folemiss1/full/400,/0/default.jpg","service":{"@context":"http://iiif.io/api/image/2/context.json","@id":"https://stacks-test.stanford.edu/image/iiif/ck546xs5106%2Folemiss1","profile":"http://iiif.io/api/image/2/level1.json"}},"sequences":[{"@id":"https://sul-purl-test.stanford.edu/ck546xs5106/sequence-1","@type":"sc:Sequence","label":"Current order","canvases":[{"@id":"https://sul-purl-test.stanford.edu/ck546xs5106/canvas/canvas-1","@type":"sc:Canvas","label":"Image 1","height":1545,"width":1162,"images":[{"@id":"https://sul-purl-test.stanford.edu/ck546xs5106/imageanno/anno-1","@type":"oa:Annotation","motivation":"sc:painting","on":"https://sul-purl-test.stanford.edu/ck546xs5106/canvas/canvas-1","resource":{"@id":"https://stacks-test.stanford.edu/image/iiif/ck546xs5106%2Folemiss1/full/full/0/default.jpg","@type":"dcterms:Image","format":"image/jpeg","height":1545,"width":1162,"service":{"@context":"http://iiif.io/api/image/2/context.json","@id":"https://stacks-test.stanford.edu/image/iiif/ck546xs5106%2Folemiss1","profile":"http://iiif.io/api/image/2/level1.json"}}}]},{"@id":"https://sul-purl-test.stanford.edu/ck546xs5106/canvas/canvas-2","@type":"sc:Canvas","label":"Image 2","height":1548,"width":1149,"images":[{"@id":"https://sul-purl-test.stanford.edu/ck546xs5106/imageanno/anno-2","@type":"oa:Annotation","motivation":"sc:painting","on":"https://sul-purl-test.stanford.edu/ck546xs5106/canvas/canvas-2","resource":{"@id":"https://stacks-test.stanford.edu/image/iiif/ck546xs5106%2Folemiss1v/full/full/0/default.jpg","@type":"dcterms:Image","format":"image/jpeg","height":1548,"width":1149,"service":{"@context":"http://iiif.io/api/image/2/context.json","@id":"https://stacks-test.stanford.edu/image/iiif/ck546xs5106%2Folemiss1v","profile":"http://iiif.io/api/image/2/level1.json"}}}]}]}]}
\ No newline at end of file
diff --git a/spec/data/manifest2.json b/spec/data/manifest2.json
deleted file mode 100644
index 8d7f5e70f6ec651970bc8a2bc976df0ea6e6c19e..0000000000000000000000000000000000000000
--- a/spec/data/manifest2.json
+++ /dev/null
@@ -1,83 +0,0 @@
-{
-  "@context": "http://iiif.io/api/presentation/2/context.json",
-  "@id": "spec/data/manifest2.json",
-  "@type": "sc:Manifest",
-  "label": "Ege No. 1 - University of Mississippi",
-  "attribution": "Provided by the Stanford University Libraries",
-  "logo": "https://stacks-test.stanford.edu/image/iiif/ck546xs5106%2Folemiss1/full/302,/0/default.jpg",
-  "seeAlso": {
-    "@id": "https://sul-purl-test.stanford.edu/ck546xs5106.mods",
-    "format": "application/mods+xml"
-  },
-  "thumbnail": {
-    "@id": "https://stacks-test.stanford.edu/image/iiif/ck546xs5106%2Folemiss1/full/400,/0/default.jpg",
-    "service": {
-      "@context": "http://iiif.io/api/image/2/context.json",
-      "@id": "https://stacks-test.stanford.edu/image/iiif/ck546xs5106%2Folemiss1",
-      "profile": "http://iiif.io/api/image/2/level1.json"
-    }
-  },
-  "sequences": [
-    {
-      "@id": "https://sul-purl-test.stanford.edu/ck546xs5106/sequence-1",
-      "@type": "sc:Sequence",
-      "label": "Current order",
-      "canvases": [
-        {
-          "@id": "https://sul-purl-test.stanford.edu/ck546xs5106/canvas/canvas-1",
-          "@type": "sc:Canvas",
-          "label": "Image 1",
-          "height": 1545,
-          "width": 1162,
-          "images": [
-            {
-              "@id": "https://sul-purl-test.stanford.edu/ck546xs5106/imageanno/anno-1",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "on": "https://sul-purl-test.stanford.edu/ck546xs5106/canvas/canvas-1",
-              "resource": {
-                "@id": "https://stacks-test.stanford.edu/image/iiif/ck546xs5106%2Folemiss1/full/full/0/default.jpg",
-                "@type": "dcterms:Image",
-                "format": "image/jpeg",
-                "height": 1545,
-                "width": 1162,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://stacks-test.stanford.edu/image/iiif/ck546xs5106%2Folemiss1",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              }
-            }
-          ]
-        },
-        {
-          "@id": "https://sul-purl-test.stanford.edu/ck546xs5106/canvas/canvas-2",
-          "@type": "sc:Canvas",
-          "label": "Image 2",
-          "height": 1548,
-          "width": 1149,
-          "images": [
-            {
-              "@id": "https://sul-purl-test.stanford.edu/ck546xs5106/imageanno/anno-2",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "on": "https://sul-purl-test.stanford.edu/ck546xs5106/canvas/canvas-2",
-              "resource": {
-                "@id": "https://stacks-test.stanford.edu/image/iiif/ck546xs5106%2Folemiss1v/full/full/0/default.jpg",
-                "@type": "dcterms:Image",
-                "format": "image/jpeg",
-                "height": 1548,
-                "width": 1149,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://stacks-test.stanford.edu/image/iiif/ck546xs5106%2Folemiss1v",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              }
-            }
-          ]
-        }
-      ]
-    }
-  ]
-}
diff --git a/spec/event-emitter.stub.js b/spec/event-emitter.stub.js
deleted file mode 100644
index 8bb801cf126a3cfa7b8b14779ba36f789ddf4317..0000000000000000000000000000000000000000
--- a/spec/event-emitter.stub.js
+++ /dev/null
@@ -1,27 +0,0 @@
-(function () {
-  window.MockEventEmitter = function (eventEmitter) {
-    this.events = {};
-    this.eventEmmiter = eventEmitter;
-  };
-
-  window.MockEventEmitter.prototype = {
-    subscribe: function (eventName, callback) {
-      if(this.events[eventName]){
-        this.events[eventName]++;
-      }else{
-        this.events[eventName] = 1;
-      }
-      return this.eventEmmiter.subscribe(eventName,callback);
-    },
-    publish: function (eventName,args) {
-      this.eventEmmiter.publish(eventName,args);
-
-    },
-    unsubscribe: function (eventName) {
-     this.eventEmmiter.unsubscribe(eventName);
-      if(this.events[eventName]){
-        this.events[eventName]--;
-      }
-    }
-  }
-})();
\ No newline at end of file
diff --git a/spec/fixtures/AnGWay.json b/spec/fixtures/AnGWay.json
deleted file mode 100644
index 58485a8dfa8d6c0fe4e724f63912ac3b564df41b..0000000000000000000000000000000000000000
--- a/spec/fixtures/AnGWay.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
-  "@context": "http://iiif.io/api/presentation/2/context.json",
-  "@id": "http://wellcomelibrary.org/service/collections/authors/A.%20%26%20G.%20Way%20(Firm)%2C/",
-  "@type": "sc:Collection",
-  "label": " Author: A. & G. Way (Firm)",
-  "manifests": [
-    {
-      "@id": "http://wellcomelibrary.org/iiif/b21153577/manifest",
-      "@type": "sc:Manifest",
-      "label": "A practical narrative of the autumnal epidemic fever which prevailed in Philadelphia in the year 1803",
-      "thumbnail": {
-        "@id": "https://dlcs.io/iiif-img/2/1/9b9fd335-eefa-4fa8-9f44-9516ed6d6fea/full/!1024,1024/0/default.jpg",
-        "@type": "dctypes:Image",
-        "service": {
-          "@context": "http://iiif.io/api/image/2/context.json",
-          "@id": "https://dlcs.io/iiif-img/2/1/9b9fd335-eefa-4fa8-9f44-9516ed6d6fea",
-          "profile": "http://iiif.io/api/image/2/level1.json"
-        }
-      },
-      "related": {
-        "@id": "http://wellcomelibrary.org/item/b21153577",
-        "format": "text/html"
-      },
-      "seeAlso": {
-        "@id": "http://wellcomelibrary.org/resource/b21153577",
-        "format": "text/turtle"
-      }
-    },
-    {
-      "@id": "http://wellcomelibrary.org/iiif/b2115658x/manifest",
-      "@type": "sc:Manifest",
-      "label": "Observations on the disease of gonorrhoea :",
-      "thumbnail": {
-        "@id": "https://dlcs.io/iiif-img/2/1/9e2ea00c-1e74-4092-aa43-1a918694b762/full/!1024,1024/0/default.jpg",
-        "@type": "dctypes:Image",
-        "service": {
-          "@context": "http://iiif.io/api/image/2/context.json",
-          "@id": "https://dlcs.io/iiif-img/2/1/9e2ea00c-1e74-4092-aa43-1a918694b762",
-          "profile": "http://iiif.io/api/image/2/level1.json"
-        }
-      },
-      "related": {
-        "@id": "http://wellcomelibrary.org/item/b2115658x",
-        "format": "text/html"
-      },
-      "seeAlso": {
-        "@id": "http://wellcomelibrary.org/resource/b2115658x",
-        "format": "text/turtle"
-      }
-    }
-  ]
-}
\ No newline at end of file
diff --git a/spec/fixtures/BNF-condorcet-florus-dispersus-manifest.json b/spec/fixtures/BNF-condorcet-florus-dispersus-manifest.json
deleted file mode 100644
index ff9a1029b3ebb404e7324a8efbc2a3070bc2266c..0000000000000000000000000000000000000000
--- a/spec/fixtures/BNF-condorcet-florus-dispersus-manifest.json
+++ /dev/null
@@ -1,7984 +0,0 @@
-{
-    "@context": "http://iiif.io/api/presentation/2/context.json",
-    "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/manifest.json",
-    "@type": "sc:Manifest",
-    "label": "Codex Florus dispersus",
-    "metadata": [
-       {
-		"label":"Object type",
-		"value":"Manuscrit dispersé"
-       },
-       {
-            "label": "Repository",
-            "value": [
-                "Paris, Bibliothèque nationale de France",
-                "Genève, Bibliothèque de Genève",
-                "Saint-Pétersbourg, Bibliothèque nationale de Russie"
-            ]
-        },
-        {
-            "label": "Shelfmark",
-            "value": [
-                "BnF, Latin 11641",
-                "BGE, Latin 16",
-                "BnR, Latin F.papyr.I.1"
-            ]
-        },
-        {
-            "label": "Title",
-            "value": "Épîtres et sermons de saint Augustin"
-        },
-        {
-            "label": "Language",
-            "value": "Latin"
-        },
-        {
-            "label": "Material",
-            "value": "Parchemin et papyrus"
-        },
-        {
-            "label": "Extent",
-            "value": [
-                "300 f. (lacunes comprises)",
-                "63 f. de Paris",
-                "53 f. de Genève",
-                "1 f. de Saint-Pétersbourg"
-            ]
-        },
-        {
-            "label": "Dimensions",
-            "value": "320 x 220 mm"
-        },
-        {
-            "label": "Provenance",
-            "value": "Luxeuil ou Lyon (?)"
-        },
-        {
-            "label": "Creator",
-            "value": [
-                "Saint Augustin. Auteur du texte",
-                "Florus de Lyon. Annotateur"
-            ]
-        },
-        {
-            "label": "Date",
-            "value": "VIIe/VIIIe siècle"
-        },
-        {
-            "label": "Provider",
-            "value": [
-                "Paris, Bibliothèque nationale de France",
-                "Genève, Bibliothèque de Genève",
-                "Saint-Pétersbourg, Bibliothèque nationale de Russie"
-            ]
-        },
-        {
-            "label": "Disseminator",
-            "value": "Biblissima"
-        },
-        {
-            "label": "Source Images",
-            "value": [
-                "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/",
-                "http://www.e-codices.unifr.ch/en/list/one/bge/lat0016",
-                "http://www.e-codices.unifr.ch/en/list/one/nlr/lat-F-I-1"
-            ]
-        }
-    ],
-    "description": "Le \"Florus dispersus\" contient une reconstruction virtuelle d'un manuscrit des lettres et des sermons d'Augustin dans la succession originelle des parties conservées. Il a été rédigé dans une écriture onciale par un copiste de la fin du VIIe siècle, respectivement du début du VIIIe siècle. A l'origine, il se composait de 300 feuillets, dont il reste encore aujourd'hui 117. Une partie de 63 feuillets, provenant des cahiers d'origine 4-11, se trouve aujourd'hui à Paris (BnF, lat. 11641); dans cette partie, peut être inséré, après le feuillet 26, un feuillet isolé, aujourd'hui conservé à Saint-Pétersbourg (BNR, Lat.F.papyr. I.1). Une autre partie de 53 feuillets provenant des cahiers d'origine 23-30 est aujourd'hui conservée à Genève (BGE, lat. 16). Le feuillet extérieur de chaque cahier (quinion) se compose à chaque fois d'un feuillet de parchemin, les autres sont en papyrus. Il s'agit du plus ancien exemple connu de manuscrit mêlant le parchemin et le papyrus. Durant le IXe siècle, le manuscrit appartenait à la bibliothèque de Florus de Lyon, qui y a inséré de sa main de nombreuses notes marginales. Dans la reconstruction virtuelle proposée, nous avons choisi de représenter la structure codicologique du manuscrit original et de signaler les lacunes aux endroits où elles se sont produites. Toutefois, ne sont représentés que les cahiers ayant au moins un feuillet conservé, c'est-à-dire les cahiers 4 à 11 et 23 à 30. Une navigation par œuvre est disponible à l'intérieur d'un cahier. Les feuillets mal placés dans les manuscrits actuels ont été remis dans l\u2019ordre original, à savoir: Paris fol. 1 et 2 ont été intervertis, Genève fol. 2a a été placé entre les feuillets Genève fol. 1 et 2, Genève fol. 9 - entre les feuillets Genève fol. 13 et 14, Genève fol. 45 - entre les feuillets Genève fol. 49 et 50.  La foliotation présumée du manuscrit original est indiquée entre parenthèses après les folios des manuscrits actuels.",
-    "license": ["http://creativecommons.org/licenses/by-nc/4.0/", "http://gallica.bnf.fr/html/und/conditions-dutilisation-des-contenus-de-gallica"],
-    "attribution": "Reconstruction virtuelle: Pierre Chambert-Protat / Manifest IIIF: Elena Koroleva / Images: e-codices - Virtual Manuscript Library of Switzerland ; Gallica - Bibliothèque nationale de France",
-    "structures": [
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r0",
-            "@type": "sc:Range",
-            "label": "Table of Contents",
-            "viewingHint": "top",
-            "ranges": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r1",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r2",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r3",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r4",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r5",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r6",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r7",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r8",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r9",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r10",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r11",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r12",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r13",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r14",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r15",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r16"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r1",
-            "@type": "sc:Range",
-            "label": "Cahier IV",
-            "ranges": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r1-1",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r1-2",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r1-3"
-            ],
-            "canvases": [
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f13",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f14",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-1",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-2",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-3",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-4",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-5",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-6",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-7",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-8",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-9",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-10",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-11",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-12",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-13",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-14",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-15",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-16",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f11",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f12"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r1-1",
-            "@type": "sc:Range",
-            "label": "Minuscule frg. du 1er f. du 4e cahier",
-            "canvases": [
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f13",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f14"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r1-2",
-            "@type": "sc:Range",
-            "label": "Lacune",
-            "canvases": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-1",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-2",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-3",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-4",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-5",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-6",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-7",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-8",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-9",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-10",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-11",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-12",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-13",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-14",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-15",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-16"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r1-3",
-            "@type": "sc:Range",
-            "label": "Épitre 27, 4-6 d'Augustin (f.1r-v, 3r-v)",
-            "canvases": [
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f11",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f12"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r2",
-            "@type": "sc:Range",
-            "label": "Cahier V",
-            "ranges": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r2-1",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r2-2",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r2-3",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r2-4",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r2-5",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r2-6",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r2-7"
-            ],
-            "canvases": [
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f15",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f16",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f17",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f18",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f19",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f20",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f21",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f22",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-17",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-18",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-19",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-20",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f23",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f24",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f25",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f26",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f27",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f28",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f29",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f30"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r2-1",
-            "@type": "sc:Range",
-            "label": "Épitre 27, 4-6 d'Augustin (f.1r-v, 3r-v)",
-            "canvases": [
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f15",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f16"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r2-2",
-            "@type": "sc:Range",
-            "label": "Épitre 31, 1-6 d'Augustin (f. 3v-6v)",
-            "canvases": [
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f16",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f17",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f18",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f19",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f20",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f21",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f22"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r2-3",
-            "@type": "sc:Range",
-            "label": "Lacune",
-            "canvases": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-17",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-18",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-19",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-20"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r2-4",
-            "@type": "sc:Range",
-            "label": "Épitre 24 d'Augustin (f. 7r-8v)",
-            "canvases": [
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f23",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f24",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f25",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f26"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r2-5",
-            "@type": "sc:Range",
-            "label": "Épitre 42 d'Augustin (f. 8v-9r)",
-            "canvases": [
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f26",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f27"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r2-6",
-            "@type": "sc:Range",
-            "label": "Épitre 45 d'Augustin (f. 9r-10r)",
-            "canvases": [
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f27",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f28",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f29"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r2-7",
-            "@type": "sc:Range",
-            "label": "Épitre 94 d'Augustin (f. 10r-15v)",
-            "canvases": [
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f29",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f30"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r3",
-            "@type": "sc:Range",
-            "label": "Cahier VI",
-            "ranges": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r3-1",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r3-2",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r3-3",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r3-4",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r3-5",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r3-6",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r3-7"
-            ],
-            "canvases": [
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f31",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f32",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f33",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f34",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f35",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f36",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f37",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f38",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f39",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f40",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-21",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-22",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f41",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f42",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f43",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f44",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f45",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f46",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f47",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f48",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f49",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f50"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r3-1",
-            "@type": "sc:Range",
-            "label": "Épitre 94 d'Augustin (f. 10r-15v)",
-            "canvases": [
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f31",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f32",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f33",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f34",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f35",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f36",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f37",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f38",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f39",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f40"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r3-2",
-            "@type": "sc:Range",
-            "label": "Lacune",
-            "canvases": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-21",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-22"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r3-3",
-            "@type": "sc:Range",
-            "label": "Ex epistolis du Pseudo-Augustin (f. 16r-18v)",
-            "canvases": [
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f41",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f42",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f43",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f44"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r3-4",
-            "@type": "sc:Range",
-            "label": "Bande sans texte entre 17v et 18r (le reste de la marge du f. manquant?)",
-            "canvases": [
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f45",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f46"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r3-5",
-            "@type": "sc:Range",
-            "label": "Ex epistolis du Pseudo-Augustin (f. 16r-18v)",
-            "canvases": [
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f47",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f48"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r3-6",
-            "@type": "sc:Range",
-            "label": "Épitre 260 d'Augustin (f. 18v-19r)",
-            "canvases": [
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f48",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f49"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r3-7",
-            "@type": "sc:Range",
-            "label": "Épitre 261, 1-4 d'Augustin (f. 19r-20v)",
-            "canvases": [
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f49",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f50"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r4",
-            "@type": "sc:Range",
-            "label": "Cahier VII",
-            "ranges": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r4-1",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r4-2",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r4-3",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r4-4",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r4-5"
-            ],
-            "canvases": [
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f51",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f52",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-23",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-24",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-25",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-26",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f53",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f54",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f55",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f56",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f57",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f58",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f59",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f60",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-27",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-28",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-29",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-30",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f61",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f62"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r4-1",
-            "@type": "sc:Range",
-            "label": "Épitre 261, 1-4 d'Augustin (f. 19r-20v)",
-            "canvases": [
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f51",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f52"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r4-2",
-            "@type": "sc:Range",
-            "label": "Lacune",
-            "canvases": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-23",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-24",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-25",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-26"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r4-3",
-            "@type": "sc:Range",
-            "label": "Sermon 351 d'Augustin, De utilitate agendae paenitentiae (f. 21r-34r)",
-            "canvases": [
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f53",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f54",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f55",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f56",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f57",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f58",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f59",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f60"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r4-4",
-            "@type": "sc:Range",
-            "label": "Lacune",
-            "canvases": [
-               "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-27",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-28",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-29",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-30"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r4-5",
-            "@type": "sc:Range",
-            "label": "Sermon 351 d'Augustin, De utilitate agendae paenitentiae (f. 21r-34r)",
-            "canvases": [
-                 "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f61",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f62"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r5",
-            "@type": "sc:Range",
-            "label": "Cahier VIII",
-            "ranges": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r5-1",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r5-2",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r5-3"
-            ],
-            "canvases": [
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f63",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f64",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/nlr-lat-F-I-1_a.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/nlr-lat-F-I-1_b.json",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f65",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f66",               
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f67",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f68",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f69",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f70",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f71",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f72",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f73",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f74",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f75",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f76",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-31",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-32",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f77",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f78"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r5-1",
-            "@type": "sc:Range",
-            "label": "Sermon 351 d'Augustin, De utilitate agendae paenitentiae (f. 21r-34r)",
-            "canvases": [
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f63",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f64",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/nlr-lat-F-I-1_a.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/nlr-lat-F-I-1_b.json",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f65",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f66",               
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f67",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f68",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f69",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f70",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f71",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f72",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f73",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f74",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f75",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f76"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r5-2",
-            "@type": "sc:Range",
-            "label": "Lacune",
-            "canvases": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-31",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-32"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r5-3",
-            "@type": "sc:Range",
-            "label": "Sermon 351 d'Augustin, De utilitate agendae paenitentiae (f. 21r-34r)",
-            "canvases": [
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f77",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f78"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r6",
-            "@type": "sc:Range",
-            "label": "Cahier IX",
-            "ranges": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r6-1",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r6-2",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r6-3",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r6-4"
-            ],
-            "canvases": [
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f79",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f80",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f81",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f82",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f83",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f84",               
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f85",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f86",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f87",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f88",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f89",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f90",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f91",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f92",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f93",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f94",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f95",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f96",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f97",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f98"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r6-1",
-            "@type": "sc:Range",
-            "label": "Sermon 351 d'Augustin, De utilitate agendae paenitentiae (f. 21r-34r)",
-            "canvases": [
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f79"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r6-2",
-            "@type": "sc:Range",
-            "label": "Sermon 392 d'Augustin, Ad coniugatos (f. 34r-37v)",
-            "canvases": [
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f79",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f80",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f81",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f82",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f83",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f84",               
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f85",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f86"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r6-3",
-            "@type": "sc:Range",
-            "label": "De vetere testamento, Sermon 18, De versu psalmi 49 (f. 38r-42r)",
-            "canvases": [
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f87",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f88",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f89",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f90",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f91",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f92",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f93",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f94",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f95"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r6-4",
-            "@type": "sc:Range",
-            "label": "In Matthaeum, Sermon 87 d'Augustin (f. 42r-53r)",
-            "canvases": [
-                 "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f95",
-                 "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f96",
-                 "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f97",
-                 "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f98"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r7",
-            "@type": "sc:Range",
-            "label": "Cahier X",
-            "ranges": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r7-1",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r7-2"                
-            ],
-            "canvases": [
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f99",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f100",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f101",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f102",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f103",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f104",               
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f105",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f106",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f107",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f108",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f109",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f110",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f111",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f112",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f113",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f114",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f115",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f116",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f117",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f118"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r7-1",
-            "@type": "sc:Range",
-            "label": "In Matthaeum, Sermon 87 d'Augustin (f. 42r-53r)",
-            "canvases": [
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f99",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f100",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f101",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f102",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f103",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f104",               
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f105",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f106",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f107",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f108",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f109",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f110",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f111",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f112",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f113",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f114",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f115",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f116",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f117"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r7-2",
-            "@type": "sc:Range",
-            "label": "In Matthaeum, Sermon 77 d'Augustin (f. 53r-62r)",
-            "canvases": [
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f117",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f118"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r8",
-            "@type": "sc:Range",
-            "label": "Cahier XI",
-            "ranges": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r8-1",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r8-2"                
-            ],
-            "canvases": [
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f119",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f120",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f121",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f122",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f123",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f124",               
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f125",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f126",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f127",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f128",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f129",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f130",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f131",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f132",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f133",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f134",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f135",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f136",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f137",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f138"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r8-1",
-            "@type": "sc:Range",
-            "label": "In Matthaeum, Sermon 77 d'Augustin (f. 53r-62r)",
-            "canvases": [
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f119",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f120",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f121",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f122",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f123",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f124",               
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f125",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f126",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f127",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f128",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f129",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f130",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f131",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f132",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f133",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f134",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f135"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r8-2",
-            "@type": "sc:Range",
-            "label": "In Iohannem, Sermon 127 d'Augustin (f. 62v-63v)",
-            "canvases": [
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f136",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f137",
-                "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f138"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r9",
-            "@type": "sc:Range",
-            "label": "Cahier XXIII",
-            "ranges": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r9-1",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r9-2",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r9-3",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r9-4"
-            ],
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_001r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_001v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_002ar.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_002av.json",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-33",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-34",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-35",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-36",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-37",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-38",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-39",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-40",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-41",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-42",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-43",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-44",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_002r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_002v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_003r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_003v.json"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r9-1",
-            "@type": "sc:Range",
-            "label": "Sermon 279, ch.4-6 d'Augustin (f. 1r-1v)",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_001r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_001v.json"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r9-2",
-            "@type": "sc:Range",
-            "label": "Languette en papyrus du 2e folio",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_002ar.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_002av.json"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r9-3",
-            "@type": "sc:Range",
-            "label": "Lacune",
-            "canvases": [
-                 "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-33",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-34",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-35",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-36",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-37",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-38",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-39",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-40",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-41",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-42",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-43",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-44"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r9-4",
-            "@type": "sc:Range",
-            "label": "Sermon 288, ch. 3-5 d'Augustin (f.2r-4v)",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_002r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_002v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_003r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_003v.json"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r10",
-            "@type": "sc:Range",
-            "label": "Cahier XXIV",
-            "ranges": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r10-1",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r10-2",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r10-3",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r10-4",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r10-5",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r10-5",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r10-7",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r10-8",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r10-9",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r10-10"               
-            ],
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_004r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_004v.json",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-45",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-46",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_005r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_005v.json",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-47",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-48",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_006r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_006v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_007r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_007v.json",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-49",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-50",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_008r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_008v.json",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-51",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-52",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_010r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_0010v.json"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r10-1",
-            "@type": "sc:Range",
-            "label": "Sermon 288, ch. 3-5 d'Augustin (f.2r-4v)",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_004r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_004v.json"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r10-2",
-            "@type": "sc:Range",
-            "label": "Lacune",
-            "canvases": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-45",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-46"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r10-3",
-            "@type": "sc:Range",
-            "label": "Sermon 21, ch. 1-2 d'Augustin (f.5r-5v)",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_005r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_005v.json"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r10-4",
-            "@type": "sc:Range",
-            "label": "Lacune",
-            "canvases": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-47",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-48"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r10-5",
-            "@type": "sc:Range",
-            "label": "Sermon 21, ch. 4-8 d'Augustin (f. 6r-7v)",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_006r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_006v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_007r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_007v.json"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r10-6",
-            "@type": "sc:Range",
-            "label": "Lacune",
-            "canvases": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-49",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-50"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r10-7",
-            "@type": "sc:Range",
-            "label": "Sermon 21, ch. 9-10 d'Augustin (f. 8r)",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_008r.json"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r10-8",
-            "@type": "sc:Range",
-            "label": "Sermon 41, ch. 1 d'Augustin (f. 8r-8v)",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_008r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_008v.json"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r10-9",
-            "@type": "sc:Range",
-            "label": "Lacune",
-            "canvases": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-51",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-52"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r10-10",
-            "@type": "sc:Range",
-            "label": "Sermon 41, ch. 3-5 d'Augustin (f. 10r-11v)",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_0010r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_0010v.json"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r11",
-            "@type": "sc:Range",
-            "label": "Cahier XXV",
-            "ranges": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r11-1",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r11-2",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r11-3",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r11-4",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r11-5",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r11-6",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r11-7",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r11-8",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r11-9"
-            ],
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_011r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_011v.json",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-53",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-54",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_012r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_012v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_013r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_013v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_009r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_009v.json",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-55",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-56",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_014r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_014v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_015r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_015v.json",                
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-57",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-58",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_016r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_0016v.json"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r11-1",
-            "@type": "sc:Range",
-            "label": "Sermon 41, ch. 3-5 d'Augustin (f. 10r-11v)",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_011r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_011v.json"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r11-2",
-            "@type": "sc:Range",
-            "label": "Lacune",
-            "canvases": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-53",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-54"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r11-3",
-            "@type": "sc:Range",
-            "label": "Sermon 41, ch. 7 d'Augustin (f. 12r-12v)",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_012r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_012v.json"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r11-4",
-            "@type": "sc:Range",
-            "label": "Sermon 41, ch. 7 d'Augustin (f. 12r-12v)",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_012r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_012v.json"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r11-5",
-            "@type": "sc:Range",
-            "label": "Sermon 38, ch. 1,1 – 4,6 d'Augustin (f. 12v-13v, 9r-9v)",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_012v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_013r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_013v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_009r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_009v.json"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r11-6",
-            "@type": "sc:Range",
-            "label": "Lacune",
-            "canvases": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-55",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-56"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r11-7",
-            "@type": "sc:Range",
-            "label": "Sermon 38, ch. 5,7 – 8,10 d'Augustin (f. 14r-15v)",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_014r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_014v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_015r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_015v.json"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r11-8",
-            "@type": "sc:Range",
-            "label": "Lacune",
-            "canvases": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-57",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-58"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r11-9",
-            "@type": "sc:Range",
-            "label": "Sermon 20, ch. 1-5 d'Augustin (f. 16r-19r)",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_016r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_016v.json"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r12",
-            "@type": "sc:Range",
-            "label": "Cahier XXVI",
-            "ranges": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r12-1",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r12-2",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r12-3",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r12-4"
-            ],
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_017r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_017v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_018r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_018v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_019r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_019v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_020r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_020v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_021r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_021v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_022r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_022v.json",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-59",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-60",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_023r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_023v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_024r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_024v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_025r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_025v.json"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r12-1",
-            "@type": "sc:Range",
-            "label": "Sermon 20, ch. 1-5 d'Augustin (f. 16r-19r)",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_017r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_017v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_018r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_018v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_019r.json"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r12-2",
-            "@type": "sc:Range",
-            "label": "Sermon 358, ch. 1-6 d'Augustin (f. 19r-22v)",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_019r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_019v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_020r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_020v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_021r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_021v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_022r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_022v.json"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r12-3",
-            "@type": "sc:Range",
-            "label": "Lacune",
-            "canvases": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-59",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-60"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r12-4",
-            "@type": "sc:Range",
-            "label": "Sermon 99, ch. 2-8 d'Augustin (f. 23r-26v)",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_023r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_023v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_024r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_024v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_025r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_025v.json"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r13",
-            "@type": "sc:Range",
-            "label": "Cahier XXVII",
-            "ranges": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r13-1",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r13-2",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r13-3",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r13-4"
-            ],
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_026r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_026v.json",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-61",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-62",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-63",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-64",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-65",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-66",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-67",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-68",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-69",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-70",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-71",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-72",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-73",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-74",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_027r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_027v.json",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-75",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-76"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r13-1",
-            "@type": "sc:Range",
-            "label": "Sermon 99, ch. 2-8 d'Augustin (f. 23r-26v)",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_026r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_026v.json"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r13-2",
-            "@type": "sc:Range",
-            "label": "Lacune",
-            "canvases": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-61",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-62",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-63",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-64",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-65",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-66",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-67",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-68",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-69",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-70",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-71",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-72",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-73",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-74"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r13-3",
-            "@type": "sc:Range",
-            "label": "Sermon 359, ch. 3-4 d'Augustin (f. 27r-27v)",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_027r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_027v.json"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r13-4",
-            "@type": "sc:Range",
-            "label": "Lacune",
-            "canvases": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-75",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-76"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r14",
-            "@type": "sc:Range",
-            "label": "Cahier XXVIII",
-            "ranges": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r14-1",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r14-2"
-            ],
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_028r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_028v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_029r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_029v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_030r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_030v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_031r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_031v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_032r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_032v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_033r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_033v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_034r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_034v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_035r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_035v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_036r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_036v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_037r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_037v.json"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r14-1",
-            "@type": "sc:Range",
-            "label": "Sermon 359, ch. 5-9 d'Augustin (f. 28r-31v)",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_028r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_028v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_029r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_029v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_030r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_030v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_031r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_031v.json"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r14-2",
-            "@type": "sc:Range",
-            "label": "Sermon 81 d'Augustin (f. 31v-39v)",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_031v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_032r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_032v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_033r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_033v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_034r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_034v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_035r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_035v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_036r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_036v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_037r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_037v.json"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r15",
-            "@type": "sc:Range",
-            "label": "Cahier XXIX",
-            "ranges": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r15-1",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r15-2",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r15-3",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r15-4",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r15-5",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r15-6",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r15-7"
-            ],
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_038r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_038v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_039r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_039v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_040r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_040v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_041r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_041v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_042r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_042v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_043r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_043v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_044r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_044v.json",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-77",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-78",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_046r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_046v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_047r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_047v.json"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r15-1",
-            "@type": "sc:Range",
-            "label": "Sermon 81 d'Augustin (f. 31v-39v)",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_038r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_038v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_039r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_039v.json"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r15-2",
-            "@type": "sc:Range",
-            "label": "Sermon 194 d'Augustin (f. 39v-41v)",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_039v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_040r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_040v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_041r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_041v.json"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r15-3",
-            "@type": "sc:Range",
-            "label": "Sermon 374 d'Augustin (f. 42r-44v)",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_042r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_042v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_043r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_043v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_044r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_044v.json"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r15-4",
-            "@type": "sc:Range",
-            "label": "Sermon De die sanctae epiphaniae de Maxime de Turin (début)",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_044v.json"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r15-5",
-            "@type": "sc:Range",
-            "label": "Lacune",
-            "canvases": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-77",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-78"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r15-6",
-            "@type": "sc:Range",
-            "label": "Sermon 352, ch.1,6 d'Augustin (f. 46r-46v)",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_046r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_046v.json"
-             ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r15-7",
-            "@type": "sc:Range",
-            "label": "Enarrationes in Psalmos, Psaume 36 sermon 1, ch. 1-3 d'Augustin (f. 46v-48v)",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_046v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_047r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_047v.json"
-             ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r16",
-            "@type": "sc:Range",
-            "label": "Cahier XXX",
-            "ranges": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r16-1",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r16-2",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r16-3",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r16-4",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r16-5",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r16-6",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r16-7"
-            ],
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_048r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_048v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_049r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_049v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_045r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_045v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_050r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_050v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_051r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_051v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_052r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_052v.json",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-79",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-80",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-81",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-82",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-83",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-84",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_053r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_053v.json"                
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r16-1",
-            "@type": "sc:Range",
-            "label": "Enarrationes in Psalmos, Psaume 36 sermon 1, ch. 1-3 d'Augustin (f. 46v-48v)",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_048r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_048v.json"
-             ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r16-2",
-            "@type": "sc:Range",
-            "label": "De doctrina christiana livre 1, ch.9-15 d'Augustin (f. 48v-49v, 45r-45v)",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_048v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_049r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_049v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_045r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_045v.json"
-             ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r16-3",
-            "@type": "sc:Range",
-            "label": "Enarrationes in Psalmos, Psaume 36 sermon 2 d'Augustin (f. 45v, 50r-52r)",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_045v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_050r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_050v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_051r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_051v.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_052r.json"
-             ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r16-4",
-            "@type": "sc:Range",
-            "label": "Sermon Mai 14, ch. 1 d'Augustin (f. 52r-52v)",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_052r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_052v.json"
-             ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r16-5",
-            "@type": "sc:Range",
-            "label": "Lacune",
-            "canvases": [
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-79",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-80",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-81",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-82",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-83",
-                "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-84"
-            ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r16-6",
-            "@type": "sc:Range",
-            "label": "Enarrationes in Psalmos, Psaume 84 d'Augustin (4 l. du ch.10, f. 53r)",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_053r.json"
-             ]
-        },
-        {
-            "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/range/r16-7",
-            "@type": "sc:Range",
-            "label": "Diverses inscriptions et dessins à la plume (f.53r-53v)",
-            "canvases": [
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_053r.json",
-                "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_053v.json"
-             ]
-        }
-    ],
-    "sequences": [{
-        "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/sequence/normal",
-        "@type": "sc:Sequence",
-        "label": "Normal",
-        "canvases": [
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f13",
-                "@type": "sc:Canvas",
-                "label": "2r (31r)",
-                "width": 4396,
-                "height": 6197,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f13.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f13"
-                        },
-                        "width": 4396,
-                        "height": 6197
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f13"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f14",
-                "@type": "sc:Canvas",
-                "label": "2v (31v)",
-                "width": 4436,
-                "height": 6221,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f14.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f14"
-                        },
-                        "width": 4436,
-                        "height": 6221
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f14"
-                }]
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-1",
-                "@type": "sc:Canvas",
-                "label": "Lacune (32r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-2",
-                "@type": "sc:Canvas",
-                "label": "Lacune (32v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-3",
-                "@type": "sc:Canvas",
-                "label": "Lacune (33r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-4",
-                "@type": "sc:Canvas",
-                "label": "Lacune (33v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-5",
-                "@type": "sc:Canvas",
-                "label": "Lacune (34r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-6",
-                "@type": "sc:Canvas",
-                "label": "Lacune (34v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-7",
-                "@type": "sc:Canvas",
-                "label": "Lacune (35r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-8",
-                "@type": "sc:Canvas",
-                "label": "Lacune (35v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-9",
-                "@type": "sc:Canvas",
-                "label": "Lacune (36r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-10",
-                "@type": "sc:Canvas",
-                "label": "Lacune (36v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-11",
-                "@type": "sc:Canvas",
-                "label": "Lacune (37r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-12",
-                "@type": "sc:Canvas",
-                "label": "Lacune (37v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-13",
-                "@type": "sc:Canvas",
-                "label": "Lacune (38r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-14",
-                "@type": "sc:Canvas",
-                "label": "Lacune (38v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-15",
-                "@type": "sc:Canvas",
-                "label": "Lacune (39r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-16",
-                "@type": "sc:Canvas",
-                "label": "Lacune (39v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f11",
-                "@type": "sc:Canvas",
-                "label": "1r (40r)",
-                "width": 4396,
-                "height": 6197,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f11.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f11"
-                        },
-                        "width": 4396,
-                        "height": 6197
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f11"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f12",
-                "@type": "sc:Canvas",
-                "label": "1v (40v)",
-                "width": 4436,
-                "height": 6221,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f12.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f12"
-                        },
-                        "width": 4436,
-                        "height": 6221
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f12"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f15",
-                "@type": "sc:Canvas",
-                "label": "3r (41r)",
-                "width": 4396,
-                "height": 6197,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f15.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f15"
-                        },
-                        "width": 4396,
-                        "height": 6197
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f15"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f16",
-                "@type": "sc:Canvas",
-                "label": "3v (41v)",
-                "width": 4405,
-                "height": 6240,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f16.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f16"
-                        },
-                        "width": 4405,
-                        "height": 6240
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f16"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f17",
-                "@type": "sc:Canvas",
-                "label": "4r (42r)",
-                "width": 4413,
-                "height": 6172,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f17.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f17"
-                        },
-                        "width": 4413,
-                        "height": 6172
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f17"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f18",
-                "@type": "sc:Canvas",
-                "label": "4v (42v)",
-                "width": 4405,
-                "height": 6240,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f18.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f18"
-                        },
-                        "width": 4405,
-                        "height": 6240
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f18"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f19",
-                "@type": "sc:Canvas",
-                "label": "5r (43r)",
-                "width": 4413,
-                "height": 6191,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f19.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f19"
-                        },
-                        "width": 4413,
-                        "height": 6191
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f19"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f20",
-                "@type": "sc:Canvas",
-                "label": "5v (43v)",
-                "width": 4379,
-                "height": 6240,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f20.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f20"
-                        },
-                        "width": 4379,
-                        "height": 6240
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f20"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f21",
-                "@type": "sc:Canvas",
-                "label": "6r (44r)",
-                "width": 4413,
-                "height": 6197,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f21.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f21"
-                        },
-                        "width": 4413,
-                        "height": 6197
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f21"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f22",
-                "@type": "sc:Canvas",
-                "label": "6v (44v)",
-                "width": 4379,
-                "height": 6240,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f22.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f22"
-                        },
-                        "width": 4379,
-                        "height": 6240
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f22"
-                }]
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-17",
-                "@type": "sc:Canvas",
-                "label": "Lacune (45r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-18",
-                "@type": "sc:Canvas",
-                "label": "Lacune (45v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-19",
-                "@type": "sc:Canvas",
-                "label": "Lacune (46r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-20",
-                "@type": "sc:Canvas",
-                "label": "Lacune (46v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f23",
-                "@type": "sc:Canvas",
-                "label": "7r (47r)",
-                "width": 4417,
-                "height": 6214,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f23.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f23"
-                        },
-                        "width": 4417,
-                        "height": 6214
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f23"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f24",
-                "@type": "sc:Canvas",
-                "label": "7v (47v)",
-                "width": 4379,
-                "height": 6240,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f24.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f24"
-                        },
-                        "width": 4379,
-                        "height": 6240
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f24"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f25",
-                "@type": "sc:Canvas",
-                "label": "8r (48r)",
-                "width": 4397,
-                "height": 6214,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f25.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f25"
-                        },
-                        "width": 4397,
-                        "height": 6214
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f25"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f26",
-                "@type": "sc:Canvas",
-                "label": "8v (48v)",
-                "width": 4379,
-                "height": 6240,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f26.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f26"
-                        },
-                        "width": 4379,
-                        "height": 6240
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f26"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f27",
-                "@type": "sc:Canvas",
-                "label": "9r (49r)",
-                "width": 4380,
-                "height": 6191,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f27.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f27"
-                        },
-                        "width": 4380,
-                        "height": 6191
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f27"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f28",
-                "@type": "sc:Canvas",
-                "label": "9v (49v)",
-                "width": 4365,
-                "height": 6240,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f28.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f28"
-                        },
-                        "width": 4365,
-                        "height": 6240
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f28"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f29",
-                "@type": "sc:Canvas",
-                "label": "10r (50r)",
-                "width": 4345,
-                "height": 6182,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f29.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f29"
-                        },
-                        "width": 4345,
-                        "height": 6182
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f29"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f30",
-                "@type": "sc:Canvas",
-                "label": "10v (50v)",
-                "width": 4317,
-                "height": 6240,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f30.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f30"
-                        },
-                        "width": 4317,
-                        "height": 6240
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f30"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f31",
-                "@type": "sc:Canvas",
-                "label": "11r (51r)",
-                "width": 4286,
-                "height": 6162,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f31.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f31"
-                        },
-                        "width": 4286,
-                        "height": 6162
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f31"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f32",
-                "@type": "sc:Canvas",
-                "label": "11v (51v)",
-                "width": 4292,
-                "height": 6240,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f32.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f32"
-                        },
-                        "width": 4292,
-                        "height": 6240
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f32"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f33",
-                "@type": "sc:Canvas",
-                "label": "12r (52r)",
-                "width": 4368,
-                "height": 6173,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f33.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f33"
-                        },
-                        "width": 4368,
-                        "height": 6173
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f33"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f34",
-                "@type": "sc:Canvas",
-                "label": "12v (52v)",
-                "width": 4311,
-                "height": 6240,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f34.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f34"
-                        },
-                        "width": 4311,
-                        "height": 6240
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f34"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f35",
-                "@type": "sc:Canvas",
-                "label": "13r (53r)",
-                "width": 4330,
-                "height": 6193,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f35.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f35"
-                        },
-                        "width": 4330,
-                        "height": 6193
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f35"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f36",
-                "@type": "sc:Canvas",
-                "label": "13v (53v)",
-                "width": 4311,
-                "height": 6240,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f36.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f36"
-                        },
-                        "width": 4311,
-                        "height": 6240
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f36"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f37",
-                "@type": "sc:Canvas",
-                "label": "14r (54r)",
-                "width": 4361,
-                "height": 6163,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f37.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f37"
-                        },
-                        "width": 4361,
-                        "height": 6163
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f37"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f38",
-                "@type": "sc:Canvas",
-                "label": "14v (54v)",
-                "width": 4288,
-                "height": 6240,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f38.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f38"
-                        },
-                        "width": 4288,
-                        "height": 6240
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f38"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f39",
-                "@type": "sc:Canvas",
-                "label": "15r (55r)",
-                "width": 4313,
-                "height": 6163,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f39.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f39"
-                        },
-                        "width": 4313,
-                        "height": 6163
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f39"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f40",
-                "@type": "sc:Canvas",
-                "label": "15v (55v)",
-                "width": 4254,
-                "height": 6240,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f40.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f40"
-                        },
-                        "width": 4254,
-                        "height": 6240
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f40"
-                }]
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-21",
-                "@type": "sc:Canvas",
-                "label": "Lacune (56r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-22",
-                "@type": "sc:Canvas",
-                "label": "Lacune (56v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f41",
-                "@type": "sc:Canvas",
-                "label": "16r (57r)",
-                "width": 4313,
-                "height": 6148,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f41.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f41"
-                        },
-                        "width": 4313,
-                        "height": 6148
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f41"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f42",
-                "@type": "sc:Canvas",
-                "label": "16v (57v)",
-                "width": 4254,
-                "height": 6240,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f42.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f42"
-                        },
-                        "width": 4254,
-                        "height": 6240
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f42"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f43",
-                "@type": "sc:Canvas",
-                "label": "17r (58r)",
-                "width": 4274,
-                "height": 6171,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f43.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f43"
-                        },
-                        "width": 4274,
-                        "height": 6171
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f43"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f44",
-                "@type": "sc:Canvas",
-                "label": "17v (58v)",
-                "width": 4254,
-                "height": 6240,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f44.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f44"
-                        },
-                        "width": 4254,
-                        "height": 6240
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f44"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f45",
-                "@type": "sc:Canvas",
-                "label": "NP",
-                "width": 4275,
-                "height": 6171,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f45.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f45"
-                        },
-                        "width": 4275,
-                        "height": 6171
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f45"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f46",
-                "@type": "sc:Canvas",
-                "label": "NP",
-                "width": 4274,
-                "height": 6240,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f46.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f46"
-                        },
-                        "width": 4274,
-                        "height": 6240
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f46"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f47",
-                "@type": "sc:Canvas",
-                "label": "18r (59r)",
-                "width": 4286,
-                "height": 6166,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f47.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f47"
-                        },
-                        "width": 4286,
-                        "height": 6166
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f47"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f48",
-                "@type": "sc:Canvas",
-                "label": "18v (59v)",
-                "width": 4249,
-                "height": 6235,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f48.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f48"
-                        },
-                        "width": 4249,
-                        "height": 6235
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f48"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f49",
-                "@type": "sc:Canvas",
-                "label": "19r (60r)",
-                "width": 4263,
-                "height": 6130,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f49.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f49"
-                        },
-                        "width": 4263,
-                        "height": 6130
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f49"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f50",
-                "@type": "sc:Canvas",
-                "label": "19v (60v)",
-                "width": 4239,
-                "height": 6221,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f50.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f50"
-                        },
-                        "width": 4239,
-                        "height": 6221
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f50"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f51",
-                "@type": "sc:Canvas",
-                "label": "20r (61r)",
-                "width": 4236,
-                "height": 6162,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f51.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f51"
-                        },
-                        "width": 4236,
-                        "height": 6162
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f51"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f52",
-                "@type": "sc:Canvas",
-                "label": "20v (61v)",
-                "width": 4239,
-                "height": 6221,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f52.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f52"
-                        },
-                        "width": 4239,
-                        "height": 6221
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f52"
-                }]
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-23",
-                "@type": "sc:Canvas",
-                "label": "Lacune (62r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-24",
-                "@type": "sc:Canvas",
-                "label": "Lacune (62v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-25",
-                "@type": "sc:Canvas",
-                "label": "Lacune (63r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-26",
-                "@type": "sc:Canvas",
-                "label": "Lacune (63v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f53",
-                "@type": "sc:Canvas",
-                "label": "21r (64r)",
-                "width": 4265,
-                "height": 6157,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f53.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f53"
-                        },
-                        "width": 4265,
-                        "height": 6157
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f53"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f54",
-                "@type": "sc:Canvas",
-                "label": "21v (64v)",
-                "width": 4239,
-                "height": 6269,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f54.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f54"
-                        },
-                        "width": 4239,
-                        "height": 6269
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f54"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f55",
-                "@type": "sc:Canvas",
-                "label": "22r (65r)",
-                "width": 4306,
-                "height": 6197,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f55.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f55"
-                        },
-                        "width": 4306,
-                        "height": 6197
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f55"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f56",
-                "@type": "sc:Canvas",
-                "label": "22v (65v)",
-                "width": 4211,
-                "height": 6217,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f56.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f56"
-                        },
-                        "width": 4211,
-                        "height": 6217
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f56"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f57",
-                "@type": "sc:Canvas",
-                "label": "23r (66r)",
-                "width": 4286,
-                "height": 6162,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f57.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f57"
-                        },
-                        "width": 4286,
-                        "height": 6162
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f57"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f58",
-                "@type": "sc:Canvas",
-                "label": "23v (66v)",
-                "width": 4202,
-                "height": 6217,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f58.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f58"
-                        },
-                        "width": 4202,
-                        "height": 6217
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f58"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f59",
-                "@type": "sc:Canvas",
-                "label": "24r (67r)",
-                "width": 4262,
-                "height": 6162,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f59.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f59"
-                        },
-                        "width": 4262,
-                        "height": 6162
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f59"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f60",
-                "@type": "sc:Canvas",
-                "label": "24v (67v)",
-                "width": 4185,
-                "height": 6210,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f60.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f60"
-                        },
-                        "width": 4185,
-                        "height": 6210
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f60"
-                }]
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-27",
-                "@type": "sc:Canvas",
-                "label": "Lacune (68r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-28",
-                "@type": "sc:Canvas",
-                "label": "Lacune (68v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-29",
-                "@type": "sc:Canvas",
-                "label": "Lacune (69r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-30",
-                "@type": "sc:Canvas",
-                "label": "Lacune (69v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f61",
-                "@type": "sc:Canvas",
-                "label": "25r (70r)",
-                "width": 4276,
-                "height": 6140,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f61.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f61"
-                        },
-                        "width": 4276,
-                        "height": 6140
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f61"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f62",
-                "@type": "sc:Canvas",
-                "label": "25v (70v)",
-                "width": 4152,
-                "height": 6210,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f62.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f62"
-                        },
-                        "width": 4152,
-                        "height": 6210
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f62"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f63",
-                "@type": "sc:Canvas",
-                "label": "26r (71r)",
-                "width": 4288,
-                "height": 6194,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f63.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f63"
-                        },
-                        "width": 4288,
-                        "height": 6194
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f63"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f64",
-                "@type": "sc:Canvas",
-                "label": "26v (71v)",
-                "width": 4128,
-                "height": 6210,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f64.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f64"
-                        },
-                        "width": 4128,
-                        "height": 6210
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f64"
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/nlr-lat-F-I-1_a.json",
-                "@type": "sc:Canvas",
-                "label": "a (72r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/nlr-lat-F-I-1_a.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/nlr-lat-F-I-1_a.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/nlr/nlr-lat-F-I-1/nlr-lat-F-I-1_a.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/nlr/nlr-lat-F-I-1/nlr-lat-F-I-1_a.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/nlr-lat-F-I-1_b.json",
-                "@type": "sc:Canvas",
-                "label": "b (72v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/nlr-lat-F-I-1_b.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/nlr-lat-F-I-1_b.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/nlr/nlr-lat-F-I-1/nlr-lat-F-I-1_b.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/nlr/nlr-lat-F-I-1/nlr-lat-F-I-1_b.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f65",
-                "@type": "sc:Canvas",
-                "label": "27r (73r)",
-                "width": 4340,
-                "height": 6194,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f65.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f65"
-                        },
-                        "width": 4340,
-                        "height": 6194
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f65"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f66",
-                "@type": "sc:Canvas",
-                "label": "27v (73v)",
-                "width": 4176,
-                "height": 6210,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f66.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f66"
-                        },
-                        "width": 4176,
-                        "height": 6210
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f66"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f67",
-                "@type": "sc:Canvas",
-                "label": "28r (74r)",
-                "width": 4375,
-                "height": 6243,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f67.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f67"
-                        },
-                        "width": 4375,
-                        "height": 6243
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f67"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f68",
-                "@type": "sc:Canvas",
-                "label": "28v (74v)",
-                "width": 4160,
-                "height": 6242,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f68.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f68"
-                        },
-                        "width": 4160,
-                        "height": 6242
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f68"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f69",
-                "@type": "sc:Canvas",
-                "label": "29r (75r)",
-                "width": 4359,
-                "height": 6243,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f69.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f69"
-                        },
-                        "width": 4359,
-                        "height": 6243
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f69"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f70",
-                "@type": "sc:Canvas",
-                "label": "29v (75v)",
-                "width": 4160,
-                "height": 6242,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f70.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f70"
-                        },
-                        "width": 4160,
-                        "height": 6242
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f70"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f71",
-                "@type": "sc:Canvas",
-                "label": "30r (76r)",
-                "width": 4308,
-                "height": 6207,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f71.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f71"
-                        },
-                        "width": 4308,
-                        "height": 6207
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f71"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f72",
-                "@type": "sc:Canvas",
-                "label": "30v (76v)",
-                "width": 4160,
-                "height": 6234,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f72.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f72"
-                        },
-                        "width": 4160,
-                        "height": 6234
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f72"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f73",
-                "@type": "sc:Canvas",
-                "label": "31r (77r)",
-                "width": 4339,
-                "height": 6207,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f73.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f73"
-                        },
-                        "width": 4339,
-                        "height": 6207
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f73"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f74",
-                "@type": "sc:Canvas",
-                "label": "31v (77v)",
-                "width": 4160,
-                "height": 6209,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f74.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f74"
-                        },
-                        "width": 4160,
-                        "height": 6209
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f74"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f75",
-                "@type": "sc:Canvas",
-                "label": "32r (78r)",
-                "width": 4339,
-                "height": 6207,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f75.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f75"
-                        },
-                        "width": 4339,
-                        "height": 6207
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f75"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f76",
-                "@type": "sc:Canvas",
-                "label": "32v (78v)",
-                "width": 4136,
-                "height": 6192,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f76.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f76"
-                        },
-                        "width": 4136,
-                        "height": 6192
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f76"
-                }]
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-31",
-                "@type": "sc:Canvas",
-                "label": "Lacune (79r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-32",
-                "@type": "sc:Canvas",
-                "label": "Lacune (79v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f77",
-                "@type": "sc:Canvas",
-                "label": "33r (80r)",
-                "width": 4321,
-                "height": 6197,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f77.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f77"
-                        },
-                        "width": 4321,
-                        "height": 6197
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f77"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f78",
-                "@type": "sc:Canvas",
-                "label": "33v (80v)",
-                "width": 4104,
-                "height": 6166,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f78.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f78"
-                        },
-                        "width": 4104,
-                        "height": 6166
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f78"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f79",
-                "@type": "sc:Canvas",
-                "label": "34r (81r)",
-                "width": 4321,
-                "height": 6197,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f79.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f79"
-                        },
-                        "width": 4321,
-                        "height": 6197
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f79"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f80",
-                "@type": "sc:Canvas",
-                "label": "34v (81v)",
-                "width": 4136,
-                "height": 6224,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f80.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f80"
-                        },
-                        "width": 4136,
-                        "height": 6224
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f80"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f81",
-                "@type": "sc:Canvas",
-                "label": "35r (82r)",
-                "width": 4289,
-                "height": 6150,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f81.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f81"
-                        },
-                        "width": 4289,
-                        "height": 6150
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f81"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f82",
-                "@type": "sc:Canvas",
-                "label": "35v (82v)",
-                "width": 4299,
-                "height": 6188,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f82.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f82"
-                        },
-                        "width": 4299,
-                        "height": 6188
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f82"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f83",
-                "@type": "sc:Canvas",
-                "label": "36r (83r)",
-                "width": 4331,
-                "height": 6200,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f83.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f83"
-                        },
-                        "width": 4331,
-                        "height": 6200
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f83"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f84",
-                "@type": "sc:Canvas",
-                "label": "36v (83v)",
-                "width": 4306,
-                "height": 6211,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f84.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f84"
-                        },
-                        "width": 4306,
-                        "height": 6211
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f84"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f85",
-                "@type": "sc:Canvas",
-                "label": "37r (84r)",
-                "width": 4310,
-                "height": 6200,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f85.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f85"
-                        },
-                        "width": 4310,
-                        "height": 6200
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f85"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f86",
-                "@type": "sc:Canvas",
-                "label": "37v (84v)",
-                "width": 4327,
-                "height": 6233,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f86.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f86"
-                        },
-                        "width": 4327,
-                        "height": 6233
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f86"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f87",
-                "@type": "sc:Canvas",
-                "label": "38r (85r)",
-                "width": 4310,
-                "height": 6200,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f87.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f87"
-                        },
-                        "width": 4310,
-                        "height": 6200
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f87"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f88",
-                "@type": "sc:Canvas",
-                "label": "38v (85v)",
-                "width": 4334,
-                "height": 6245,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f88.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f88"
-                        },
-                        "width": 4334,
-                        "height": 6245
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f88"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f89",
-                "@type": "sc:Canvas",
-                "label": "39r (86r)",
-                "width": 4328,
-                "height": 6233,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f89.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f89"
-                        },
-                        "width": 4328,
-                        "height": 6233
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f89"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f90",
-                "@type": "sc:Canvas",
-                "label": "39v (86v)",
-                "width": 4344,
-                "height": 6237,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f90.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f90"
-                        },
-                        "width": 4344,
-                        "height": 6237
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f90"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f91",
-                "@type": "sc:Canvas",
-                "label": "40r (87r)",
-                "width": 4337,
-                "height": 6221,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f91.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f91"
-                        },
-                        "width": 4337,
-                        "height": 6221
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f91"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f92",
-                "@type": "sc:Canvas",
-                "label": "40v (87v)",
-                "width": 4340,
-                "height": 6217,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f92.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f92"
-                        },
-                        "width": 4340,
-                        "height": 6217
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f92"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f93",
-                "@type": "sc:Canvas",
-                "label": "41r (88r)",
-                "width": 4337,
-                "height": 6201,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f93.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f93"
-                        },
-                        "width": 4337,
-                        "height": 6201
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f93"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f94",
-                "@type": "sc:Canvas",
-                "label": "41v (88v)",
-                "width": 4348,
-                "height": 6271,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f94.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f94"
-                        },
-                        "width": 4348,
-                        "height": 6271
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f94"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f95",
-                "@type": "sc:Canvas",
-                "label": "42r (89r)",
-                "width": 4372,
-                "height": 6201,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f95.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f95"
-                        },
-                        "width": 4372,
-                        "height": 6201
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f95"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f96",
-                "@type": "sc:Canvas",
-                "label": "42v (89v)",
-                "width": 4348,
-                "height": 6271,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f96.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f96"
-                        },
-                        "width": 4348,
-                        "height": 6271
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f96"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f97",
-                "@type": "sc:Canvas",
-                "label": "43r (90r)",
-                "width": 4329,
-                "height": 6178,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f97.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f97"
-                        },
-                        "width": 4329,
-                        "height": 6178
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f97"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f98",
-                "@type": "sc:Canvas",
-                "label": "43v (90v)",
-                "width": 4348,
-                "height": 6222,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f98.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f98"
-                        },
-                        "width": 4348,
-                        "height": 6222
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f98"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f99",
-                "@type": "sc:Canvas",
-                "label": "44r (91r)",
-                "width": 4304,
-                "height": 6175,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f99.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f99"
-                        },
-                        "width": 4304,
-                        "height": 6175
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f99"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f100",
-                "@type": "sc:Canvas",
-                "label": "44v (91v)",
-                "width": 4373,
-                "height": 6222,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f100.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f100"
-                        },
-                        "width": 4373,
-                        "height": 6222
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f100"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f101",
-                "@type": "sc:Canvas",
-                "label": "45r (92r)",
-                "width": 4333,
-                "height": 6173,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f101.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f101"
-                        },
-                        "width": 4333,
-                        "height": 6173
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f101"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f102",
-                "@type": "sc:Canvas",
-                "label": "45v (92v)",
-                "width": 4379,
-                "height": 6280,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f102.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f102"
-                        },
-                        "width": 4379,
-                        "height": 6280
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f102"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f103",
-                "@type": "sc:Canvas",
-                "label": "46r (93r)",
-                "width": 4292,
-                "height": 6199,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f103.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f103"
-                        },
-                        "width": 4292,
-                        "height": 6199
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f103"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f104",
-                "@type": "sc:Canvas",
-                "label": "46v (93v)",
-                "width": 4353,
-                "height": 6271,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f104.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f104"
-                        },
-                        "width": 4353,
-                        "height": 6271
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f104"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f105",
-                "@type": "sc:Canvas",
-                "label": "47r (94r)",
-                "width": 4312,
-                "height": 6203,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f105.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f105"
-                        },
-                        "width": 4312,
-                        "height": 6203
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f105"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f106",
-                "@type": "sc:Canvas",
-                "label": "47v (94v)",
-                "width": 4353,
-                "height": 6256,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f106.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f106"
-                        },
-                        "width": 4353,
-                        "height": 6256
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f106"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f107",
-                "@type": "sc:Canvas",
-                "label": "48r (95r)",
-                "width": 4312,
-                "height": 6203,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f107.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f107"
-                        },
-                        "width": 4312,
-                        "height": 6203
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f107"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f108",
-                "@type": "sc:Canvas",
-                "label": "48v (95v)",
-                "width": 4353,
-                "height": 6282,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f108.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f108"
-                        },
-                        "width": 4353,
-                        "height": 6282
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f108"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f109",
-                "@type": "sc:Canvas",
-                "label": "49r (96r)",
-                "width": 4388,
-                "height": 6271,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f109.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f109"
-                        },
-                        "width": 4388,
-                        "height": 6271
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f109"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f110",
-                "@type": "sc:Canvas",
-                "label": "49v (96v)",
-                "width": 4365,
-                "height": 6273,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f110.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f110"
-                        },
-                        "width": 4365,
-                        "height": 6273
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f110"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f111",
-                "@type": "sc:Canvas",
-                "label": "50r (97r)",
-                "width": 4371,
-                "height": 6255,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f111.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f111"
-                        },
-                        "width": 4371,
-                        "height": 6255
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f111"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f112",
-                "@type": "sc:Canvas",
-                "label": "50v (97v)",
-                "width": 4353,
-                "height": 6248,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f112.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f112"
-                        },
-                        "width": 4353,
-                        "height": 6248
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f112"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f113",
-                "@type": "sc:Canvas",
-                "label": "51r (98r)",
-                "width": 4371,
-                "height": 6255,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f113.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f113"
-                        },
-                        "width": 4371,
-                        "height": 6255
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f113"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f114",
-                "@type": "sc:Canvas",
-                "label": "51v (98v)",
-                "width": 4372,
-                "height": 6265,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f114.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f114"
-                        },
-                        "width": 4372,
-                        "height": 6265
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f114"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f115",
-                "@type": "sc:Canvas",
-                "label": "52r (99r)",
-                "width": 4385,
-                "height": 6261,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f115.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f115"
-                        },
-                        "width": 4385,
-                        "height": 6261
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f115"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f116",
-                "@type": "sc:Canvas",
-                "label": "52v (99v)",
-                "width": 4372,
-                "height": 6265,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f116.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f116"
-                        },
-                        "width": 4372,
-                        "height": 6265
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f116"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f117",
-                "@type": "sc:Canvas",
-                "label": "53r (100r)",
-                "width": 4367,
-                "height": 6256,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f117.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f117"
-                        },
-                        "width": 4367,
-                        "height": 6256
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f117"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f118",
-                "@type": "sc:Canvas",
-                "label": "53v (100v)",
-                "width": 4348,
-                "height": 6265,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f118.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f118"
-                        },
-                        "width": 4348,
-                        "height": 6265
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f118"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f119",
-                "@type": "sc:Canvas",
-                "label": "54r (101r)",
-                "width": 4367,
-                "height": 6182,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f119.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f119"
-                        },
-                        "width": 4367,
-                        "height": 6182
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f119"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f120",
-                "@type": "sc:Canvas",
-                "label": "54v (101v)",
-                "width": 4348,
-                "height": 6238,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f120.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f120"
-                        },
-                        "width": 4348,
-                        "height": 6238
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f120"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f121",
-                "@type": "sc:Canvas",
-                "label": "55r (102r)",
-                "width": 4371,
-                "height": 6255,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f121.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f121"
-                        },
-                        "width": 4371,
-                        "height": 6255
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f121"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f122",
-                "@type": "sc:Canvas",
-                "label": "55v (102v)",
-                "width": 4348,
-                "height": 6216,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f122.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f122"
-                        },
-                        "width": 4348,
-                        "height": 6216
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f122"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f123",
-                "@type": "sc:Canvas",
-                "label": "56r (103r)",
-                "width": 4371,
-                "height": 6230,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f123.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f123"
-                        },
-                        "width": 4371,
-                        "height": 6230
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f123"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f124",
-                "@type": "sc:Canvas",
-                "label": "56v (103v)",
-                "width": 4382,
-                "height": 6256,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f124.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f124"
-                        },
-                        "width": 4382,
-                        "height": 6256
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f124"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f125",
-                "@type": "sc:Canvas",
-                "label": "57r (104r)",
-                "width": 4407,
-                "height": 6230,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f125.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f125"
-                        },
-                        "width": 4407,
-                        "height": 6230
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f125"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f126",
-                "@type": "sc:Canvas",
-                "label": "57v (104v)",
-                "width": 4382,
-                "height": 6256,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f126.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f126"
-                        },
-                        "width": 4382,
-                        "height": 6256
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f126"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f127",
-                "@type": "sc:Canvas",
-                "label": "58r (105r)",
-                "width": 4409,
-                "height": 6254,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f127.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f127"
-                        },
-                        "width": 4409,
-                        "height": 6254
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f127"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f128",
-                "@type": "sc:Canvas",
-                "label": "58v (105v)",
-                "width": 4382,
-                "height": 6256,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f128.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f128"
-                        },
-                        "width": 4382,
-                        "height": 6256
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f128"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f129",
-                "@type": "sc:Canvas",
-                "label": "59r (106r)",
-                "width": 4399,
-                "height": 6255,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f129.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f129"
-                        },
-                        "width": 4399,
-                        "height": 6255
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f129"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f130",
-                "@type": "sc:Canvas",
-                "label": "59v (106v)",
-                "width": 4382,
-                "height": 6256,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f130.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f130"
-                        },
-                        "width": 4382,
-                        "height": 6256
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f130"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f131",
-                "@type": "sc:Canvas",
-                "label": "60r (107r)",
-                "width": 4407,
-                "height": 6223,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f131.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f131"
-                        },
-                        "width": 4407,
-                        "height": 6223
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f131"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f132",
-                "@type": "sc:Canvas",
-                "label": "60v (107v)",
-                "width": 4382,
-                "height": 6229,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f132.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f132"
-                        },
-                        "width": 4382,
-                        "height": 6229
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f132"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f133",
-                "@type": "sc:Canvas",
-                "label": "61r (108r)",
-                "width": 4404,
-                "height": 6233,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f133.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f133"
-                        },
-                        "width": 4404,
-                        "height": 6233
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f133"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f134",
-                "@type": "sc:Canvas",
-                "label": "61v (108v)",
-                "width": 4391,
-                "height": 6229,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f134.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f134"
-                        },
-                        "width": 4391,
-                        "height": 6229
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f134"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f135",
-                "@type": "sc:Canvas",
-                "label": "62r (109r)",
-                "width": 4436,
-                "height": 6199,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f135.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f135"
-                        },
-                        "width": 4436,
-                        "height": 6199
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f135"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f136",
-                "@type": "sc:Canvas",
-                "label": "62v (109v)",
-                "width": 4411,
-                "height": 6250,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f136.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f136"
-                        },
-                        "width": 4411,
-                        "height": 6250
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f136"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f137",
-                "@type": "sc:Canvas",
-                "label": "63r (110r)",
-                "width": 4422,
-                "height": 6148,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f137.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f137"
-                        },
-                        "width": 4422,
-                        "height": 6148
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f137"
-                }]
-            },
-            {
-                "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f138",
-                "@type": "sc:Canvas",
-                "label": "63v (110v)",
-                "width": 4421,
-                "height": 6191,
-                "images": [{
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "resource": {
-                        "@id": "http://gallica.bnf.fr/ark:/12148/btv1b8438674r/f138.highres",
-                        "format": "image/jpg",
-                        "@type": "dctypes:Image",
-                        "service": {
-                            "@context": "http://library.stanford.edu/iiif/image-api/1.1/context.json",
-                            "profile": "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2",
-                            "@id": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/f138"
-                        },
-                        "width": 4421,
-                        "height": 6191
-                    },
-                    "on": "http://gallica.bnf.fr/iiif/ark:/12148/btv1b8438674r/canvas/f138"
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_001r.json",
-                "@type": "sc:Canvas",
-                "label": "1r (221r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_001r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_001r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_001r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_001r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_001v.json",
-                "@type": "sc:Canvas",
-                "label": "1v (221v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_001v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_001v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_001v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_001v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_002ar.json",
-                "@type": "sc:Canvas",
-                "label": "2ar (222r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_002ar.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_002ar.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_002ar.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_002ar.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_002av.json",
-                "@type": "sc:Canvas",
-                "label": "2av (222v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_002av.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_002av.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_002av.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_002av.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-33",
-                "@type": "sc:Canvas",
-                "label": "Lacune (223r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-34",
-                "@type": "sc:Canvas",
-                "label": "Lacune (223v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-35",
-                "@type": "sc:Canvas",
-                "label": "Lacune (224r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-36",
-                "@type": "sc:Canvas",
-                "label": "Lacune (224v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-37",
-                "@type": "sc:Canvas",
-                "label": "Lacune (225r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-38",
-                "@type": "sc:Canvas",
-                "label": "Lacune (225v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-39",
-                "@type": "sc:Canvas",
-                "label": "Lacune (226r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-40",
-                "@type": "sc:Canvas",
-                "label": "Lacune (226v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-41",
-                "@type": "sc:Canvas",
-                "label": "Lacune (227r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-42",
-                "@type": "sc:Canvas",
-                "label": "Lacune (227v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-43",
-                "@type": "sc:Canvas",
-                "label": "Lacune (228r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-44",
-                "@type": "sc:Canvas",
-                "label": "Lacune (228v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_002r.json",
-                "@type": "sc:Canvas",
-                "label": "2r (229r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_002r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_002r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_002r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_002r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_002v.json",
-                "@type": "sc:Canvas",
-                "label": "2v (229v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_002v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_002v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_002v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_002v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_003r.json",
-                "@type": "sc:Canvas",
-                "label": "3r (230r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_003r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_003r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_003r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_003r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_003v.json",
-                "@type": "sc:Canvas",
-                "label": "3v (230v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_003v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_003v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_003v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_003v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_004r.json",
-                "@type": "sc:Canvas",
-                "label": "4r (231r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_004r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_004r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_004r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_004r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_004v.json",
-                "@type": "sc:Canvas",
-                "label": "4v (231v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_004v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_004v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_004v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_004v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-45",
-                "@type": "sc:Canvas",
-                "label": "Lacune (232r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-46",
-                "@type": "sc:Canvas",
-                "label": "Lacune (232v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_005r.json",
-                "@type": "sc:Canvas",
-                "label": "5r (233r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_005r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_005r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_005r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_005r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_005v.json",
-                "@type": "sc:Canvas",
-                "label": "5v (233v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_005v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_005v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_005v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_005v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-47",
-                "@type": "sc:Canvas",
-                "label": "Lacune (234r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-48",
-                "@type": "sc:Canvas",
-                "label": "Lacune (234v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_006r.json",
-                "@type": "sc:Canvas",
-                "label": "6r (235r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_006r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_006r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_006r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_006r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_006v.json",
-                "@type": "sc:Canvas",
-                "label": "6v (235v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_006v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_006v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_006v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_006v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_007r.json",
-                "@type": "sc:Canvas",
-                "label": "7r (236r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_007r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_007r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_007r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_007r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_007v.json",
-                "@type": "sc:Canvas",
-                "label": "7v (236v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_007v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_007v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_007v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_007v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-49",
-                "@type": "sc:Canvas",
-                "label": "Lacune (237r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-50",
-                "@type": "sc:Canvas",
-                "label": "Lacune (237v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_008r.json",
-                "@type": "sc:Canvas",
-                "label": "8r (238r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_008r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_008r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_008r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_008r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_008v.json",
-                "@type": "sc:Canvas",
-                "label": "8v (238v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_008v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_008v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_008v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_008v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-51",
-                "@type": "sc:Canvas",
-                "label": "Lacune (239r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-52",
-                "@type": "sc:Canvas",
-                "label": "Lacune (239v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_010r.json",
-                "@type": "sc:Canvas",
-                "label": "10r (240r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_010r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_010r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_010r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_010r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_010v.json",
-                "@type": "sc:Canvas",
-                "label": "10v (240v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_010v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_010v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_010v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_010v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_011r.json",
-                "@type": "sc:Canvas",
-                "label": "11r (241r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_011r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_011r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_011r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_011r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_011v.json",
-                "@type": "sc:Canvas",
-                "label": "11v (241v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_011v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_011v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_011v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_011v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-53",
-                "@type": "sc:Canvas",
-                "label": "Lacune (242r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-54",
-                "@type": "sc:Canvas",
-                "label": "Lacune (242v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_012r.json",
-                "@type": "sc:Canvas",
-                "label": "12r (243r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_012r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_012r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_012r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_012r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_012v.json",
-                "@type": "sc:Canvas",
-                "label": "12v (243v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_012v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_012v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_012v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_012v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_013r.json",
-                "@type": "sc:Canvas",
-                "label": "13r (244r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_013r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_013r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_013r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_013r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_013v.json",
-                "@type": "sc:Canvas",
-                "label": "13v (244v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_013v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_013v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_013v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_013v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_009r.json",
-                "@type": "sc:Canvas",
-                "label": "9r (245r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_009r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_009r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_009r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_009r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_009v.json",
-                "@type": "sc:Canvas",
-                "label": "9v (245v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_009v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_009v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_009v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_009v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-55",
-                "@type": "sc:Canvas",
-                "label": "Lacune (246r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-56",
-                "@type": "sc:Canvas",
-                "label": "Lacune (246v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_014r.json",
-                "@type": "sc:Canvas",
-                "label": "14r (247r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_014r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_014r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_014r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_014r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_014v.json",
-                "@type": "sc:Canvas",
-                "label": "14v (247v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_014v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_014v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_014v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_014v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_015r.json",
-                "@type": "sc:Canvas",
-                "label": "15r (248r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_015r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_015r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_015r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_015r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_015v.json",
-                "@type": "sc:Canvas",
-                "label": "15v (248v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_015v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_015v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_015v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_015v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-57",
-                "@type": "sc:Canvas",
-                "label": "Lacune (249r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-58",
-                "@type": "sc:Canvas",
-                "label": "Lacune (249v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_016r.json",
-                "@type": "sc:Canvas",
-                "label": "16r (250r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_016r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_016r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_016r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_016r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_016v.json",
-                "@type": "sc:Canvas",
-                "label": "16v (250v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_016v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_016v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_016v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_016v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_017r.json",
-                "@type": "sc:Canvas",
-                "label": "17r (251r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_017r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_017r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_017r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_017r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_017v.json",
-                "@type": "sc:Canvas",
-                "label": "17v (251v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_017v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_017v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_017v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_017v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_018r.json",
-                "@type": "sc:Canvas",
-                "label": "18r (252r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_018r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_018r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_018r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_018r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_018v.json",
-                "@type": "sc:Canvas",
-                "label": "18v (252v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_018v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_018v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_018v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_018v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_019r.json",
-                "@type": "sc:Canvas",
-                "label": "19r (253r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_019r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_019r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_019r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_019r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_019v.json",
-                "@type": "sc:Canvas",
-                "label": "19v (253v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_019v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_019v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_019v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_019v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_020r.json",
-                "@type": "sc:Canvas",
-                "label": "20r (254r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_020r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_020r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_020r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_020r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_020v.json",
-                "@type": "sc:Canvas",
-                "label": "20v (254v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_020v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_020v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_020v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_020v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_021r.json",
-                "@type": "sc:Canvas",
-                "label": "21r (255r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_021r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_021r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_021r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_021r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_021v.json",
-                "@type": "sc:Canvas",
-                "label": "21v (255v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_021v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_021v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_021v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_021v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_022r.json",
-                "@type": "sc:Canvas",
-                "label": "22r (256r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_022r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_022r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_022r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_022r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_022v.json",
-                "@type": "sc:Canvas",
-                "label": "22v (256v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_022v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_022v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_022v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_022v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-59",
-                "@type": "sc:Canvas",
-                "label": "Lacune (257r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-60",
-                "@type": "sc:Canvas",
-                "label": "Lacune (257v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_023r.json",
-                "@type": "sc:Canvas",
-                "label": "23r (258r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_023r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_023r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_023r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_023r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_023v.json",
-                "@type": "sc:Canvas",
-                "label": "23v (258v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_023v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_023v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_023v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_023v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_024r.json",
-                "@type": "sc:Canvas",
-                "label": "24r (259r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_024r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_024r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_024r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_024r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_024v.json",
-                "@type": "sc:Canvas",
-                "label": "24v (259v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_024v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_024v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_024v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_024v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_025r.json",
-                "@type": "sc:Canvas",
-                "label": "25r (260r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_025r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_025r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_025r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_025r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_025v.json",
-                "@type": "sc:Canvas",
-                "label": "25v (260v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_025v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_025v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_025v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_025v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_026r.json",
-                "@type": "sc:Canvas",
-                "label": "26r (261r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_026r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_026r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_026r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_026r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_026v.json",
-                "@type": "sc:Canvas",
-                "label": "26v (261v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_026v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_026v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_026v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_026v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-61",
-                "@type": "sc:Canvas",
-                "label": "Lacune (262r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-62",
-                "@type": "sc:Canvas",
-                "label": "Lacune (262v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-63",
-                "@type": "sc:Canvas",
-                "label": "Lacune (263r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-64",
-                "@type": "sc:Canvas",
-                "label": "Lacune (263v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-65",
-                "@type": "sc:Canvas",
-                "label": "Lacune (264r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-66",
-                "@type": "sc:Canvas",
-                "label": "Lacune (264v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-67",
-                "@type": "sc:Canvas",
-                "label": "Lacune (265r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-68",
-                "@type": "sc:Canvas",
-                "label": "Lacune (265v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-69",
-                "@type": "sc:Canvas",
-                "label": "Lacune (266r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-70",
-                "@type": "sc:Canvas",
-                "label": "Lacune (266v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-71",
-                "@type": "sc:Canvas",
-                "label": "Lacune (267r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-72",
-                "@type": "sc:Canvas",
-                "label": "Lacune (267v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-73",
-                "@type": "sc:Canvas",
-                "label": "Lacune (268r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-74",
-                "@type": "sc:Canvas",
-                "label": "Lacune (268v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_027r.json",
-                "@type": "sc:Canvas",
-                "label": "27r (269r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_027r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_027r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_027r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_027r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_027v.json",
-                "@type": "sc:Canvas",
-                "label": "27v (269v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_027v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_027v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_027v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_027v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-75",
-                "@type": "sc:Canvas",
-                "label": "Lacune (270r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-76",
-                "@type": "sc:Canvas",
-                "label": "Lacune (270v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_028r.json",
-                "@type": "sc:Canvas",
-                "label": "28r (271r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_028r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_028r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_028r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_028r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_028v.json",
-                "@type": "sc:Canvas",
-                "label": "28v (271v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_028v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_028v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_028v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_028v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_029r.json",
-                "@type": "sc:Canvas",
-                "label": "29r (272r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_029r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_029r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_029r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_029r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_029v.json",
-                "@type": "sc:Canvas",
-                "label": "29v (272v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_029v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_029v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_029v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_029v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_030r.json",
-                "@type": "sc:Canvas",
-                "label": "30r (273r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_030r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_030r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_030r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_030r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_030v.json",
-                "@type": "sc:Canvas",
-                "label": "30v (273v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_030v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_030v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_030v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_030v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_031r.json",
-                "@type": "sc:Canvas",
-                "label": "31r (274r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_031r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_031r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_031r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_031r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_031v.json",
-                "@type": "sc:Canvas",
-                "label": "31v (274v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_031v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_031v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_031v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_031v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_032r.json",
-                "@type": "sc:Canvas",
-                "label": "32r (275r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_032r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_032r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_032r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_032r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_032v.json",
-                "@type": "sc:Canvas",
-                "label": "32v (275v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_032v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_032v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_032v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_032v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_033r.json",
-                "@type": "sc:Canvas",
-                "label": "33r (276r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_033r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_033r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_033r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_033r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_033v.json",
-                "@type": "sc:Canvas",
-                "label": "33v (276v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_033v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_033v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_033v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_033v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_034r.json",
-                "@type": "sc:Canvas",
-                "label": "34r (277r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_034r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_034r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_034r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_034r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_034v.json",
-                "@type": "sc:Canvas",
-                "label": "34v (277v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_034v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_034v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_034v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_034v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_035r.json",
-                "@type": "sc:Canvas",
-                "label": "35r (278r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_035r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_035r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_035r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_035r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_035v.json",
-                "@type": "sc:Canvas",
-                "label": "35v (278v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_035v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_035v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_035v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_035v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_036r.json",
-                "@type": "sc:Canvas",
-                "label": "36r (279r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_036r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_036r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_036r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_036r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_036v.json",
-                "@type": "sc:Canvas",
-                "label": "36v (279v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_036v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_036v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_036v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_036v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_037r.json",
-                "@type": "sc:Canvas",
-                "label": "37r (280r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_037r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_037r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_037r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_037r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_037v.json",
-                "@type": "sc:Canvas",
-                "label": "37v (280v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_037v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_037v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_037v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_037v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_038r.json",
-                "@type": "sc:Canvas",
-                "label": "38r (281r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_038r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_038r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_038r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_038r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_038v.json",
-                "@type": "sc:Canvas",
-                "label": "38v (281v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_038v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_038v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_038v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_038v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_039r.json",
-                "@type": "sc:Canvas",
-                "label": "39r (282r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_039r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_039r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_039r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_039r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_039v.json",
-                "@type": "sc:Canvas",
-                "label": "39v (282v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_039v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_039v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_039v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_039v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_040r.json",
-                "@type": "sc:Canvas",
-                "label": "40r (283r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_040r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_040r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_040r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_040r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_040v.json",
-                "@type": "sc:Canvas",
-                "label": "40v (283v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_040v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_040v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_040v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_040v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_041r.json",
-                "@type": "sc:Canvas",
-                "label": "41r (284r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_041r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_041r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_041r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_041r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_041v.json",
-                "@type": "sc:Canvas",
-                "label": "41v (284v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_041v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_041v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_041v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_041v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_042r.json",
-                "@type": "sc:Canvas",
-                "label": "42r (285r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_042r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_042r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_042r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_042r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_042v.json",
-                "@type": "sc:Canvas",
-                "label": "42v (285v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_042v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_042v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_042v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_042v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_043r.json",
-                "@type": "sc:Canvas",
-                "label": "43r (286r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_043r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_043r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_043r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_043r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_043v.json",
-                "@type": "sc:Canvas",
-                "label": "43v (286v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_043v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_043v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_043v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_043v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_044r.json",
-                "@type": "sc:Canvas",
-                "label": "44r (287r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_044r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_044r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_044r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_044r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_044v.json",
-                "@type": "sc:Canvas",
-                "label": "44v (287v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_044v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_044v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_044v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_044v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-77",
-                "@type": "sc:Canvas",
-                "label": "Lacune (288r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-78",
-                "@type": "sc:Canvas",
-                "label": "Lacune (288v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_046r.json",
-                "@type": "sc:Canvas",
-                "label": "46r (289r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_046r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_046r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_046r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_046r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_046v.json",
-                "@type": "sc:Canvas",
-                "label": "46v (289v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_046v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_046v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_046v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_046v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_047r.json",
-                "@type": "sc:Canvas",
-                "label": "47r (290r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_047r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_047r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_047r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_047r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_047v.json",
-                "@type": "sc:Canvas",
-                "label": "47v (290v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_047v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_047v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_047v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_047v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_048r.json",
-                "@type": "sc:Canvas",
-                "label": "48r (291r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_048r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_048r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_048r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_048r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_048v.json",
-                "@type": "sc:Canvas",
-                "label": "48v (291v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_048v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_048v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_048v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_048v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_049r.json",
-                "@type": "sc:Canvas",
-                "label": "49r (292r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_049r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_049r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_049r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_049r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_049v.json",
-                "@type": "sc:Canvas",
-                "label": "49v (292v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_049v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_049v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_049v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_049v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_045r.json",
-                "@type": "sc:Canvas",
-                "label": "45r (293r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_045r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_045r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_045r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_045r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_045v.json",
-                "@type": "sc:Canvas",
-                "label": "45v (293v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_045v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_045v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_045v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_045v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_050r.json",
-                "@type": "sc:Canvas",
-                "label": "50r (294r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_050r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_050r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_050r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_050r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_050v.json",
-                "@type": "sc:Canvas",
-                "label": "50v (294v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_050v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_050v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_050v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_050v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_051r.json",
-                "@type": "sc:Canvas",
-                "label": "51r (295r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_051r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_051r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_051r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_051r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_051v.json",
-                "@type": "sc:Canvas",
-                "label": "51v (295v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_051v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_051v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_051v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_051v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_052r.json",
-                "@type": "sc:Canvas",
-                "label": "52r (296r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_052r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_052r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_052r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_052r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_052v.json",
-                "@type": "sc:Canvas",
-                "label": "52v (296v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_052v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_052v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_052v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_052v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-79",
-                "@type": "sc:Canvas",
-                "label": "Lacune (297r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-80",
-                "@type": "sc:Canvas",
-                "label": "Lacune (297v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-81",
-                "@type": "sc:Canvas",
-                "label": "Lacune (298r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-82",
-                "@type": "sc:Canvas",
-                "label": "Lacune (298v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-83",
-                "@type": "sc:Canvas",
-                "label": "Lacune (299r)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/canvas/canvas-84",
-                "@type": "sc:Canvas",
-                "label": "Lacune (299v)",
-                "width": 860,
-                "height": 1200
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_053r.json",
-                "@type": "sc:Canvas",
-                "label": "53r (300r)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_053r.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_053r.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_053r.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_053r.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            },
-            {
-                "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_053v.json",
-                "@type": "sc:Canvas",
-                "label": "53v (300v)",
-                "height": 6496,
-                "width": 4872,
-                "images": [{
-                    "@id": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/annotation/bge-lat0016_053v.json",
-                    "@type": "oa:Annotation",
-                    "motivation": "sc:painting",
-                    "on": "http://www.e-codices.unifr.ch/metadata/iiif/sl-0001/canvas/bge-lat0016_053v.json",
-                    "resource": {
-                        "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_053v.jp2/full/full/0/default.jpg",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 6496,
-                        "width": 4872,
-                        "service": {
-                            "@context": "http://iiif.io/api/image/2/context.json",
-                            "@id": "http://www.e-codices.unifr.ch/loris/bge/bge-lat0016/bge-lat0016_053v.jp2",
-                            "profile": "http://library.stanford.edu/iiif/image-api/compliance.html#level1"
-                        }
-                    }
-                }]
-            }
-        ]
-    }]
-}
diff --git a/spec/fixtures/Richardson7manifest.json b/spec/fixtures/Richardson7manifest.json
deleted file mode 100644
index 93b2b5ee172d5b4b7d6a640e463e45ab05008c87..0000000000000000000000000000000000000000
--- a/spec/fixtures/Richardson7manifest.json
+++ /dev/null
@@ -1 +0,0 @@
-{"attribution": "Provided by Harvard University", "structures": [{"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981094.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981096.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981098.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981100.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981102.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981104.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981106.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981108.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981110.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981112.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981114.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981116.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981118.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981120.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981122.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981124.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981126.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981128.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981130.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981132.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981134.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981136.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981138.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981140.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981142.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981144.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981146.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981148.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981150.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981152.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981154.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981156.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981158.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981160.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981162.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981164.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981166.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981168.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981170.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981172.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981174.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981176.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981178.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981180.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981182.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981184.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981186.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981188.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981190.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981192.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981194.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981196.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981198.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981200.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981202.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981204.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981206.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981208.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981210.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981212.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981214.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981216.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981218.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981220.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981222.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981224.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981226.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981228.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981230.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981232.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981234.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981236.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981238.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981240.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981242.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981244.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981246.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981248.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981250.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981252.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981254.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981256.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981258.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981260.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981262.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981264.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981266.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981268.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981270.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981272.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981274.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981276.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981278.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981280.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981282.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981284.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981286.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981288.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981290.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981292.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981294.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981296.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981298.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981300.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981302.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981304.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981306.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981308.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981310.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981312.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981314.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981316.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981318.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981320.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981322.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981324.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981326.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981328.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981330.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981332.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981334.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981336.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981338.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981340.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981342.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981344.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981346.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981348.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981350.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981352.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981354.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981356.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981358.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981360.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981362.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981364.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981366.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981368.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981370.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981372.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981374.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981376.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981378.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981380.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981382.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981384.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981386.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981388.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981390.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981392.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981394.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981396.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981398.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981400.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981402.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981404.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981406.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981408.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981410.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981412.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981414.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981416.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981418.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981420.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981422.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981424.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981426.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981428.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981430.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981432.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981434.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981436.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981438.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981440.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981442.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981444.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981446.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981448.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981450.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981452.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981454.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981456.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981458.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981460.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981462.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981464.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981466.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981468.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981470.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981472.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981474.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981476.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981478.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981480.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981482.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981484.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981486.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981488.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981490.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981492.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981494.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981496.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981498.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981500.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981502.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981504.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981506.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981508.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981510.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981512.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981514.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981516.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981518.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981520.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981522.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981524.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981526.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981528.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981530.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981532.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981534.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981536.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981538.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981540.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981542.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981544.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981546.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981548.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981550.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981552.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981554.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981556.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981558.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981560.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981562.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981564.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981566.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981568.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981570.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981572.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981574.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981576.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981578.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981580.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981582.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981584.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981586.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981588.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981590.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981592.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981594.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981596.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981598.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981600.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981602.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981604.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981606.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981608.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981610.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981612.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981614.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981616.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981618.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981620.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981622.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981624.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981626.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981628.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981630.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981632.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981634.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981636.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981638.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981640.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981642.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981644.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981646.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981648.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981650.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981652.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981654.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981656.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981658.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981660.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981662.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981664.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981666.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981668.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981670.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981672.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981674.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981676.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981678.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981680.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981682.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981684.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981686.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981688.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981690.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981692.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981694.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981696.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981698.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981700.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981702.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981704.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981706.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981708.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981710.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981712.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981714.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981716.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981718.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981720.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981722.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981724.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981726.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981728.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981730.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981732.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981734.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981736.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981738.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981740.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981742.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981744.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981746.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981748.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981750.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981752.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981754.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981756.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981758.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981760.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981762.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981764.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981766.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981768.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981770.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981772.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981774.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981776.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981778.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981780.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981782.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981784.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981786.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981788.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981790.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981792.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981794.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981796.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981798.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981800.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981802.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981804.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981806.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981808.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981810.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981812.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981814.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981816.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981818.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981820.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981822.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981824.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981826.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981828.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981830.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981832.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981834.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981836.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981838.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981840.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981842.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981844.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981846.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981848.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981850.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981852.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981854.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981856.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981858.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981860.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981862.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981864.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981866.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981868.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981870.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981872.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981874.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981876.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981878.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981880.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981882.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981884.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981886.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981888.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981890.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981892.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981894.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981896.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981898.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981900.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981902.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981904.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981906.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981908.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981910.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981912.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981914.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981916.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981918.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981920.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981922.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981924.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981926.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981928.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981930.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981932.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981934.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981936.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981938.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981940.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981942.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981944.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981946.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981948.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981950.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981952.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981954.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981956.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981958.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981960.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981962.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981964.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981966.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981968.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981970.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981972.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981974.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981976.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981978.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981980.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981982.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981984.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981986.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981988.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981990.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981992.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981994.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981996.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981998.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982000.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982002.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982004.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982006.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982008.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982010.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982012.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982014.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982016.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982018.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982020.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982022.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982024.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982026.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982028.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982030.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982032.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982034.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982036.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982038.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982040.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982042.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982044.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982046.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982048.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982050.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982052.json"], "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1.json", "@type": "sc:Range", "label": "Table of Contents"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981094.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981096.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981098.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981100.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-1.json", "@type": "sc:Range", "label": "Front Matter"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981094.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-1-1.json", "@type": "sc:Range", "label": "Front cover"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981096.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-1-2.json", "@type": "sc:Range", "label": "Inside front cover"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981098.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-1-3.json", "@type": "sc:Range", "label": "Fly leaf (1)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981100.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-1-4.json", "@type": "sc:Range", "label": "Fly leaf (2)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981102.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981104.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981106.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981108.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981110.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981112.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981114.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981116.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981118.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981120.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981122.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981124.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981126.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981128.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981130.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981132.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981134.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981136.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981138.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981140.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981142.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981144.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981146.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981148.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2.json", "@type": "sc:Range", "label": "Calendar (ff. 1-12v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981102.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981104.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-1.json", "@type": "sc:Range", "label": "January (ff. 1-1v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981102.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-1-1.json", "@type": "sc:Range", "label": "f. 1: Aquarius - Man eating and drinking"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981104.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-1-2.json", "@type": "sc:Range", "label": "f. 1v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981106.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981108.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-2.json", "@type": "sc:Range", "label": "February (ff. 2-2v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981106.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-2-1.json", "@type": "sc:Range", "label": "f. 2: Pisces - Man warming his feet"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981108.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-2-2.json", "@type": "sc:Range", "label": "f. 2v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981110.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981112.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-3.json", "@type": "sc:Range", "label": "March (ff. 3-3v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981110.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-3.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-3-1.json", "@type": "sc:Range", "label": "f. 3: Ares - Man cutting wood"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981112.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-3.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-3-2.json", "@type": "sc:Range", "label": "f. 3v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981114.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981116.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-4.json", "@type": "sc:Range", "label": "April (ff. 4-4v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981114.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-4.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-4-1.json", "@type": "sc:Range", "label": "f. 4: Taurus - Man carrying trees"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981116.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-4.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-4-2.json", "@type": "sc:Range", "label": "f. 4v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981118.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981120.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-5.json", "@type": "sc:Range", "label": "May (ff. 5-5v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981118.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-5.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-5-1.json", "@type": "sc:Range", "label": "f. 5: Gemini - Falconer on horseback"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981120.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-5.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-5-2.json", "@type": "sc:Range", "label": "f. 5v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981122.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981124.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-6.json", "@type": "sc:Range", "label": "June (ff. 6-6v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981122.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-6-1.json", "@type": "sc:Range", "label": "f. 6: Cancer - Man cutting hay"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981124.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-6-2.json", "@type": "sc:Range", "label": "f. 6v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981126.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981128.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-7.json", "@type": "sc:Range", "label": "July (ff. 7-7v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981126.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-7-1.json", "@type": "sc:Range", "label": "f. 7: Leo - Man harvesting crops"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981128.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-7-2.json", "@type": "sc:Range", "label": "f. 7v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981130.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981132.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-8.json", "@type": "sc:Range", "label": "August (ff. 8-8v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981130.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-8-1.json", "@type": "sc:Range", "label": "f. 8: Virgo - Man threshing"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981132.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-8-2.json", "@type": "sc:Range", "label": "f. 8v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981134.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981136.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-9.json", "@type": "sc:Range", "label": "September (ff. 9-9v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981134.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-9.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-9-1.json", "@type": "sc:Range", "label": "f. 9: Libra - Man crushing grapes"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981136.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-9.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-9-2.json", "@type": "sc:Range", "label": "f. 9v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981138.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981140.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-10.json", "@type": "sc:Range", "label": "October (ff. 10-10v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981138.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-10.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-10-1.json", "@type": "sc:Range", "label": "f. 10: Scorpio - Man sowing seeds"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981140.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-10.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-10-2.json", "@type": "sc:Range", "label": "f. 10v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981142.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981144.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-11.json", "@type": "sc:Range", "label": "November (ff. 11-11v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981142.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-11.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-11-1.json", "@type": "sc:Range", "label": "f. 11: Sagittarius - Man feeding hogs"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981144.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-11.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-11-2.json", "@type": "sc:Range", "label": "f. 11v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981146.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981148.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-12.json", "@type": "sc:Range", "label": "December (ff. 12-12v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981146.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-12.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-12-1.json", "@type": "sc:Range", "label": "f. 12: Capricorn - Man butchering pig"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981148.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-12.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-2-12-2.json", "@type": "sc:Range", "label": "f. 12v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981150.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981152.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981154.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981156.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981158.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981160.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981162.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981164.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981166.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981168.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981170.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981172.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981174.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981176.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981178.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981180.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3.json", "@type": "sc:Range", "label": "Sequences of the Gospels (ff. 13-20v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981150.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981152.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981154.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981156.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-1.json", "@type": "sc:Range", "label": "Sequence from John (ff. 13-14v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981150.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-1-1.json", "@type": "sc:Range", "label": "f. 13: John writing on Patmos"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981152.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-1-2.json", "@type": "sc:Range", "label": "f. 13v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981154.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-1-3.json", "@type": "sc:Range", "label": "f. 14."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981156.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-1-4.json", "@type": "sc:Range", "label": "f. 14v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981158.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981160.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981162.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981164.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-2.json", "@type": "sc:Range", "label": "Sequence from Matthew (ff. 15-16v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981158.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-2-1.json", "@type": "sc:Range", "label": "f. 15: Matthew writing"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981160.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-2-2.json", "@type": "sc:Range", "label": "f. 15v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981162.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-2-3.json", "@type": "sc:Range", "label": "f. 16."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981164.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-2-4.json", "@type": "sc:Range", "label": "f. 16v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981166.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981168.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981170.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981172.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-3.json", "@type": "sc:Range", "label": "Sequence from Luke (ff. 17-18v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981166.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-3.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-3-1.json", "@type": "sc:Range", "label": "f. 17: Luke painting the Virgin and Child"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981168.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-3.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-3-2.json", "@type": "sc:Range", "label": "f. 17v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981170.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-3.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-3-3.json", "@type": "sc:Range", "label": "f. 18."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981172.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-3.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-3-4.json", "@type": "sc:Range", "label": "f. 18v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981174.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981176.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981178.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981180.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-4.json", "@type": "sc:Range", "label": "Sequence from Mark (ff. 19-20v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981174.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-4.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-4-1.json", "@type": "sc:Range", "label": "f. 19: Mark writing"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981176.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-4.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-4-2.json", "@type": "sc:Range", "label": "f. 19v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981178.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-4.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-4-3.json", "@type": "sc:Range", "label": "f. 20."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981180.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-4.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-3-4-4.json", "@type": "sc:Range", "label": "f. 20v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981182.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981184.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981186.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981188.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981190.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981192.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981194.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981196.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981198.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981200.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981202.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981204.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981206.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981208.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981210.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981212.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981214.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981216.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981218.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981220.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981222.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981224.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981226.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981228.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981230.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981232.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981234.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981236.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981238.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4.json", "@type": "sc:Range", "label": "Hours of the Cross (ff. 21-35)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981182.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981184.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981186.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981188.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-1.json", "@type": "sc:Range", "label": "Matins (ff. 21-23v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981182.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-1-1.json", "@type": "sc:Range", "label": "f. 21: Betrayal of Christ - Agony in the Garden - Christ before Annas - Christ before Caiphas - Apostles"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981184.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-1-2.json", "@type": "sc:Range", "label": "f. 21v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981186.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-1-3.json", "@type": "sc:Range", "label": "f. 22."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981188.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-1-4.json", "@type": "sc:Range", "label": "f. 22v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981190.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981192.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981194.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981196.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-2.json", "@type": "sc:Range", "label": "Prime (ff. 23-24v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981190.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-2-1.json", "@type": "sc:Range", "label": "f. 23: Christ before Pilate"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981192.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-2-2.json", "@type": "sc:Range", "label": "f. 23v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981194.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-2-3.json", "@type": "sc:Range", "label": "f. 24."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981196.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-2-4.json", "@type": "sc:Range", "label": "f. 24v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981198.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981200.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981202.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981204.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-3.json", "@type": "sc:Range", "label": "Terce (ff. 25-26v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981198.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-3.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-3-1.json", "@type": "sc:Range", "label": "f. 25: Flagellation"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981200.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-3.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-3-2.json", "@type": "sc:Range", "label": "f. 25v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981202.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-3.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-3-3.json", "@type": "sc:Range", "label": "f. 26."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981204.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-3.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-3-4.json", "@type": "sc:Range", "label": "f. 26v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981206.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981208.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981210.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981212.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-4.json", "@type": "sc:Range", "label": "Sext (ff. 27-28v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981206.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-4.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-4-1.json", "@type": "sc:Range", "label": "f. 27: Christ carrying the cross"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981208.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-4.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-4-2.json", "@type": "sc:Range", "label": "f. 27v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981210.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-4.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-4-3.json", "@type": "sc:Range", "label": "f. 28."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981212.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-4.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-4-4.json", "@type": "sc:Range", "label": "f. 28v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981214.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981216.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981218.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981220.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-5.json", "@type": "sc:Range", "label": "None (ff. 29-30v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981214.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-5.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-5-1.json", "@type": "sc:Range", "label": "f. 29: Crucifixion"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981216.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-5.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-5-2.json", "@type": "sc:Range", "label": "f. 29v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981218.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-5.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-5-3.json", "@type": "sc:Range", "label": "f. 30."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981220.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-5.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-5-4.json", "@type": "sc:Range", "label": "f. 30v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981222.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981224.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981226.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981228.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-6.json", "@type": "sc:Range", "label": "Vespers (ff. 31-32v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981222.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-6-1.json", "@type": "sc:Range", "label": "f. 31: Deposition"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981224.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-6-2.json", "@type": "sc:Range", "label": "f. 31v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981226.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-6-3.json", "@type": "sc:Range", "label": "f. 32."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981228.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-6-4.json", "@type": "sc:Range", "label": "f. 32v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981230.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981232.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981234.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981236.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981238.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-7.json", "@type": "sc:Range", "label": "Compline (ff. 33-35)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981230.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-7-1.json", "@type": "sc:Range", "label": "f. 33: Entombment"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981232.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-7-2.json", "@type": "sc:Range", "label": "f. 33v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981234.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-7-3.json", "@type": "sc:Range", "label": "f. 34."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981236.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-7-4.json", "@type": "sc:Range", "label": "f. 34v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981238.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-4-7-5.json", "@type": "sc:Range", "label": "f. 35."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981240.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981242.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981244.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-5.json", "@type": "sc:Range", "label": "Passion (ff. 35v-36v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981240.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-5.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-5-1.json", "@type": "sc:Range", "label": "f. 35v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981242.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-5.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-5-2.json", "@type": "sc:Range", "label": "f. 36."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981244.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-5.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-5-3.json", "@type": "sc:Range", "label": "f. 36v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981246.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981248.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981250.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981252.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981254.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981256.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981258.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981260.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981262.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981264.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981266.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981268.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981270.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981272.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981274.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981276.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981278.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981280.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981282.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981284.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6.json", "@type": "sc:Range", "label": "Hours of the Holy Spirit (ff. 37-46v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981246.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6-1.json", "@type": "sc:Range", "label": "f. 37: Pentecost"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981248.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6-2.json", "@type": "sc:Range", "label": "f. 37v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981250.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6-3.json", "@type": "sc:Range", "label": "f. 38."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981252.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6-4.json", "@type": "sc:Range", "label": "f. 38v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981254.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6-5.json", "@type": "sc:Range", "label": "f. 39."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981256.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6-6.json", "@type": "sc:Range", "label": "f. 39v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981258.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6-7.json", "@type": "sc:Range", "label": "f. 40."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981260.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6-8.json", "@type": "sc:Range", "label": "f. 40v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981262.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6-9.json", "@type": "sc:Range", "label": "f. 41."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981264.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6-10.json", "@type": "sc:Range", "label": "f. 41v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981266.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6-11.json", "@type": "sc:Range", "label": "f. 42."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981268.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6-12.json", "@type": "sc:Range", "label": "f. 42v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981270.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6-13.json", "@type": "sc:Range", "label": "f. 43."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981272.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6-14.json", "@type": "sc:Range", "label": "f. 43v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981274.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6-15.json", "@type": "sc:Range", "label": "f. 44."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981276.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6-16.json", "@type": "sc:Range", "label": "f. 44v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981278.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6-17.json", "@type": "sc:Range", "label": "f. 45."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981280.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6-18.json", "@type": "sc:Range", "label": "f. 45v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981282.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6-19.json", "@type": "sc:Range", "label": "f. 46."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981284.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-6-20.json", "@type": "sc:Range", "label": "f. 46v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981286.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981288.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981290.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981292.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981294.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981296.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981298.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981300.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981302.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981304.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981306.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981308.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981310.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981312.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981314.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981316.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981318.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981320.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981322.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981324.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981326.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981328.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981330.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981332.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981334.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981336.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981338.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981340.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981342.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981344.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981346.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981348.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981350.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981352.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981354.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981356.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981358.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981360.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981362.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981364.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981366.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981368.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981370.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981372.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981374.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981376.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981378.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981380.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981382.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981384.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981386.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981388.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981390.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981392.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981394.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981396.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981398.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981400.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981402.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981404.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981406.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981408.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981410.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981412.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981414.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981416.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981418.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981420.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981422.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981424.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981426.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981428.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981430.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981432.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981434.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981436.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981438.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981440.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981442.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981444.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981446.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981448.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981450.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981452.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981454.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981456.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981458.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981460.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981462.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981464.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981466.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981468.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981470.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981472.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981474.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981476.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981478.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981480.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981482.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981484.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981486.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981488.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981490.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981492.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981494.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981496.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981498.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981500.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981502.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981504.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981506.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981508.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981510.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981512.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981514.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981516.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981518.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981520.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981522.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981524.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981526.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981528.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981530.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981532.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981534.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981536.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981538.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981540.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981542.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981544.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981546.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981548.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981550.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981552.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981554.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981556.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981558.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981560.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981562.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981564.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981566.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981568.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981570.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981572.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981574.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981576.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981578.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981580.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981582.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981584.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981586.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981588.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981590.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981592.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981594.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981596.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981598.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981600.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981602.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981604.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7.json", "@type": "sc:Range", "label": "Hours of the Virgin (ff. 47-126v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981286.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981288.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981290.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981292.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981294.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981296.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981298.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981300.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981302.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981304.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981306.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981308.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981310.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981312.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981314.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981316.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981318.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981320.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981322.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981324.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981326.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981328.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981330.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981332.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981334.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981336.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981338.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981340.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981342.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981344.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981346.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981348.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1.json", "@type": "sc:Range", "label": "Matins (ff. 47-62v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981286.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1-1.json", "@type": "sc:Range", "label": "f. 47: The Annunciation - Bethrothal of Mary and Joseph - Mary weaving - Birth of the Virgin - Joachim in prayer"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981288.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1-2.json", "@type": "sc:Range", "label": "f. 47v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981290.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1-3.json", "@type": "sc:Range", "label": "f. 48."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981292.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1-4.json", "@type": "sc:Range", "label": "f. 48v: Psalm 94"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981294.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1-5.json", "@type": "sc:Range", "label": "f. 49."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981296.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1-6.json", "@type": "sc:Range", "label": "f. 49v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981298.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1-7.json", "@type": "sc:Range", "label": "f. 50."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981300.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1-8.json", "@type": "sc:Range", "label": "f. 50v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981302.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1-9.json", "@type": "sc:Range", "label": "f. 51: Psalm 8"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981304.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1-10.json", "@type": "sc:Range", "label": "f. 51v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981306.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1-11.json", "@type": "sc:Range", "label": "f. 52."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981308.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1-12.json", "@type": "sc:Range", "label": "f. 52v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981310.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1-13.json", "@type": "sc:Range", "label": "f. 53."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981312.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1-14.json", "@type": "sc:Range", "label": "f. 53v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981314.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1-15.json", "@type": "sc:Range", "label": "f. 54: Psalm 23"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981316.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1-16.json", "@type": "sc:Range", "label": "f. 54v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981318.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1-17.json", "@type": "sc:Range", "label": "f. 55."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981320.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1-18.json", "@type": "sc:Range", "label": "f. 55v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981322.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1-19.json", "@type": "sc:Range", "label": "f. 56."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981324.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1-20.json", "@type": "sc:Range", "label": "f. 56v: First Lesson"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981326.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1-21.json", "@type": "sc:Range", "label": "f. 57."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981328.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1-22.json", "@type": "sc:Range", "label": "f. 57v: Second Lesson"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981330.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1-23.json", "@type": "sc:Range", "label": "f. 58."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981332.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1-24.json", "@type": "sc:Range", "label": "f. 58v: Third Lesson"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981334.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1-25.json", "@type": "sc:Range", "label": "f. 59."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981336.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1-26.json", "@type": "sc:Range", "label": "f. 59v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981338.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1-27.json", "@type": "sc:Range", "label": "f. 60."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981340.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1-28.json", "@type": "sc:Range", "label": "f. 60v: Hymn: Te deum laudamus"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981342.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1-29.json", "@type": "sc:Range", "label": "f. 61."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981344.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1-30.json", "@type": "sc:Range", "label": "f. 61v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981346.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1-31.json", "@type": "sc:Range", "label": "f. 62."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981348.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-1-32.json", "@type": "sc:Range", "label": "f. 62v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981350.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981352.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981354.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981356.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981358.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981360.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981362.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981364.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981366.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981368.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981370.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981372.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981374.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981376.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981378.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981380.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981382.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981384.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981386.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981388.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981390.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981392.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981394.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981396.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981398.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981400.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981402.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981404.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2.json", "@type": "sc:Range", "label": "Lauds (ff. 63-76v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981350.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2-1.json", "@type": "sc:Range", "label": "f. 63: The Visitation"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981352.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2-2.json", "@type": "sc:Range", "label": "f. 63v: Psalm 92"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981354.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2-3.json", "@type": "sc:Range", "label": "f. 64."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981356.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2-4.json", "@type": "sc:Range", "label": "f. 64v: Psalm 99"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981358.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2-5.json", "@type": "sc:Range", "label": "f. 65: Psalm 62"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981360.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2-6.json", "@type": "sc:Range", "label": "f. 65v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981362.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2-7.json", "@type": "sc:Range", "label": "f. 66."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981364.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2-8.json", "@type": "sc:Range", "label": "f. 66v: Psalm 66"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981366.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2-9.json", "@type": "sc:Range", "label": "f. 67."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981368.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2-10.json", "@type": "sc:Range", "label": "f. 67v: Canticle of the Three Children (Dan. 3:57-88)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981370.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2-11.json", "@type": "sc:Range", "label": "f. 68."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981372.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2-12.json", "@type": "sc:Range", "label": "f. 68v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981374.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2-13.json", "@type": "sc:Range", "label": "f. 69: Psalm 148"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981376.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2-14.json", "@type": "sc:Range", "label": "f. 69v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981378.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2-15.json", "@type": "sc:Range", "label": "f. 70."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981380.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2-16.json", "@type": "sc:Range", "label": "f. 70v: Psalm 149"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981382.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2-17.json", "@type": "sc:Range", "label": "f. 71."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981384.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2-18.json", "@type": "sc:Range", "label": "f. 71v: Psalm 150"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981386.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2-19.json", "@type": "sc:Range", "label": "f. 72."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981388.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2-20.json", "@type": "sc:Range", "label": "f. 72v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981390.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2-21.json", "@type": "sc:Range", "label": "f. 73: Hymn: O gloriosa domina"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981392.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2-22.json", "@type": "sc:Range", "label": "f. 73v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981394.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2-23.json", "@type": "sc:Range", "label": "f. 74."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981396.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2-24.json", "@type": "sc:Range", "label": "f. 74v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981398.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2-25.json", "@type": "sc:Range", "label": "f. 75."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981400.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2-26.json", "@type": "sc:Range", "label": "f. 75v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981402.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2-27.json", "@type": "sc:Range", "label": "f. 76."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981404.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-2-28.json", "@type": "sc:Range", "label": "f. 76v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981406.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981408.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981410.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981412.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981414.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981416.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981418.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981420.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981422.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981424.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981426.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981428.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981430.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981432.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981434.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981436.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981438.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981440.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981442.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3.json", "@type": "sc:Range", "label": "Prime (ff. 77-86)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981406.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3-1.json", "@type": "sc:Range", "label": "f. 77: The Nativity"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981408.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3-2.json", "@type": "sc:Range", "label": "f. 77v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981410.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3-3.json", "@type": "sc:Range", "label": "f. 78."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981412.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3-4.json", "@type": "sc:Range", "label": "f. 78v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981414.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3-5.json", "@type": "sc:Range", "label": "f. 79: Psalm 53"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981416.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3-6.json", "@type": "sc:Range", "label": "f. 79v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981418.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3-7.json", "@type": "sc:Range", "label": "f. 80: Psalm 116"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981420.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3-8.json", "@type": "sc:Range", "label": "f. 80v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981422.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3-9.json", "@type": "sc:Range", "label": "f. 81."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981424.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3-10.json", "@type": "sc:Range", "label": "f. 81v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981426.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3-11.json", "@type": "sc:Range", "label": "f. 82."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981428.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3-12.json", "@type": "sc:Range", "label": "f. 82v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981430.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3-13.json", "@type": "sc:Range", "label": "f. 83."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981432.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3-14.json", "@type": "sc:Range", "label": "f. 83v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981434.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3-15.json", "@type": "sc:Range", "label": "f. 84."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981436.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3-16.json", "@type": "sc:Range", "label": "f. 84v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981438.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3-17.json", "@type": "sc:Range", "label": "f. 85."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981440.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3-18.json", "@type": "sc:Range", "label": "f. 85v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981442.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-3-19.json", "@type": "sc:Range", "label": "f. 86."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981444.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981446.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981448.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981450.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981452.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981454.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981456.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981458.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981460.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981462.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981464.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981466.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981468.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-4.json", "@type": "sc:Range", "label": "Terce (ff. 86v-92v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981444.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-4.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-4-1.json", "@type": "sc:Range", "label": "f. 86v: Annunciation to the shepherds"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981446.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-4.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-4-2.json", "@type": "sc:Range", "label": "f. 87."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981448.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-4.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-4-3.json", "@type": "sc:Range", "label": "f. 87v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981450.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-4.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-4-4.json", "@type": "sc:Range", "label": "f. 88: Psalm 119"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981452.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-4.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-4-5.json", "@type": "sc:Range", "label": "f. 88v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981454.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-4.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-4-6.json", "@type": "sc:Range", "label": "f. 89: Psalm 120"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981456.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-4.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-4-7.json", "@type": "sc:Range", "label": "f. 89v: Psalm 121"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981458.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-4.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-4-8.json", "@type": "sc:Range", "label": "f. 90."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981460.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-4.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-4-9.json", "@type": "sc:Range", "label": "f. 90v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981462.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-4.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-4-10.json", "@type": "sc:Range", "label": "f. 91."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981464.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-4.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-4-11.json", "@type": "sc:Range", "label": "f. 91v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981466.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-4.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-4-12.json", "@type": "sc:Range", "label": "f. 92."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981468.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-4.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-4-13.json", "@type": "sc:Range", "label": "f. 92v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981470.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981472.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981474.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981476.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981478.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981480.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981482.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981484.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981486.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981488.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981490.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981492.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-5.json", "@type": "sc:Range", "label": "Sext (ff. 93-98v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981470.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-5.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-5-1.json", "@type": "sc:Range", "label": "f. 93: The Adoration of the Magi"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981472.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-5.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-5-2.json", "@type": "sc:Range", "label": "f. 93v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981474.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-5.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-5-3.json", "@type": "sc:Range", "label": "f. 94: Psalm 122"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981476.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-5.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-5-4.json", "@type": "sc:Range", "label": "f. 94v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981478.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-5.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-5-5.json", "@type": "sc:Range", "label": "f. 95: Psalm 123"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981480.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-5.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-5-6.json", "@type": "sc:Range", "label": "f. 95v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981482.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-5.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-5-7.json", "@type": "sc:Range", "label": "f. 96: Psalm 124"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981484.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-5.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-5-8.json", "@type": "sc:Range", "label": "f. 96v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981486.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-5.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-5-9.json", "@type": "sc:Range", "label": "f. 97."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981488.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-5.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-5-10.json", "@type": "sc:Range", "label": "f. 97v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981490.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-5.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-5-11.json", "@type": "sc:Range", "label": "f. 98."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981492.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-5.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-5-12.json", "@type": "sc:Range", "label": "f. 98v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981494.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981496.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981498.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981500.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981502.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981504.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981506.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981508.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981510.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981512.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981514.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981516.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981518.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981520.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-6.json", "@type": "sc:Range", "label": "None (ff. 99-105v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981494.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-6-1.json", "@type": "sc:Range", "label": "f. 99: Presentation in the temple"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981496.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-6-2.json", "@type": "sc:Range", "label": "f. 99v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981498.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-6-3.json", "@type": "sc:Range", "label": "f. 100: Psalm 125"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981500.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-6-4.json", "@type": "sc:Range", "label": "f. 100v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981502.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-6-5.json", "@type": "sc:Range", "label": "f. 101."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981504.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-6-6.json", "@type": "sc:Range", "label": "f. 101v: Psalm 126"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981506.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-6-7.json", "@type": "sc:Range", "label": "f. 102."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981508.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-6-8.json", "@type": "sc:Range", "label": "f. 102v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981510.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-6-9.json", "@type": "sc:Range", "label": "f. 103."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981512.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-6-10.json", "@type": "sc:Range", "label": "f. 103v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981514.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-6-11.json", "@type": "sc:Range", "label": "f. 104."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981516.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-6-12.json", "@type": "sc:Range", "label": "f. 104v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981518.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-6-13.json", "@type": "sc:Range", "label": "f. 105."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981520.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-6.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-6-14.json", "@type": "sc:Range", "label": "f. 105v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981522.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981524.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981526.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981528.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981530.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981532.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981534.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981536.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981538.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981540.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981542.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981544.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981546.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981548.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981550.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981552.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981554.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981556.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981558.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981560.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7.json", "@type": "sc:Range", "label": "Vespers (ff. 106-115v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981522.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7-1.json", "@type": "sc:Range", "label": "f. 106: Flight into Egypt"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981524.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7-2.json", "@type": "sc:Range", "label": "f. 106v: Psalm 121"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981526.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7-3.json", "@type": "sc:Range", "label": "f. 107."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981528.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7-4.json", "@type": "sc:Range", "label": "f. 107v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981530.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7-5.json", "@type": "sc:Range", "label": "f. 108: Psalm 122"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981532.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7-6.json", "@type": "sc:Range", "label": "f. 108v: Psalm 126"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981534.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7-7.json", "@type": "sc:Range", "label": "f. 109."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981536.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7-8.json", "@type": "sc:Range", "label": "f. 109v: Psalm 124"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981538.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7-9.json", "@type": "sc:Range", "label": "f. 110."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981540.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7-10.json", "@type": "sc:Range", "label": "f. 110v: Psalm 125"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981542.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7-11.json", "@type": "sc:Range", "label": "f. 111."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981544.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7-12.json", "@type": "sc:Range", "label": "f. 111v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981546.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7-13.json", "@type": "sc:Range", "label": "f. 112."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981548.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7-14.json", "@type": "sc:Range", "label": "f. 112v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981550.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7-15.json", "@type": "sc:Range", "label": "f. 113."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981552.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7-16.json", "@type": "sc:Range", "label": "f. 113v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981554.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7-17.json", "@type": "sc:Range", "label": "f. 114."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981556.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7-18.json", "@type": "sc:Range", "label": "f. 114v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981558.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7-19.json", "@type": "sc:Range", "label": "f. 115."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981560.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-7-20.json", "@type": "sc:Range", "label": "f. 115v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981562.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981564.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981566.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981568.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981570.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981572.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981574.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981576.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981578.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981580.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981582.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981584.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981586.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981588.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981590.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981592.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981594.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981596.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981598.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981600.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981602.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981604.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8.json", "@type": "sc:Range", "label": "Compline (ff. 116-126v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981562.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8-1.json", "@type": "sc:Range", "label": "f. 116: Coronation of the Virgin"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981564.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8-2.json", "@type": "sc:Range", "label": "f. 116v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981566.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8-3.json", "@type": "sc:Range", "label": "f. 117."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981568.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8-4.json", "@type": "sc:Range", "label": "f. 117v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981570.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8-5.json", "@type": "sc:Range", "label": "f. 118."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981572.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8-6.json", "@type": "sc:Range", "label": "f. 118v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981574.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8-7.json", "@type": "sc:Range", "label": "f. 119: Psalm 128"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981576.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8-8.json", "@type": "sc:Range", "label": "f. 119v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981578.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8-9.json", "@type": "sc:Range", "label": "f. 120: Psalm 130"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981580.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8-10.json", "@type": "sc:Range", "label": "f. 120v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981582.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8-11.json", "@type": "sc:Range", "label": "f. 121."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981584.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8-12.json", "@type": "sc:Range", "label": "f. 121v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981586.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8-13.json", "@type": "sc:Range", "label": "f. 122."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981588.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8-14.json", "@type": "sc:Range", "label": "f. 122v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981590.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8-15.json", "@type": "sc:Range", "label": "f. 123."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981592.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8-16.json", "@type": "sc:Range", "label": "f. 123v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981594.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8-17.json", "@type": "sc:Range", "label": "f. 124."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981596.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8-18.json", "@type": "sc:Range", "label": "f. 124v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981598.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8-19.json", "@type": "sc:Range", "label": "f. 125."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981600.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8-20.json", "@type": "sc:Range", "label": "f. 125v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981602.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8-21.json", "@type": "sc:Range", "label": "f. 126."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981604.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-7-8-22.json", "@type": "sc:Range", "label": "f. 126v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981606.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981608.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981610.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981612.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981614.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981616.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981618.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981620.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981622.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981624.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981626.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981628.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981630.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981632.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981634.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981636.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981638.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981640.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981642.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981644.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981646.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981648.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981650.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981652.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8.json", "@type": "sc:Range", "label": "Penitential Psalms (ff. 127-138v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981606.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8-1.json", "@type": "sc:Range", "label": "f. 127: David in prayer"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981608.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8-2.json", "@type": "sc:Range", "label": "f. 127v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981610.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8-3.json", "@type": "sc:Range", "label": "f. 128."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981612.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8-4.json", "@type": "sc:Range", "label": "f. 128v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981614.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8-5.json", "@type": "sc:Range", "label": "f. 129."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981616.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8-6.json", "@type": "sc:Range", "label": "f. 129v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981618.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8-7.json", "@type": "sc:Range", "label": "f. 130."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981620.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8-8.json", "@type": "sc:Range", "label": "f. 130v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981622.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8-9.json", "@type": "sc:Range", "label": "f. 131."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981624.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8-10.json", "@type": "sc:Range", "label": "f. 131v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981626.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8-11.json", "@type": "sc:Range", "label": "f. 132."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981628.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8-12.json", "@type": "sc:Range", "label": "f. 132v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981630.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8-13.json", "@type": "sc:Range", "label": "f. 133."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981632.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8-14.json", "@type": "sc:Range", "label": "f. 133v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981634.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8-15.json", "@type": "sc:Range", "label": "f. 134."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981636.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8-16.json", "@type": "sc:Range", "label": "f. 134v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981638.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8-17.json", "@type": "sc:Range", "label": "f. 135."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981640.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8-18.json", "@type": "sc:Range", "label": "f. 135v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981642.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8-19.json", "@type": "sc:Range", "label": "f. 136."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981644.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8-20.json", "@type": "sc:Range", "label": "f. 136v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981646.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8-21.json", "@type": "sc:Range", "label": "f. 137."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981648.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8-22.json", "@type": "sc:Range", "label": "f. 137v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981650.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8-23.json", "@type": "sc:Range", "label": "f. 138."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981652.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-8-24.json", "@type": "sc:Range", "label": "f. 138v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981654.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981656.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981658.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981660.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981662.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981664.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981666.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981668.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981670.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981672.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981674.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981676.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981678.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981680.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981682.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-9.json", "@type": "sc:Range", "label": "Litany (ff. 139-146)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981654.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-9.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-9-1.json", "@type": "sc:Range", "label": "f. 139."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981656.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-9.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-9-2.json", "@type": "sc:Range", "label": "f. 139v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981658.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-9.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-9-3.json", "@type": "sc:Range", "label": "f. 140."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981660.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-9.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-9-4.json", "@type": "sc:Range", "label": "f. 140v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981662.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-9.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-9-5.json", "@type": "sc:Range", "label": "f. 141."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981664.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-9.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-9-6.json", "@type": "sc:Range", "label": "f. 141v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981666.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-9.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-9-7.json", "@type": "sc:Range", "label": "f. 142."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981668.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-9.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-9-8.json", "@type": "sc:Range", "label": "f. 142v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981670.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-9.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-9-9.json", "@type": "sc:Range", "label": "f. 143."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981672.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-9.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-9-10.json", "@type": "sc:Range", "label": "f. 143v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981674.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-9.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-9-11.json", "@type": "sc:Range", "label": "f. 144."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981676.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-9.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-9-12.json", "@type": "sc:Range", "label": "f. 144v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981678.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-9.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-9-13.json", "@type": "sc:Range", "label": "f. 145."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981680.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-9.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-9-14.json", "@type": "sc:Range", "label": "f. 145v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981682.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-9.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-9-15.json", "@type": "sc:Range", "label": "f. 146."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981684.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981686.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981688.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981690.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981692.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981694.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981696.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981698.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981700.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-10.json", "@type": "sc:Range", "label": "Prayers - Obsecro te (ff. 146v-150v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981684.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-10.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-10-1.json", "@type": "sc:Range", "label": "f. 146v: St. Catherine and male saint with donor couple before the Virgin and Child"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981686.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-10.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-10-2.json", "@type": "sc:Range", "label": "f. 147."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981688.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-10.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-10-3.json", "@type": "sc:Range", "label": "f. 147v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981690.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-10.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-10-4.json", "@type": "sc:Range", "label": "f. 148."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981692.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-10.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-10-5.json", "@type": "sc:Range", "label": "f. 148v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981694.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-10.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-10-6.json", "@type": "sc:Range", "label": "f. 149."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981696.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-10.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-10-7.json", "@type": "sc:Range", "label": "f. 149v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981698.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-10.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-10-8.json", "@type": "sc:Range", "label": "f. 150."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981700.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-10.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-10-9.json", "@type": "sc:Range", "label": "f. 150v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981702.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981704.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981706.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981708.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981710.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981712.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981714.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981716.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981718.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981720.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-11.json", "@type": "sc:Range", "label": "Prayers - O intemerata and Other Prayers (151-155v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981702.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-11.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-11-1.json", "@type": "sc:Range", "label": "f. 151: Pieta"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981704.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-11.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-11-2.json", "@type": "sc:Range", "label": "f. 151v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981706.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-11.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-11-3.json", "@type": "sc:Range", "label": "f. 152."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981708.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-11.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-11-4.json", "@type": "sc:Range", "label": "f. 152v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981710.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-11.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-11-5.json", "@type": "sc:Range", "label": "f. 153."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981712.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-11.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-11-6.json", "@type": "sc:Range", "label": "f. 153v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981714.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-11.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-11-7.json", "@type": "sc:Range", "label": "f. 154."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981716.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-11.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-11-8.json", "@type": "sc:Range", "label": "f. 154v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981718.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-11.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-11-9.json", "@type": "sc:Range", "label": "f. 155."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981720.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-11.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-11-10.json", "@type": "sc:Range", "label": "f. 155v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981722.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981724.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981726.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981728.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981730.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981732.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981734.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981736.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981738.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981740.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981742.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981744.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981746.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981748.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981750.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-12.json", "@type": "sc:Range", "label": "Suffrages (ff. 156-163)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981722.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-12.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-12-1.json", "@type": "sc:Range", "label": "f. 156: St. Michael - St. Michael fighting the devil"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981724.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-12.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-12-2.json", "@type": "sc:Range", "label": "f. 156v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981726.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-12.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-12-3.json", "@type": "sc:Range", "label": "f. 157."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981728.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-12.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-12-4.json", "@type": "sc:Range", "label": "f. 157v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981730.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-12.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-12-5.json", "@type": "sc:Range", "label": "f. 158: Magdalen - Noli me tangere"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981732.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-12.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-12-6.json", "@type": "sc:Range", "label": "f. 158v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981734.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-12.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-12-7.json", "@type": "sc:Range", "label": "f. 159."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981736.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-12.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-12-8.json", "@type": "sc:Range", "label": "f. 159v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981738.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-12.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-12-9.json", "@type": "sc:Range", "label": "f. 160."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981740.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-12.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-12-10.json", "@type": "sc:Range", "label": "f. 160v: St. Christopher - St. Christopher carrying Christ"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981742.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-12.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-12-11.json", "@type": "sc:Range", "label": "f. 161."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981744.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-12.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-12-12.json", "@type": "sc:Range", "label": "f. 161v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981746.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-12.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-12-13.json", "@type": "sc:Range", "label": "f. 162: St. Sebastian - Martyrdom of St. Sebastian"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981748.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-12.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-12-14.json", "@type": "sc:Range", "label": "f. 162v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981750.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-12.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-12-15.json", "@type": "sc:Range", "label": "f. 163."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981752.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981754.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981756.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981758.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981760.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981762.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981764.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981766.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981768.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981770.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981772.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981774.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981776.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981778.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981780.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981782.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981784.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981786.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981788.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981790.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981792.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981794.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981796.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981798.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981800.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981802.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981804.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981806.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981808.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981810.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981812.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981814.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981816.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981818.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981820.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981822.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981824.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981826.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981828.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@type": "sc:Range", "label": "Prayers (ff. 163v-182v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981752.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-1.json", "@type": "sc:Range", "label": "f. 163v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981754.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-2.json", "@type": "sc:Range", "label": "f. 164."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981756.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-3.json", "@type": "sc:Range", "label": "f. 164v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981758.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-4.json", "@type": "sc:Range", "label": "f. 165."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981760.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-5.json", "@type": "sc:Range", "label": "f. 165v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981762.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-6.json", "@type": "sc:Range", "label": "f. 166."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981764.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-7.json", "@type": "sc:Range", "label": "f. 166v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981766.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-8.json", "@type": "sc:Range", "label": "f. 167."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981768.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-9.json", "@type": "sc:Range", "label": "f. 167v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981770.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-10.json", "@type": "sc:Range", "label": "f. 168."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981772.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-11.json", "@type": "sc:Range", "label": "f. 168v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981774.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-12.json", "@type": "sc:Range", "label": "f. 169."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981776.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-13.json", "@type": "sc:Range", "label": "f. 169v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981778.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-14.json", "@type": "sc:Range", "label": "f. 170."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981780.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-15.json", "@type": "sc:Range", "label": "f. 170v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981782.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-16.json", "@type": "sc:Range", "label": "f. 171."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981784.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-17.json", "@type": "sc:Range", "label": "f. 171v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981786.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-18.json", "@type": "sc:Range", "label": "f. 172."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981788.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-19.json", "@type": "sc:Range", "label": "f. 172v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981790.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-20.json", "@type": "sc:Range", "label": "f. 173."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981792.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-21.json", "@type": "sc:Range", "label": "f. 173v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981794.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-22.json", "@type": "sc:Range", "label": "f. 174."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981796.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-23.json", "@type": "sc:Range", "label": "f. 174v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981798.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-24.json", "@type": "sc:Range", "label": "f. 175."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981800.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-25.json", "@type": "sc:Range", "label": "f. 175v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981802.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-26.json", "@type": "sc:Range", "label": "f. 176."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981804.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-27.json", "@type": "sc:Range", "label": "f. 176v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981806.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-28.json", "@type": "sc:Range", "label": "f. 177."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981808.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-29.json", "@type": "sc:Range", "label": "f. 177v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981810.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-30.json", "@type": "sc:Range", "label": "f. 178: Prayers for St. Catherine - Martyrdom of St. Catherine"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981812.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-31.json", "@type": "sc:Range", "label": "f. 178v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981814.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-32.json", "@type": "sc:Range", "label": "f. 179."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981816.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-33.json", "@type": "sc:Range", "label": "f. 179v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981818.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-34.json", "@type": "sc:Range", "label": "f. 180."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981820.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-35.json", "@type": "sc:Range", "label": "f. 180v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981822.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-36.json", "@type": "sc:Range", "label": "f. 181."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981824.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-37.json", "@type": "sc:Range", "label": "f. 181v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981826.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-38.json", "@type": "sc:Range", "label": "f. 182."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981828.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-13-39.json", "@type": "sc:Range", "label": "f. 182v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981830.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981832.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981834.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981836.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981838.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981840.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981842.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981844.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981846.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981848.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981850.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981852.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981854.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981856.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981858.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981860.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981862.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981864.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981866.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981868.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981870.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981872.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981874.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981876.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981878.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981880.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981882.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981884.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981886.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981888.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981890.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981892.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981894.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981896.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981898.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981900.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@type": "sc:Range", "label": "Prayers - Seven Verses of St. Bernard and Other Prayers (ff. 183-199v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981830.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-1.json", "@type": "sc:Range", "label": "f. 183."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981832.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-2.json", "@type": "sc:Range", "label": "f. 183v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981834.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-3.json", "@type": "sc:Range", "label": "f. 184."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981836.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-4.json", "@type": "sc:Range", "label": "f. 184v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981838.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-5.json", "@type": "sc:Range", "label": "f. 185."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981840.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-6.json", "@type": "sc:Range", "label": "f. 185v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981842.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-7.json", "@type": "sc:Range", "label": "f. 186."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981844.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-8.json", "@type": "sc:Range", "label": "f. 186v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981846.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-9.json", "@type": "sc:Range", "label": "f. 187."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981848.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-10.json", "@type": "sc:Range", "label": "f. 187v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981850.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-11.json", "@type": "sc:Range", "label": "f. 188."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981852.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-12.json", "@type": "sc:Range", "label": "f. 188v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981854.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-13.json", "@type": "sc:Range", "label": "f. 189."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981856.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-14.json", "@type": "sc:Range", "label": "f. 189v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981858.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-15.json", "@type": "sc:Range", "label": "f. 190."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981860.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-16.json", "@type": "sc:Range", "label": "f. 190v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981862.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-17.json", "@type": "sc:Range", "label": "f. 191."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981864.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-18.json", "@type": "sc:Range", "label": "f. 191v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981866.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-19.json", "@type": "sc:Range", "label": "f. 192."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981868.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-20.json", "@type": "sc:Range", "label": "f. 192v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981870.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-21.json", "@type": "sc:Range", "label": "f. 193."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981872.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-22.json", "@type": "sc:Range", "label": "f. 193v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981874.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-23.json", "@type": "sc:Range", "label": "f. 194."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981876.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-24.json", "@type": "sc:Range", "label": "f. 194v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981878.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-25.json", "@type": "sc:Range", "label": "f. 195."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981880.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-26.json", "@type": "sc:Range", "label": "f. 195v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981882.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-27.json", "@type": "sc:Range", "label": "f. 196."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981884.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-28.json", "@type": "sc:Range", "label": "f. 196v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981886.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-29.json", "@type": "sc:Range", "label": "f. 197."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981888.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-30.json", "@type": "sc:Range", "label": "f. 197v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981890.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-31.json", "@type": "sc:Range", "label": "f. 198."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981892.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-32.json", "@type": "sc:Range", "label": "f. 198v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981894.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-33.json", "@type": "sc:Range", "label": "f. 199."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981896.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-34.json", "@type": "sc:Range", "label": "f. 199v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981898.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-35.json", "@type": "sc:Range", "label": "f. 200: Blank"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981900.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-14-36.json", "@type": "sc:Range", "label": "f. 200v: Blank"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981902.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981904.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981906.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981908.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981910.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981912.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981914.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981916.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981918.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981920.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981922.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981924.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981926.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981928.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981930.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981932.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981934.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981936.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981938.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981940.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981942.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981944.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981946.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981948.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981950.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981952.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981954.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981956.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981958.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981960.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981962.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981964.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981966.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981968.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981970.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981972.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981974.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981976.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981978.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981980.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981982.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981984.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981986.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981988.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981990.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981992.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981994.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981996.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981998.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982000.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982002.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982004.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982006.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982008.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982010.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982012.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982014.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982016.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982018.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982020.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982022.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982024.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982026.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982028.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982030.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982032.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982034.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982036.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982038.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982040.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982042.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982044.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982046.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982048.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@type": "sc:Range", "label": "Office of the Dead (ff. 201-237v)"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981902.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-1.json", "@type": "sc:Range", "label": "f. 201: Burial service"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981904.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-2.json", "@type": "sc:Range", "label": "f. 201v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981906.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-3.json", "@type": "sc:Range", "label": "f. 202."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981908.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-4.json", "@type": "sc:Range", "label": "f. 202v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981910.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-5.json", "@type": "sc:Range", "label": "f. 203."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981912.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-6.json", "@type": "sc:Range", "label": "f. 203v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981914.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-7.json", "@type": "sc:Range", "label": "f. 204."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981916.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-8.json", "@type": "sc:Range", "label": "f. 204v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981918.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-9.json", "@type": "sc:Range", "label": "f. 205."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981920.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-10.json", "@type": "sc:Range", "label": "f. 205v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981922.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-11.json", "@type": "sc:Range", "label": "f. 206."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981924.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-12.json", "@type": "sc:Range", "label": "f. 206v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981926.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-13.json", "@type": "sc:Range", "label": "f. 207."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981928.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-14.json", "@type": "sc:Range", "label": "f. 207v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981930.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-15.json", "@type": "sc:Range", "label": "f. 208."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981932.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-16.json", "@type": "sc:Range", "label": "f. 208v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981934.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-17.json", "@type": "sc:Range", "label": "f. 209."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981936.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-18.json", "@type": "sc:Range", "label": "f. 209v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981938.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-19.json", "@type": "sc:Range", "label": "f. 210."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981940.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-20.json", "@type": "sc:Range", "label": "f. 210v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981942.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-21.json", "@type": "sc:Range", "label": "f. 211."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981944.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-22.json", "@type": "sc:Range", "label": "f. 211v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981946.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-23.json", "@type": "sc:Range", "label": "f. 212."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981948.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-24.json", "@type": "sc:Range", "label": "f. 212v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981950.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-25.json", "@type": "sc:Range", "label": "f. 213."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981952.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-26.json", "@type": "sc:Range", "label": "f. 213v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981954.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-27.json", "@type": "sc:Range", "label": "f. 214."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981956.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-28.json", "@type": "sc:Range", "label": "f. 214v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981958.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-29.json", "@type": "sc:Range", "label": "f. 215."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981960.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-30.json", "@type": "sc:Range", "label": "f. 215v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981962.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-31.json", "@type": "sc:Range", "label": "f. 216."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981964.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-32.json", "@type": "sc:Range", "label": "f. 216v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981966.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-33.json", "@type": "sc:Range", "label": "f. 217."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981968.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-34.json", "@type": "sc:Range", "label": "f. 217v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981970.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-35.json", "@type": "sc:Range", "label": "f. 218."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981972.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-36.json", "@type": "sc:Range", "label": "f. 218v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981974.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-37.json", "@type": "sc:Range", "label": "f. 219."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981976.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-38.json", "@type": "sc:Range", "label": "f. 219v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981978.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-39.json", "@type": "sc:Range", "label": "f. 220."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981980.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-40.json", "@type": "sc:Range", "label": "f. 220v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981982.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-41.json", "@type": "sc:Range", "label": "f. 221."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981984.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-42.json", "@type": "sc:Range", "label": "f. 221v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981986.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-43.json", "@type": "sc:Range", "label": "f. 222."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981988.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-44.json", "@type": "sc:Range", "label": "f. 222v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981990.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-45.json", "@type": "sc:Range", "label": "f. 223."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981992.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-46.json", "@type": "sc:Range", "label": "f. 223v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981994.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-47.json", "@type": "sc:Range", "label": "f. 224."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981996.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-48.json", "@type": "sc:Range", "label": "f. 224v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981998.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-49.json", "@type": "sc:Range", "label": "f. 225."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982000.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-50.json", "@type": "sc:Range", "label": "f. 225v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982002.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-51.json", "@type": "sc:Range", "label": "f. 226."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982004.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-52.json", "@type": "sc:Range", "label": "f. 226v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982006.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-53.json", "@type": "sc:Range", "label": "f. 227."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982008.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-54.json", "@type": "sc:Range", "label": "f. 227v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982010.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-55.json", "@type": "sc:Range", "label": "f. 228."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982012.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-56.json", "@type": "sc:Range", "label": "f. 228v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982014.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-57.json", "@type": "sc:Range", "label": "f. 229."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982016.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-58.json", "@type": "sc:Range", "label": "f. 229v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982018.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-59.json", "@type": "sc:Range", "label": "f. 230."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982020.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-60.json", "@type": "sc:Range", "label": "f. 230v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982022.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-61.json", "@type": "sc:Range", "label": "f. 231."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982024.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-62.json", "@type": "sc:Range", "label": "f. 231v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982026.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-63.json", "@type": "sc:Range", "label": "f. 232."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982028.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-64.json", "@type": "sc:Range", "label": "f. 232v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982030.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-65.json", "@type": "sc:Range", "label": "f. 233."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982032.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-66.json", "@type": "sc:Range", "label": "f. 233v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982034.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-67.json", "@type": "sc:Range", "label": "f. 234."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982036.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-68.json", "@type": "sc:Range", "label": "f. 234v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982038.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-69.json", "@type": "sc:Range", "label": "f. 235."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982040.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-70.json", "@type": "sc:Range", "label": "f. 235v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982042.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-71.json", "@type": "sc:Range", "label": "f. 236."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982044.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-72.json", "@type": "sc:Range", "label": "f. 236v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982046.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-73.json", "@type": "sc:Range", "label": "f. 237."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982048.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-15-74.json", "@type": "sc:Range", "label": "f. 237v."}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982050.json", "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982052.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-16.json", "@type": "sc:Range", "label": "Back Matter"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982050.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-16.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-16-1.json", "@type": "sc:Range", "label": "Inside  back cover"}, {"canvases": ["https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982052.json"], "within": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-16.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/range/range-1-16-2.json", "@type": "sc:Range", "label": "Back cover"}], "sequences": [{"canvases": [{"label": "Front cover", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981094"}, "format": "image/jpeg", "height": 5243, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981094/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981094.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981094.json", "@type": "oa:Annotation"}], "height": 5243, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981094.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981094/full/150,/0/native.jpg"}}, {"label": "Inside front cover", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981096"}, "format": "image/jpeg", "height": 5112, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981096/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981096.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981096.json", "@type": "oa:Annotation"}], "height": 5112, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981096.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981096/full/150,/0/native.jpg"}}, {"label": "Fly leaf (1)", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981098"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981098/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981098.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981098.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981098.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981098/full/150,/0/native.jpg"}}, {"label": "Fly leaf (2)", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981100"}, "format": "image/jpeg", "height": 5113, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981100/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981100.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981100.json", "@type": "oa:Annotation"}], "height": 5113, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981100.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981100/full/150,/0/native.jpg"}}, {"label": "f. 1: Aquarius - Man eating and drinking", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981102"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981102/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981102.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981102.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981102.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981102/full/150,/0/native.jpg"}}, {"label": "f. 1v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981104"}, "format": "image/jpeg", "height": 5113, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981104/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981104.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981104.json", "@type": "oa:Annotation"}], "height": 5113, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981104.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981104/full/150,/0/native.jpg"}}, {"label": "f. 2: Pisces - Man warming his feet", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981106"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981106/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981106.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981106.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981106.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981106/full/150,/0/native.jpg"}}, {"label": "f. 2v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981108"}, "format": "image/jpeg", "height": 5113, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981108/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981108.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981108.json", "@type": "oa:Annotation"}], "height": 5113, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981108.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981108/full/150,/0/native.jpg"}}, {"label": "f. 3: Ares - Man cutting wood", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981110"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981110/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981110.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981110.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981110.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981110/full/150,/0/native.jpg"}}, {"label": "f. 3v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981112"}, "format": "image/jpeg", "height": 5113, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981112/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981112.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981112.json", "@type": "oa:Annotation"}], "height": 5113, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981112.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981112/full/150,/0/native.jpg"}}, {"label": "f. 4: Taurus - Man carrying trees", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981114"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981114/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981114.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981114.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981114.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981114/full/150,/0/native.jpg"}}, {"label": "f. 4v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981116"}, "format": "image/jpeg", "height": 5113, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981116/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981116.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981116.json", "@type": "oa:Annotation"}], "height": 5113, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981116.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981116/full/150,/0/native.jpg"}}, {"label": "f. 5: Gemini - Falconer on horseback", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981118"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981118/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981118.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981118.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981118.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981118/full/150,/0/native.jpg"}}, {"label": "f. 5v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981120"}, "format": "image/jpeg", "height": 5113, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981120/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981120.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981120.json", "@type": "oa:Annotation"}], "height": 5113, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981120.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981120/full/150,/0/native.jpg"}}, {"label": "f. 6: Cancer - Man cutting hay", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981122"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981122/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981122.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981122.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981122.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981122/full/150,/0/native.jpg"}}, {"label": "f. 6v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981124"}, "format": "image/jpeg", "height": 5113, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981124/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981124.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981124.json", "@type": "oa:Annotation"}], "height": 5113, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981124.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981124/full/150,/0/native.jpg"}}, {"label": "f. 7: Leo - Man harvesting crops", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981126"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981126/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981126.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981126.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981126.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981126/full/150,/0/native.jpg"}}, {"label": "f. 7v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981128"}, "format": "image/jpeg", "height": 5113, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981128/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981128.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981128.json", "@type": "oa:Annotation"}], "height": 5113, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981128.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981128/full/150,/0/native.jpg"}}, {"label": "f. 8: Virgo - Man threshing", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981130"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981130/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981130.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981130.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981130.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981130/full/150,/0/native.jpg"}}, {"label": "f. 8v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981132"}, "format": "image/jpeg", "height": 5113, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981132/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981132.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981132.json", "@type": "oa:Annotation"}], "height": 5113, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981132.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981132/full/150,/0/native.jpg"}}, {"label": "f. 9: Libra - Man crushing grapes", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981134"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981134/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981134.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981134.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981134.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981134/full/150,/0/native.jpg"}}, {"label": "f. 9v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981136"}, "format": "image/jpeg", "height": 5113, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981136/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981136.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981136.json", "@type": "oa:Annotation"}], "height": 5113, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981136.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981136/full/150,/0/native.jpg"}}, {"label": "f. 10: Scorpio - Man sowing seeds", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981138"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981138/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981138.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981138.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981138.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981138/full/150,/0/native.jpg"}}, {"label": "f. 10v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981140"}, "format": "image/jpeg", "height": 5113, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981140/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981140.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981140.json", "@type": "oa:Annotation"}], "height": 5113, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981140.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981140/full/150,/0/native.jpg"}}, {"label": "f. 11: Sagittarius - Man feeding hogs", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981142"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981142/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981142.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981142.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981142.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981142/full/150,/0/native.jpg"}}, {"label": "f. 11v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981144"}, "format": "image/jpeg", "height": 5113, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981144/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981144.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981144.json", "@type": "oa:Annotation"}], "height": 5113, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981144.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981144/full/150,/0/native.jpg"}}, {"label": "f. 12: Capricorn - Man butchering pig", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981146"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981146/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981146.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981146.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981146.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981146/full/150,/0/native.jpg"}}, {"label": "f. 12v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981148"}, "format": "image/jpeg", "height": 5113, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981148/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981148.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981148.json", "@type": "oa:Annotation"}], "height": 5113, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981148.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981148/full/150,/0/native.jpg"}}, {"label": "f. 13: John writing on Patmos", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981150"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981150/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981150.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981150.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981150.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981150/full/150,/0/native.jpg"}}, {"label": "f. 13v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981152"}, "format": "image/jpeg", "height": 5113, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981152/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981152.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981152.json", "@type": "oa:Annotation"}], "height": 5113, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981152.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981152/full/150,/0/native.jpg"}}, {"label": "f. 14.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981154"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981154/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981154.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981154.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981154.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981154/full/150,/0/native.jpg"}}, {"label": "f. 14v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981156"}, "format": "image/jpeg", "height": 5113, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981156/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981156.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981156.json", "@type": "oa:Annotation"}], "height": 5113, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981156.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981156/full/150,/0/native.jpg"}}, {"label": "f. 15: Matthew writing", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981158"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981158/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981158.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981158.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981158.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981158/full/150,/0/native.jpg"}}, {"label": "f. 15v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981160"}, "format": "image/jpeg", "height": 5113, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981160/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981160.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981160.json", "@type": "oa:Annotation"}], "height": 5113, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981160.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981160/full/150,/0/native.jpg"}}, {"label": "f. 16.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981162"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981162/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981162.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981162.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981162.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981162/full/150,/0/native.jpg"}}, {"label": "f. 16v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981164"}, "format": "image/jpeg", "height": 5113, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981164/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981164.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981164.json", "@type": "oa:Annotation"}], "height": 5113, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981164.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981164/full/150,/0/native.jpg"}}, {"label": "f. 17: Luke painting the Virgin and Child", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981166"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981166/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981166.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981166.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981166.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981166/full/150,/0/native.jpg"}}, {"label": "f. 17v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981168"}, "format": "image/jpeg", "height": 5113, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981168/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981168.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981168.json", "@type": "oa:Annotation"}], "height": 5113, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981168.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981168/full/150,/0/native.jpg"}}, {"label": "f. 18.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981170"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981170/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981170.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981170.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981170.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981170/full/150,/0/native.jpg"}}, {"label": "f. 18v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981172"}, "format": "image/jpeg", "height": 5113, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981172/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981172.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981172.json", "@type": "oa:Annotation"}], "height": 5113, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981172.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981172/full/150,/0/native.jpg"}}, {"label": "f. 19: Mark writing", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981174"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981174/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981174.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981174.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981174.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981174/full/150,/0/native.jpg"}}, {"label": "f. 19v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981176"}, "format": "image/jpeg", "height": 5113, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981176/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981176.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981176.json", "@type": "oa:Annotation"}], "height": 5113, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981176.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981176/full/150,/0/native.jpg"}}, {"label": "f. 20.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981178"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981178/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981178.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981178.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981178.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981178/full/150,/0/native.jpg"}}, {"label": "f. 20v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981180"}, "format": "image/jpeg", "height": 5113, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981180/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981180.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981180.json", "@type": "oa:Annotation"}], "height": 5113, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981180.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981180/full/150,/0/native.jpg"}}, {"label": "f. 21: Betrayal of Christ - Agony in the Garden - Christ before Annas - Christ before Caiphas - Apostles", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981182"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981182/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981182.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981182.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981182.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981182/full/150,/0/native.jpg"}}, {"label": "f. 21v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981184"}, "format": "image/jpeg", "height": 5113, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981184/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981184.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981184.json", "@type": "oa:Annotation"}], "height": 5113, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981184.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981184/full/150,/0/native.jpg"}}, {"label": "f. 22.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981186"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981186/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981186.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981186.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981186.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981186/full/150,/0/native.jpg"}}, {"label": "f. 22v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981188"}, "format": "image/jpeg", "height": 5113, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981188/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981188.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981188.json", "@type": "oa:Annotation"}], "height": 5113, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981188.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981188/full/150,/0/native.jpg"}}, {"label": "f. 23: Christ before Pilate", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981190"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981190/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981190.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981190.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981190.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981190/full/150,/0/native.jpg"}}, {"label": "f. 23v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981192"}, "format": "image/jpeg", "height": 5113, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981192/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981192.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981192.json", "@type": "oa:Annotation"}], "height": 5113, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981192.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981192/full/150,/0/native.jpg"}}, {"label": "f. 24.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981194"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981194/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981194.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981194.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981194.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981194/full/150,/0/native.jpg"}}, {"label": "f. 24v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981196"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981196/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981196.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981196.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981196.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981196/full/150,/0/native.jpg"}}, {"label": "f. 25: Flagellation", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981198"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981198/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981198.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981198.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981198.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981198/full/150,/0/native.jpg"}}, {"label": "f. 25v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981200"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981200/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981200.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981200.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981200.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981200/full/150,/0/native.jpg"}}, {"label": "f. 26.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981202"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981202/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981202.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981202.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981202.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981202/full/150,/0/native.jpg"}}, {"label": "f. 26v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981204"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981204/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981204.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981204.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981204.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981204/full/150,/0/native.jpg"}}, {"label": "f. 27: Christ carrying the cross", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981206"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981206/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981206.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981206.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981206.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981206/full/150,/0/native.jpg"}}, {"label": "f. 27v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981208"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981208/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981208.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981208.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981208.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981208/full/150,/0/native.jpg"}}, {"label": "f. 28.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981210"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981210/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981210.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981210.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981210.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981210/full/150,/0/native.jpg"}}, {"label": "f. 28v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981212"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981212/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981212.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981212.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981212.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981212/full/150,/0/native.jpg"}}, {"label": "f. 29: Crucifixion", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981214"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981214/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981214.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981214.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981214.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981214/full/150,/0/native.jpg"}}, {"label": "f. 29v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981216"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981216/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981216.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981216.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981216.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981216/full/150,/0/native.jpg"}}, {"label": "f. 30.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981218"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981218/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981218.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981218.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981218.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981218/full/150,/0/native.jpg"}}, {"label": "f. 30v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981220"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981220/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981220.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981220.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981220.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981220/full/150,/0/native.jpg"}}, {"label": "f. 31: Deposition", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981222"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981222/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981222.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981222.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981222.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981222/full/150,/0/native.jpg"}}, {"label": "f. 31v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981224"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981224/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981224.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981224.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981224.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981224/full/150,/0/native.jpg"}}, {"label": "f. 32.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981226"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981226/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981226.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981226.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981226.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981226/full/150,/0/native.jpg"}}, {"label": "f. 32v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981228"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981228/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981228.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981228.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981228.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981228/full/150,/0/native.jpg"}}, {"label": "f. 33: Entombment", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981230"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981230/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981230.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981230.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981230.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981230/full/150,/0/native.jpg"}}, {"label": "f. 33v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981232"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981232/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981232.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981232.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981232.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981232/full/150,/0/native.jpg"}}, {"label": "f. 34.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981234"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981234/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981234.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981234.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981234.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981234/full/150,/0/native.jpg"}}, {"label": "f. 34v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981236"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981236/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981236.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981236.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981236.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981236/full/150,/0/native.jpg"}}, {"label": "f. 35.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981238"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981238/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981238.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981238.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981238.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981238/full/150,/0/native.jpg"}}, {"label": "f. 35v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981240"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981240/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981240.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981240.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981240.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981240/full/150,/0/native.jpg"}}, {"label": "f. 36.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981242"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981242/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981242.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981242.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981242.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981242/full/150,/0/native.jpg"}}, {"label": "f. 36v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981244"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981244/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981244.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981244.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981244.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981244/full/150,/0/native.jpg"}}, {"label": "f. 37: Pentecost", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981246"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981246/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981246.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981246.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981246.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981246/full/150,/0/native.jpg"}}, {"label": "f. 37v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981248"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981248/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981248.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981248.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981248.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981248/full/150,/0/native.jpg"}}, {"label": "f. 38.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981250"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981250/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981250.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981250.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981250.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981250/full/150,/0/native.jpg"}}, {"label": "f. 38v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981252"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981252/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981252.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981252.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981252.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981252/full/150,/0/native.jpg"}}, {"label": "f. 39.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981254"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981254/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981254.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981254.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981254.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981254/full/150,/0/native.jpg"}}, {"label": "f. 39v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981256"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981256/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981256.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981256.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981256.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981256/full/150,/0/native.jpg"}}, {"label": "f. 40.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981258"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981258/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981258.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981258.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981258.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981258/full/150,/0/native.jpg"}}, {"label": "f. 40v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981260"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981260/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981260.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981260.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981260.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981260/full/150,/0/native.jpg"}}, {"label": "f. 41.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981262"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981262/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981262.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981262.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981262.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981262/full/150,/0/native.jpg"}}, {"label": "f. 41v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981264"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981264/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981264.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981264.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981264.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981264/full/150,/0/native.jpg"}}, {"label": "f. 42.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981266"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981266/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981266.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981266.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981266.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981266/full/150,/0/native.jpg"}}, {"label": "f. 42v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981268"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981268/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981268.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981268.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981268.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981268/full/150,/0/native.jpg"}}, {"label": "f. 43.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981270"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981270/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981270.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981270.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981270.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981270/full/150,/0/native.jpg"}}, {"label": "f. 43v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981272"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981272/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981272.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981272.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981272.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981272/full/150,/0/native.jpg"}}, {"label": "f. 44.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981274"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981274/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981274.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981274.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981274.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981274/full/150,/0/native.jpg"}}, {"label": "f. 44v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981276"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981276/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981276.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981276.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981276.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981276/full/150,/0/native.jpg"}}, {"label": "f. 45.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981278"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981278/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981278.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981278.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981278.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981278/full/150,/0/native.jpg"}}, {"label": "f. 45v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981280"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981280/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981280.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981280.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981280.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981280/full/150,/0/native.jpg"}}, {"label": "f. 46.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981282"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981282/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981282.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981282.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981282.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981282/full/150,/0/native.jpg"}}, {"label": "f. 46v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981284"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981284/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981284.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981284.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981284.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981284/full/150,/0/native.jpg"}}, {"label": "f. 47: The Annunciation - Bethrothal of Mary and Joseph - Mary weaving - Birth of the Virgin - Joachim in prayer", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981286"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981286/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981286.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981286.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981286.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981286/full/150,/0/native.jpg"}}, {"label": "f. 47v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981288"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981288/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981288.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981288.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981288.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981288/full/150,/0/native.jpg"}}, {"label": "f. 48.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981290"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981290/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981290.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981290.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981290.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981290/full/150,/0/native.jpg"}}, {"label": "f. 48v: Psalm 94", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981292"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981292/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981292.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981292.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981292.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981292/full/150,/0/native.jpg"}}, {"label": "f. 49.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981294"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981294/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981294.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981294.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981294.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981294/full/150,/0/native.jpg"}}, {"label": "f. 49v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981296"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981296/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981296.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981296.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981296.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981296/full/150,/0/native.jpg"}}, {"label": "f. 50.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981298"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981298/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981298.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981298.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981298.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981298/full/150,/0/native.jpg"}}, {"label": "f. 50v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981300"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981300/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981300.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981300.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981300.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981300/full/150,/0/native.jpg"}}, {"label": "f. 51: Psalm 8", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981302"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981302/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981302.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981302.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981302.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981302/full/150,/0/native.jpg"}}, {"label": "f. 51v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981304"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981304/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981304.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981304.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981304.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981304/full/150,/0/native.jpg"}}, {"label": "f. 52.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981306"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981306/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981306.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981306.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981306.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981306/full/150,/0/native.jpg"}}, {"label": "f. 52v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981308"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981308/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981308.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981308.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981308.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981308/full/150,/0/native.jpg"}}, {"label": "f. 53.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981310"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981310/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981310.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981310.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981310.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981310/full/150,/0/native.jpg"}}, {"label": "f. 53v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981312"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981312/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981312.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981312.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981312.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981312/full/150,/0/native.jpg"}}, {"label": "f. 54: Psalm 23", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981314"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981314/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981314.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981314.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981314.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981314/full/150,/0/native.jpg"}}, {"label": "f. 54v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981316"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981316/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981316.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981316.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981316.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981316/full/150,/0/native.jpg"}}, {"label": "f. 55.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981318"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981318/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981318.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981318.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981318.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981318/full/150,/0/native.jpg"}}, {"label": "f. 55v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981320"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981320/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981320.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981320.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981320.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981320/full/150,/0/native.jpg"}}, {"label": "f. 56.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981322"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981322/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981322.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981322.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981322.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981322/full/150,/0/native.jpg"}}, {"label": "f. 56v: First Lesson", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981324"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981324/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981324.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981324.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981324.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981324/full/150,/0/native.jpg"}}, {"label": "f. 57.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981326"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981326/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981326.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981326.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981326.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981326/full/150,/0/native.jpg"}}, {"label": "f. 57v: Second Lesson", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981328"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981328/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981328.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981328.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981328.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981328/full/150,/0/native.jpg"}}, {"label": "f. 58.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981330"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981330/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981330.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981330.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981330.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981330/full/150,/0/native.jpg"}}, {"label": "f. 58v: Third Lesson", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981332"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981332/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981332.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981332.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981332.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981332/full/150,/0/native.jpg"}}, {"label": "f. 59.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981334"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981334/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981334.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981334.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981334.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981334/full/150,/0/native.jpg"}}, {"label": "f. 59v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981336"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981336/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981336.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981336.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981336.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981336/full/150,/0/native.jpg"}}, {"label": "f. 60.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981338"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981338/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981338.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981338.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981338.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981338/full/150,/0/native.jpg"}}, {"label": "f. 60v: Hymn: Te deum laudamus", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981340"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981340/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981340.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981340.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981340.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981340/full/150,/0/native.jpg"}}, {"label": "f. 61.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981342"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981342/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981342.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981342.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981342.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981342/full/150,/0/native.jpg"}}, {"label": "f. 61v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981344"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981344/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981344.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981344.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981344.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981344/full/150,/0/native.jpg"}}, {"label": "f. 62.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981346"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981346/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981346.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981346.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981346.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981346/full/150,/0/native.jpg"}}, {"label": "f. 62v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981348"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981348/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981348.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981348.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981348.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981348/full/150,/0/native.jpg"}}, {"label": "f. 63: The Visitation", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981350"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981350/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981350.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981350.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981350.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981350/full/150,/0/native.jpg"}}, {"label": "f. 63v: Psalm 92", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981352"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981352/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981352.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981352.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981352.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981352/full/150,/0/native.jpg"}}, {"label": "f. 64.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981354"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981354/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981354.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981354.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981354.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981354/full/150,/0/native.jpg"}}, {"label": "f. 64v: Psalm 99", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981356"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981356/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981356.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981356.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981356.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981356/full/150,/0/native.jpg"}}, {"label": "f. 65: Psalm 62", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981358"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981358/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981358.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981358.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981358.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981358/full/150,/0/native.jpg"}}, {"label": "f. 65v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981360"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981360/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981360.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981360.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981360.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981360/full/150,/0/native.jpg"}}, {"label": "f. 66.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981362"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981362/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981362.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981362.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981362.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981362/full/150,/0/native.jpg"}}, {"label": "f. 66v: Psalm 66", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981364"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981364/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981364.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981364.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981364.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981364/full/150,/0/native.jpg"}}, {"label": "f. 67.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981366"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981366/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981366.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981366.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981366.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981366/full/150,/0/native.jpg"}}, {"label": "f. 67v: Canticle of the Three Children (Dan. 3:57-88)", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981368"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981368/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981368.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981368.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981368.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981368/full/150,/0/native.jpg"}}, {"label": "f. 68.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981370"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981370/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981370.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981370.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981370.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981370/full/150,/0/native.jpg"}}, {"label": "f. 68v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981372"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981372/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981372.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981372.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981372.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981372/full/150,/0/native.jpg"}}, {"label": "f. 69: Psalm 148", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981374"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981374/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981374.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981374.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981374.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981374/full/150,/0/native.jpg"}}, {"label": "f. 69v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981376"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981376/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981376.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981376.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981376.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981376/full/150,/0/native.jpg"}}, {"label": "f. 70.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981378"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981378/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981378.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981378.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981378.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981378/full/150,/0/native.jpg"}}, {"label": "f. 70v: Psalm 149", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981380"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981380/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981380.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981380.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981380.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981380/full/150,/0/native.jpg"}}, {"label": "f. 71.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981382"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981382/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981382.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981382.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981382.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981382/full/150,/0/native.jpg"}}, {"label": "f. 71v: Psalm 150", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981384"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981384/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981384.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981384.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981384.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981384/full/150,/0/native.jpg"}}, {"label": "f. 72.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981386"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981386/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981386.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981386.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981386.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981386/full/150,/0/native.jpg"}}, {"label": "f. 72v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981388"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981388/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981388.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981388.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981388.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981388/full/150,/0/native.jpg"}}, {"label": "f. 73: Hymn: O gloriosa domina", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981390"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981390/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981390.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981390.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981390.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981390/full/150,/0/native.jpg"}}, {"label": "f. 73v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981392"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981392/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981392.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981392.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981392.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981392/full/150,/0/native.jpg"}}, {"label": "f. 74.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981394"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981394/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981394.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981394.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981394.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981394/full/150,/0/native.jpg"}}, {"label": "f. 74v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981396"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981396/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981396.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981396.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981396.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981396/full/150,/0/native.jpg"}}, {"label": "f. 75.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981398"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981398/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981398.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981398.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981398.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981398/full/150,/0/native.jpg"}}, {"label": "f. 75v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981400"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981400/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981400.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981400.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981400.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981400/full/150,/0/native.jpg"}}, {"label": "f. 76.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981402"}, "format": "image/jpeg", "height": 4917, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981402/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981402.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981402.json", "@type": "oa:Annotation"}], "height": 4917, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981402.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981402/full/150,/0/native.jpg"}}, {"label": "f. 76v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981404"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981404/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981404.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981404.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981404.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981404/full/150,/0/native.jpg"}}, {"label": "f. 77: The Nativity", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981406"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981406/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981406.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981406.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981406.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981406/full/150,/0/native.jpg"}}, {"label": "f. 77v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981408"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981408/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981408.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981408.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981408.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981408/full/150,/0/native.jpg"}}, {"label": "f. 78.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981410"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981410/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981410.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981410.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981410.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981410/full/150,/0/native.jpg"}}, {"label": "f. 78v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981412"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981412/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981412.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981412.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981412.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981412/full/150,/0/native.jpg"}}, {"label": "f. 79: Psalm 53", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981414"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981414/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981414.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981414.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981414.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981414/full/150,/0/native.jpg"}}, {"label": "f. 79v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981416"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981416/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981416.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981416.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981416.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981416/full/150,/0/native.jpg"}}, {"label": "f. 80: Psalm 116", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981418"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981418/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981418.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981418.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981418.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981418/full/150,/0/native.jpg"}}, {"label": "f. 80v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981420"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981420/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981420.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981420.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981420.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981420/full/150,/0/native.jpg"}}, {"label": "f. 81.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981422"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981422/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981422.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981422.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981422.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981422/full/150,/0/native.jpg"}}, {"label": "f. 81v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981424"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981424/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981424.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981424.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981424.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981424/full/150,/0/native.jpg"}}, {"label": "f. 82.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981426"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981426/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981426.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981426.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981426.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981426/full/150,/0/native.jpg"}}, {"label": "f. 82v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981428"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981428/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981428.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981428.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981428.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981428/full/150,/0/native.jpg"}}, {"label": "f. 83.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981430"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981430/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981430.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981430.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981430.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981430/full/150,/0/native.jpg"}}, {"label": "f. 83v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981432"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981432/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981432.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981432.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981432.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981432/full/150,/0/native.jpg"}}, {"label": "f. 84.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981434"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981434/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981434.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981434.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981434.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981434/full/150,/0/native.jpg"}}, {"label": "f. 84v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981436"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981436/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981436.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981436.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981436.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981436/full/150,/0/native.jpg"}}, {"label": "f. 85.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981438"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981438/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981438.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981438.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981438.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981438/full/150,/0/native.jpg"}}, {"label": "f. 85v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981440"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981440/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981440.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981440.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981440.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981440/full/150,/0/native.jpg"}}, {"label": "f. 86.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981442"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981442/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981442.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981442.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981442.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981442/full/150,/0/native.jpg"}}, {"label": "f. 86v: Annunciation to the shepherds", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981444"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981444/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981444.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981444.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981444.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981444/full/150,/0/native.jpg"}}, {"label": "f. 87.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981446"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981446/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981446.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981446.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981446.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981446/full/150,/0/native.jpg"}}, {"label": "f. 87v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981448"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981448/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981448.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981448.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981448.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981448/full/150,/0/native.jpg"}}, {"label": "f. 88: Psalm 119", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981450"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981450/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981450.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981450.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981450.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981450/full/150,/0/native.jpg"}}, {"label": "f. 88v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981452"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981452/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981452.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981452.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981452.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981452/full/150,/0/native.jpg"}}, {"label": "f. 89: Psalm 120", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981454"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981454/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981454.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981454.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981454.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981454/full/150,/0/native.jpg"}}, {"label": "f. 89v: Psalm 121", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981456"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981456/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981456.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981456.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981456.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981456/full/150,/0/native.jpg"}}, {"label": "f. 90.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981458"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981458/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981458.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981458.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981458.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981458/full/150,/0/native.jpg"}}, {"label": "f. 90v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981460"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981460/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981460.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981460.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981460.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981460/full/150,/0/native.jpg"}}, {"label": "f. 91.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981462"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981462/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981462.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981462.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981462.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981462/full/150,/0/native.jpg"}}, {"label": "f. 91v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981464"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981464/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981464.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981464.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981464.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981464/full/150,/0/native.jpg"}}, {"label": "f. 92.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981466"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981466/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981466.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981466.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981466.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981466/full/150,/0/native.jpg"}}, {"label": "f. 92v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981468"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981468/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981468.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981468.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981468.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981468/full/150,/0/native.jpg"}}, {"label": "f. 93: The Adoration of the Magi", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981470"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981470/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981470.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981470.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981470.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981470/full/150,/0/native.jpg"}}, {"label": "f. 93v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981472"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981472/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981472.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981472.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981472.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981472/full/150,/0/native.jpg"}}, {"label": "f. 94: Psalm 122", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981474"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981474/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981474.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981474.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981474.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981474/full/150,/0/native.jpg"}}, {"label": "f. 94v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981476"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981476/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981476.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981476.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981476.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981476/full/150,/0/native.jpg"}}, {"label": "f. 95: Psalm 123", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981478"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981478/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981478.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981478.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981478.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981478/full/150,/0/native.jpg"}}, {"label": "f. 95v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981480"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981480/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981480.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981480.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981480.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981480/full/150,/0/native.jpg"}}, {"label": "f. 96: Psalm 124", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981482"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981482/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981482.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981482.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981482.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981482/full/150,/0/native.jpg"}}, {"label": "f. 96v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981484"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981484/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981484.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981484.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981484.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981484/full/150,/0/native.jpg"}}, {"label": "f. 97.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981486"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981486/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981486.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981486.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981486.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981486/full/150,/0/native.jpg"}}, {"label": "f. 97v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981488"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981488/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981488.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981488.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981488.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981488/full/150,/0/native.jpg"}}, {"label": "f. 98.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981490"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981490/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981490.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981490.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981490.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981490/full/150,/0/native.jpg"}}, {"label": "f. 98v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981492"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981492/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981492.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981492.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981492.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981492/full/150,/0/native.jpg"}}, {"label": "f. 99: Presentation in the temple", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981494"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981494/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981494.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981494.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981494.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981494/full/150,/0/native.jpg"}}, {"label": "f. 99v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981496"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981496/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981496.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981496.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981496.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981496/full/150,/0/native.jpg"}}, {"label": "f. 100: Psalm 125", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981498"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981498/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981498.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981498.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981498.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981498/full/150,/0/native.jpg"}}, {"label": "f. 100v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981500"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981500/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981500.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981500.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981500.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981500/full/150,/0/native.jpg"}}, {"label": "f. 101.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981502"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981502/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981502.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981502.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981502.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981502/full/150,/0/native.jpg"}}, {"label": "f. 101v: Psalm 126", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981504"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981504/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981504.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981504.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981504.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981504/full/150,/0/native.jpg"}}, {"label": "f. 102.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981506"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981506/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981506.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981506.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981506.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981506/full/150,/0/native.jpg"}}, {"label": "f. 102v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981508"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981508/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981508.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981508.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981508.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981508/full/150,/0/native.jpg"}}, {"label": "f. 103.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981510"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981510/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981510.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981510.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981510.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981510/full/150,/0/native.jpg"}}, {"label": "f. 103v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981512"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981512/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981512.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981512.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981512.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981512/full/150,/0/native.jpg"}}, {"label": "f. 104.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981514"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981514/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981514.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981514.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981514.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981514/full/150,/0/native.jpg"}}, {"label": "f. 104v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981516"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981516/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981516.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981516.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981516.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981516/full/150,/0/native.jpg"}}, {"label": "f. 105.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981518"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981518/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981518.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981518.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981518.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981518/full/150,/0/native.jpg"}}, {"label": "f. 105v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981520"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981520/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981520.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981520.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981520.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981520/full/150,/0/native.jpg"}}, {"label": "f. 106: Flight into Egypt", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981522"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981522/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981522.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981522.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981522.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981522/full/150,/0/native.jpg"}}, {"label": "f. 106v: Psalm 121", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981524"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981524/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981524.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981524.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981524.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981524/full/150,/0/native.jpg"}}, {"label": "f. 107.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981526"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981526/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981526.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981526.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981526.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981526/full/150,/0/native.jpg"}}, {"label": "f. 107v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981528"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981528/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981528.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981528.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981528.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981528/full/150,/0/native.jpg"}}, {"label": "f. 108: Psalm 122", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981530"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981530/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981530.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981530.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981530.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981530/full/150,/0/native.jpg"}}, {"label": "f. 108v: Psalm 126", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981532"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981532/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981532.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981532.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981532.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981532/full/150,/0/native.jpg"}}, {"label": "f. 109.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981534"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981534/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981534.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981534.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981534.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981534/full/150,/0/native.jpg"}}, {"label": "f. 109v: Psalm 124", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981536"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981536/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981536.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981536.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981536.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981536/full/150,/0/native.jpg"}}, {"label": "f. 110.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981538"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981538/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981538.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981538.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981538.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981538/full/150,/0/native.jpg"}}, {"label": "f. 110v: Psalm 125", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981540"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981540/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981540.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981540.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981540.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981540/full/150,/0/native.jpg"}}, {"label": "f. 111.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981542"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981542/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981542.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981542.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981542.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981542/full/150,/0/native.jpg"}}, {"label": "f. 111v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981544"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981544/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981544.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981544.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981544.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981544/full/150,/0/native.jpg"}}, {"label": "f. 112.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981546"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981546/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981546.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981546.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981546.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981546/full/150,/0/native.jpg"}}, {"label": "f. 112v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981548"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981548/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981548.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981548.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981548.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981548/full/150,/0/native.jpg"}}, {"label": "f. 113.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981550"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981550/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981550.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981550.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981550.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981550/full/150,/0/native.jpg"}}, {"label": "f. 113v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981552"}, "format": "image/jpeg", "height": 5062, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981552/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981552.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981552.json", "@type": "oa:Annotation"}], "height": 5062, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981552.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981552/full/150,/0/native.jpg"}}, {"label": "f. 114.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981554"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981554/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981554.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981554.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981554.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981554/full/150,/0/native.jpg"}}, {"label": "f. 114v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981556"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981556/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981556.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981556.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981556.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981556/full/150,/0/native.jpg"}}, {"label": "f. 115.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981558"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981558/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981558.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981558.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981558.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981558/full/150,/0/native.jpg"}}, {"label": "f. 115v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981560"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981560/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981560.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981560.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981560.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981560/full/150,/0/native.jpg"}}, {"label": "f. 116: Coronation of the Virgin", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981562"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981562/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981562.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981562.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981562.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981562/full/150,/0/native.jpg"}}, {"label": "f. 116v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981564"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981564/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981564.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981564.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981564.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981564/full/150,/0/native.jpg"}}, {"label": "f. 117.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981566"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981566/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981566.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981566.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981566.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981566/full/150,/0/native.jpg"}}, {"label": "f. 117v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981568"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981568/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981568.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981568.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981568.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981568/full/150,/0/native.jpg"}}, {"label": "f. 118.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981570"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981570/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981570.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981570.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981570.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981570/full/150,/0/native.jpg"}}, {"label": "f. 118v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981572"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981572/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981572.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981572.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981572.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981572/full/150,/0/native.jpg"}}, {"label": "f. 119: Psalm 128", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981574"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981574/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981574.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981574.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981574.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981574/full/150,/0/native.jpg"}}, {"label": "f. 119v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981576"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981576/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981576.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981576.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981576.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981576/full/150,/0/native.jpg"}}, {"label": "f. 120: Psalm 130", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981578"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981578/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981578.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981578.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981578.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981578/full/150,/0/native.jpg"}}, {"label": "f. 120v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981580"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981580/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981580.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981580.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981580.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981580/full/150,/0/native.jpg"}}, {"label": "f. 121.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981582"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981582/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981582.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981582.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981582.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981582/full/150,/0/native.jpg"}}, {"label": "f. 121v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981584"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981584/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981584.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981584.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981584.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981584/full/150,/0/native.jpg"}}, {"label": "f. 122.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981586"}, "format": "image/jpeg", "height": 5056, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981586/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981586.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981586.json", "@type": "oa:Annotation"}], "height": 5056, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981586.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981586/full/150,/0/native.jpg"}}, {"label": "f. 122v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981588"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981588/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981588.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981588.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981588.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981588/full/150,/0/native.jpg"}}, {"label": "f. 123.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981590"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981590/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981590.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981590.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981590.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981590/full/150,/0/native.jpg"}}, {"label": "f. 123v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981592"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981592/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981592.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981592.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981592.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981592/full/150,/0/native.jpg"}}, {"label": "f. 124.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981594"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981594/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981594.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981594.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981594.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981594/full/150,/0/native.jpg"}}, {"label": "f. 124v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981596"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981596/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981596.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981596.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981596.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981596/full/150,/0/native.jpg"}}, {"label": "f. 125.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981598"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981598/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981598.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981598.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981598.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981598/full/150,/0/native.jpg"}}, {"label": "f. 125v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981600"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981600/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981600.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981600.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981600.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981600/full/150,/0/native.jpg"}}, {"label": "f. 126.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981602"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981602/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981602.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981602.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981602.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981602/full/150,/0/native.jpg"}}, {"label": "f. 126v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981604"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981604/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981604.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981604.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981604.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981604/full/150,/0/native.jpg"}}, {"label": "f. 127: David in prayer", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981606"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981606/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981606.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981606.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981606.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981606/full/150,/0/native.jpg"}}, {"label": "f. 127v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981608"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981608/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981608.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981608.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981608.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981608/full/150,/0/native.jpg"}}, {"label": "f. 128.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981610"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981610/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981610.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981610.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981610.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981610/full/150,/0/native.jpg"}}, {"label": "f. 128v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981612"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981612/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981612.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981612.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981612.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981612/full/150,/0/native.jpg"}}, {"label": "f. 129.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981614"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981614/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981614.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981614.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981614.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981614/full/150,/0/native.jpg"}}, {"label": "f. 129v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981616"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981616/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981616.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981616.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981616.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981616/full/150,/0/native.jpg"}}, {"label": "f. 130.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981618"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981618/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981618.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981618.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981618.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981618/full/150,/0/native.jpg"}}, {"label": "f. 130v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981620"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981620/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981620.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981620.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981620.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981620/full/150,/0/native.jpg"}}, {"label": "f. 131.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981622"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981622/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981622.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981622.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981622.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981622/full/150,/0/native.jpg"}}, {"label": "f. 131v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981624"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981624/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981624.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981624.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981624.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981624/full/150,/0/native.jpg"}}, {"label": "f. 132.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981626"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981626/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981626.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981626.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981626.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981626/full/150,/0/native.jpg"}}, {"label": "f. 132v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981628"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981628/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981628.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981628.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981628.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981628/full/150,/0/native.jpg"}}, {"label": "f. 133.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981630"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981630/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981630.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981630.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981630.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981630/full/150,/0/native.jpg"}}, {"label": "f. 133v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981632"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981632/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981632.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981632.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981632.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981632/full/150,/0/native.jpg"}}, {"label": "f. 134.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981634"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981634/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981634.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981634.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981634.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981634/full/150,/0/native.jpg"}}, {"label": "f. 134v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981636"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981636/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981636.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981636.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981636.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981636/full/150,/0/native.jpg"}}, {"label": "f. 135.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981638"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981638/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981638.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981638.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981638.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981638/full/150,/0/native.jpg"}}, {"label": "f. 135v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981640"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981640/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981640.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981640.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981640.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981640/full/150,/0/native.jpg"}}, {"label": "f. 136.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981642"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981642/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981642.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981642.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981642.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981642/full/150,/0/native.jpg"}}, {"label": "f. 136v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981644"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981644/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981644.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981644.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981644.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981644/full/150,/0/native.jpg"}}, {"label": "f. 137.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981646"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981646/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981646.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981646.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981646.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981646/full/150,/0/native.jpg"}}, {"label": "f. 137v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981648"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981648/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981648.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981648.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981648.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981648/full/150,/0/native.jpg"}}, {"label": "f. 138.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981650"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981650/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981650.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981650.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981650.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981650/full/150,/0/native.jpg"}}, {"label": "f. 138v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981652"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981652/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981652.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981652.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981652.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981652/full/150,/0/native.jpg"}}, {"label": "f. 139.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981654"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981654/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981654.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981654.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981654.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981654/full/150,/0/native.jpg"}}, {"label": "f. 139v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981656"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981656/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981656.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981656.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981656.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981656/full/150,/0/native.jpg"}}, {"label": "f. 140.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981658"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981658/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981658.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981658.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981658.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981658/full/150,/0/native.jpg"}}, {"label": "f. 140v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981660"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981660/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981660.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981660.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981660.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981660/full/150,/0/native.jpg"}}, {"label": "f. 141.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981662"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981662/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981662.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981662.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981662.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981662/full/150,/0/native.jpg"}}, {"label": "f. 141v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981664"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981664/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981664.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981664.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981664.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981664/full/150,/0/native.jpg"}}, {"label": "f. 142.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981666"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981666/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981666.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981666.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981666.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981666/full/150,/0/native.jpg"}}, {"label": "f. 142v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981668"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981668/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981668.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981668.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981668.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981668/full/150,/0/native.jpg"}}, {"label": "f. 143.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981670"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981670/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981670.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981670.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981670.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981670/full/150,/0/native.jpg"}}, {"label": "f. 143v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981672"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981672/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981672.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981672.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981672.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981672/full/150,/0/native.jpg"}}, {"label": "f. 144.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981674"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981674/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981674.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981674.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981674.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981674/full/150,/0/native.jpg"}}, {"label": "f. 144v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981676"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981676/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981676.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981676.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981676.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981676/full/150,/0/native.jpg"}}, {"label": "f. 145.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981678"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981678/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981678.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981678.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981678.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981678/full/150,/0/native.jpg"}}, {"label": "f. 145v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981680"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981680/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981680.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981680.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981680.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981680/full/150,/0/native.jpg"}}, {"label": "f. 146.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981682"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981682/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981682.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981682.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981682.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981682/full/150,/0/native.jpg"}}, {"label": "f. 146v: St. Catherine and male saint with donor couple before the Virgin and Child", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981684"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981684/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981684.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981684.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981684.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981684/full/150,/0/native.jpg"}}, {"label": "f. 147.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981686"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981686/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981686.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981686.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981686.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981686/full/150,/0/native.jpg"}}, {"label": "f. 147v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981688"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981688/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981688.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981688.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981688.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981688/full/150,/0/native.jpg"}}, {"label": "f. 148.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981690"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981690/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981690.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981690.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981690.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981690/full/150,/0/native.jpg"}}, {"label": "f. 148v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981692"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981692/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981692.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981692.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981692.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981692/full/150,/0/native.jpg"}}, {"label": "f. 149.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981694"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981694/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981694.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981694.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981694.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981694/full/150,/0/native.jpg"}}, {"label": "f. 149v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981696"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981696/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981696.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981696.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981696.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981696/full/150,/0/native.jpg"}}, {"label": "f. 150.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981698"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981698/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981698.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981698.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981698.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981698/full/150,/0/native.jpg"}}, {"label": "f. 150v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981700"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981700/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981700.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981700.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981700.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981700/full/150,/0/native.jpg"}}, {"label": "f. 151: Pieta", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981702"}, "format": "image/jpeg", "height": 5045, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981702/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981702.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981702.json", "@type": "oa:Annotation"}], "height": 5045, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981702.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981702/full/150,/0/native.jpg"}}, {"label": "f. 151v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981704"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981704/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981704.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981704.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981704.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981704/full/150,/0/native.jpg"}}, {"label": "f. 152.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981706"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981706/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981706.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981706.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981706.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981706/full/150,/0/native.jpg"}}, {"label": "f. 152v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981708"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981708/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981708.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981708.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981708.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981708/full/150,/0/native.jpg"}}, {"label": "f. 153.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981710"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981710/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981710.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981710.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981710.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981710/full/150,/0/native.jpg"}}, {"label": "f. 153v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981712"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981712/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981712.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981712.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981712.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981712/full/150,/0/native.jpg"}}, {"label": "f. 154.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981714"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981714/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981714.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981714.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981714.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981714/full/150,/0/native.jpg"}}, {"label": "f. 154v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981716"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981716/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981716.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981716.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981716.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981716/full/150,/0/native.jpg"}}, {"label": "f. 155.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981718"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981718/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981718.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981718.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981718.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981718/full/150,/0/native.jpg"}}, {"label": "f. 155v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981720"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981720/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981720.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981720.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981720.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981720/full/150,/0/native.jpg"}}, {"label": "f. 156: St. Michael - St. Michael fighting the devil", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981722"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981722/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981722.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981722.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981722.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981722/full/150,/0/native.jpg"}}, {"label": "f. 156v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981724"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981724/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981724.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981724.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981724.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981724/full/150,/0/native.jpg"}}, {"label": "f. 157.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981726"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981726/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981726.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981726.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981726.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981726/full/150,/0/native.jpg"}}, {"label": "f. 157v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981728"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981728/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981728.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981728.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981728.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981728/full/150,/0/native.jpg"}}, {"label": "f. 158: Magdalen - Noli me tangere", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981730"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981730/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981730.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981730.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981730.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981730/full/150,/0/native.jpg"}}, {"label": "f. 158v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981732"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981732/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981732.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981732.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981732.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981732/full/150,/0/native.jpg"}}, {"label": "f. 159.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981734"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981734/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981734.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981734.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981734.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981734/full/150,/0/native.jpg"}}, {"label": "f. 159v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981736"}, "format": "image/jpeg", "height": 5001, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981736/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981736.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981736.json", "@type": "oa:Annotation"}], "height": 5001, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981736.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981736/full/150,/0/native.jpg"}}, {"label": "f. 160.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981738"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981738/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981738.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981738.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981738.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981738/full/150,/0/native.jpg"}}, {"label": "f. 160v: St. Christopher - St. Christopher carrying Christ", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981740"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981740/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981740.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981740.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981740.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981740/full/150,/0/native.jpg"}}, {"label": "f. 161.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981742"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981742/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981742.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981742.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981742.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981742/full/150,/0/native.jpg"}}, {"label": "f. 161v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981744"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981744/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981744.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981744.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981744.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981744/full/150,/0/native.jpg"}}, {"label": "f. 162: St. Sebastian - Martyrdom of St. Sebastian", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981746"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981746/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981746.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981746.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981746.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981746/full/150,/0/native.jpg"}}, {"label": "f. 162v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981748"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981748/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981748.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981748.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981748.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981748/full/150,/0/native.jpg"}}, {"label": "f. 163.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981750"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981750/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981750.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981750.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981750.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981750/full/150,/0/native.jpg"}}, {"label": "f. 163v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981752"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981752/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981752.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981752.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981752.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981752/full/150,/0/native.jpg"}}, {"label": "f. 164.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981754"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981754/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981754.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981754.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981754.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981754/full/150,/0/native.jpg"}}, {"label": "f. 164v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981756"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981756/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981756.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981756.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981756.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981756/full/150,/0/native.jpg"}}, {"label": "f. 165.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981758"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981758/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981758.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981758.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981758.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981758/full/150,/0/native.jpg"}}, {"label": "f. 165v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981760"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981760/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981760.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981760.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981760.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981760/full/150,/0/native.jpg"}}, {"label": "f. 166.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981762"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981762/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981762.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981762.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981762.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981762/full/150,/0/native.jpg"}}, {"label": "f. 166v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981764"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981764/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981764.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981764.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981764.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981764/full/150,/0/native.jpg"}}, {"label": "f. 167.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981766"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981766/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981766.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981766.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981766.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981766/full/150,/0/native.jpg"}}, {"label": "f. 167v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981768"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981768/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981768.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981768.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981768.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981768/full/150,/0/native.jpg"}}, {"label": "f. 168.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981770"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981770/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981770.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981770.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981770.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981770/full/150,/0/native.jpg"}}, {"label": "f. 168v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981772"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981772/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981772.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981772.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981772.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981772/full/150,/0/native.jpg"}}, {"label": "f. 169.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981774"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981774/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981774.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981774.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981774.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981774/full/150,/0/native.jpg"}}, {"label": "f. 169v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981776"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981776/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981776.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981776.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981776.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981776/full/150,/0/native.jpg"}}, {"label": "f. 170.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981778"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981778/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981778.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981778.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981778.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981778/full/150,/0/native.jpg"}}, {"label": "f. 170v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981780"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981780/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981780.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981780.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981780.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981780/full/150,/0/native.jpg"}}, {"label": "f. 171.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981782"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981782/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981782.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981782.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981782.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981782/full/150,/0/native.jpg"}}, {"label": "f. 171v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981784"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981784/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981784.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981784.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981784.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981784/full/150,/0/native.jpg"}}, {"label": "f. 172.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981786"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981786/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981786.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981786.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981786.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981786/full/150,/0/native.jpg"}}, {"label": "f. 172v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981788"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981788/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981788.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981788.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981788.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981788/full/150,/0/native.jpg"}}, {"label": "f. 173.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981790"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981790/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981790.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981790.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981790.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981790/full/150,/0/native.jpg"}}, {"label": "f. 173v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981792"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981792/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981792.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981792.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981792.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981792/full/150,/0/native.jpg"}}, {"label": "f. 174.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981794"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981794/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981794.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981794.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981794.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981794/full/150,/0/native.jpg"}}, {"label": "f. 174v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981796"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981796/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981796.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981796.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981796.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981796/full/150,/0/native.jpg"}}, {"label": "f. 175.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981798"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981798/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981798.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981798.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981798.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981798/full/150,/0/native.jpg"}}, {"label": "f. 175v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981800"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981800/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981800.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981800.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981800.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981800/full/150,/0/native.jpg"}}, {"label": "f. 176.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981802"}, "format": "image/jpeg", "height": 5051, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981802/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981802.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981802.json", "@type": "oa:Annotation"}], "height": 5051, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981802.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981802/full/150,/0/native.jpg"}}, {"label": "f. 176v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981804"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981804/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981804.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981804.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981804.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981804/full/150,/0/native.jpg"}}, {"label": "f. 177.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981806"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981806/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981806.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981806.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981806.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981806/full/150,/0/native.jpg"}}, {"label": "f. 177v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981808"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981808/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981808.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981808.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981808.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981808/full/150,/0/native.jpg"}}, {"label": "f. 178: Prayers for St. Catherine - Martyrdom of St. Catherine", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981810"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981810/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981810.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981810.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981810.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981810/full/150,/0/native.jpg"}}, {"label": "f. 178v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981812"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981812/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981812.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981812.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981812.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981812/full/150,/0/native.jpg"}}, {"label": "f. 179.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981814"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981814/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981814.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981814.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981814.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981814/full/150,/0/native.jpg"}}, {"label": "f. 179v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981816"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981816/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981816.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981816.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981816.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981816/full/150,/0/native.jpg"}}, {"label": "f. 180.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981818"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981818/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981818.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981818.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981818.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981818/full/150,/0/native.jpg"}}, {"label": "f. 180v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981820"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981820/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981820.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981820.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981820.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981820/full/150,/0/native.jpg"}}, {"label": "f. 181.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981822"}, "format": "image/jpeg", "height": 4984, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981822/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981822.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981822.json", "@type": "oa:Annotation"}], "height": 4984, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981822.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981822/full/150,/0/native.jpg"}}, {"label": "f. 181v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981824"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981824/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981824.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981824.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981824.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981824/full/150,/0/native.jpg"}}, {"label": "f. 182.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981826"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981826/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981826.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981826.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981826.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981826/full/150,/0/native.jpg"}}, {"label": "f. 182v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981828"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981828/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981828.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981828.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981828.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981828/full/150,/0/native.jpg"}}, {"label": "f. 183.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981830"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981830/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981830.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981830.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981830.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981830/full/150,/0/native.jpg"}}, {"label": "f. 183v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981832"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981832/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981832.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981832.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981832.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981832/full/150,/0/native.jpg"}}, {"label": "f. 184.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981834"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981834/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981834.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981834.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981834.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981834/full/150,/0/native.jpg"}}, {"label": "f. 184v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981836"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981836/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981836.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981836.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981836.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981836/full/150,/0/native.jpg"}}, {"label": "f. 185.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981838"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981838/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981838.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981838.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981838.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981838/full/150,/0/native.jpg"}}, {"label": "f. 185v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981840"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981840/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981840.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981840.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981840.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981840/full/150,/0/native.jpg"}}, {"label": "f. 186.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981842"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981842/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981842.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981842.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981842.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981842/full/150,/0/native.jpg"}}, {"label": "f. 186v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981844"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981844/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981844.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981844.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981844.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981844/full/150,/0/native.jpg"}}, {"label": "f. 187.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981846"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981846/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981846.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981846.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981846.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981846/full/150,/0/native.jpg"}}, {"label": "f. 187v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981848"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981848/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981848.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981848.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981848.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981848/full/150,/0/native.jpg"}}, {"label": "f. 188.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981850"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981850/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981850.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981850.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981850.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981850/full/150,/0/native.jpg"}}, {"label": "f. 188v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981852"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981852/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981852.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981852.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981852.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981852/full/150,/0/native.jpg"}}, {"label": "f. 189.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981854"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981854/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981854.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981854.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981854.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981854/full/150,/0/native.jpg"}}, {"label": "f. 189v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981856"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981856/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981856.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981856.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981856.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981856/full/150,/0/native.jpg"}}, {"label": "f. 190.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981858"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981858/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981858.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981858.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981858.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981858/full/150,/0/native.jpg"}}, {"label": "f. 190v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981860"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981860/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981860.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981860.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981860.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981860/full/150,/0/native.jpg"}}, {"label": "f. 191.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981862"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981862/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981862.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981862.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981862.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981862/full/150,/0/native.jpg"}}, {"label": "f. 191v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981864"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981864/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981864.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981864.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981864.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981864/full/150,/0/native.jpg"}}, {"label": "f. 192.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981866"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981866/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981866.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981866.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981866.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981866/full/150,/0/native.jpg"}}, {"label": "f. 192v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981868"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981868/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981868.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981868.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981868.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981868/full/150,/0/native.jpg"}}, {"label": "f. 193.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981870"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981870/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981870.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981870.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981870.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981870/full/150,/0/native.jpg"}}, {"label": "f. 193v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981872"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981872/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981872.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981872.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981872.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981872/full/150,/0/native.jpg"}}, {"label": "f. 194.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981874"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981874/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981874.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981874.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981874.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981874/full/150,/0/native.jpg"}}, {"label": "f. 194v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981876"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981876/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981876.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981876.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981876.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981876/full/150,/0/native.jpg"}}, {"label": "f. 195.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981878"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981878/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981878.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981878.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981878.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981878/full/150,/0/native.jpg"}}, {"label": "f. 195v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981880"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981880/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981880.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981880.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981880.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981880/full/150,/0/native.jpg"}}, {"label": "f. 196.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981882"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981882/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981882.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981882.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981882.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981882/full/150,/0/native.jpg"}}, {"label": "f. 196v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981884"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981884/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981884.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981884.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981884.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981884/full/150,/0/native.jpg"}}, {"label": "f. 197.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981886"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981886/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981886.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981886.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981886.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981886/full/150,/0/native.jpg"}}, {"label": "f. 197v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981888"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981888/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981888.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981888.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981888.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981888/full/150,/0/native.jpg"}}, {"label": "f. 198.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981890"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981890/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981890.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981890.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981890.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981890/full/150,/0/native.jpg"}}, {"label": "f. 198v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981892"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981892/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981892.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981892.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981892.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981892/full/150,/0/native.jpg"}}, {"label": "f. 199.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981894"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981894/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981894.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981894.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981894.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981894/full/150,/0/native.jpg"}}, {"label": "f. 199v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981896"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981896/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981896.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981896.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981896.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981896/full/150,/0/native.jpg"}}, {"label": "f. 200: Blank", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981898"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981898/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981898.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981898.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981898.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981898/full/150,/0/native.jpg"}}, {"label": "f. 200v: Blank", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981900"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981900/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981900.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981900.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981900.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981900/full/150,/0/native.jpg"}}, {"label": "f. 201: Burial service", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981902"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981902/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981902.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981902.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981902.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981902/full/150,/0/native.jpg"}}, {"label": "f. 201v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981904"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981904/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981904.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981904.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981904.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981904/full/150,/0/native.jpg"}}, {"label": "f. 202.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981906"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981906/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981906.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981906.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981906.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981906/full/150,/0/native.jpg"}}, {"label": "f. 202v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981908"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981908/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981908.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981908.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981908.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981908/full/150,/0/native.jpg"}}, {"label": "f. 203.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981910"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981910/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981910.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981910.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981910.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981910/full/150,/0/native.jpg"}}, {"label": "f. 203v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981912"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981912/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981912.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981912.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981912.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981912/full/150,/0/native.jpg"}}, {"label": "f. 204.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981914"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981914/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981914.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981914.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981914.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981914/full/150,/0/native.jpg"}}, {"label": "f. 204v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981916"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981916/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981916.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981916.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981916.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981916/full/150,/0/native.jpg"}}, {"label": "f. 205.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981918"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981918/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981918.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981918.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981918.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981918/full/150,/0/native.jpg"}}, {"label": "f. 205v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981920"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981920/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981920.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981920.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981920.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981920/full/150,/0/native.jpg"}}, {"label": "f. 206.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981922"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981922/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981922.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981922.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981922.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981922/full/150,/0/native.jpg"}}, {"label": "f. 206v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981924"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981924/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981924.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981924.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981924.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981924/full/150,/0/native.jpg"}}, {"label": "f. 207.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981926"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981926/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981926.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981926.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981926.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981926/full/150,/0/native.jpg"}}, {"label": "f. 207v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981928"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981928/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981928.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981928.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981928.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981928/full/150,/0/native.jpg"}}, {"label": "f. 208.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981930"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981930/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981930.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981930.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981930.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981930/full/150,/0/native.jpg"}}, {"label": "f. 208v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981932"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981932/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981932.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981932.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981932.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981932/full/150,/0/native.jpg"}}, {"label": "f. 209.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981934"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981934/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981934.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981934.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981934.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981934/full/150,/0/native.jpg"}}, {"label": "f. 209v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981936"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981936/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981936.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981936.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981936.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981936/full/150,/0/native.jpg"}}, {"label": "f. 210.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981938"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981938/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981938.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981938.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981938.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981938/full/150,/0/native.jpg"}}, {"label": "f. 210v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981940"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981940/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981940.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981940.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981940.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981940/full/150,/0/native.jpg"}}, {"label": "f. 211.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981942"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981942/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981942.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981942.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981942.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981942/full/150,/0/native.jpg"}}, {"label": "f. 211v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981944"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981944/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981944.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981944.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981944.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981944/full/150,/0/native.jpg"}}, {"label": "f. 212.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981946"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981946/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981946.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981946.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981946.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981946/full/150,/0/native.jpg"}}, {"label": "f. 212v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981948"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981948/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981948.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981948.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981948.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981948/full/150,/0/native.jpg"}}, {"label": "f. 213.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981950"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981950/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981950.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981950.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981950.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981950/full/150,/0/native.jpg"}}, {"label": "f. 213v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981952"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981952/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981952.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981952.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981952.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981952/full/150,/0/native.jpg"}}, {"label": "f. 214.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981954"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981954/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981954.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981954.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981954.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981954/full/150,/0/native.jpg"}}, {"label": "f. 214v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981956"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981956/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981956.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981956.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981956.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981956/full/150,/0/native.jpg"}}, {"label": "f. 215.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981958"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981958/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981958.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981958.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981958.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981958/full/150,/0/native.jpg"}}, {"label": "f. 215v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981960"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981960/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981960.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981960.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981960.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981960/full/150,/0/native.jpg"}}, {"label": "f. 216.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981962"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981962/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981962.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981962.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981962.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981962/full/150,/0/native.jpg"}}, {"label": "f. 216v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981964"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981964/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981964.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981964.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981964.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981964/full/150,/0/native.jpg"}}, {"label": "f. 217.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981966"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981966/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981966.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981966.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981966.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981966/full/150,/0/native.jpg"}}, {"label": "f. 217v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981968"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981968/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981968.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981968.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981968.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981968/full/150,/0/native.jpg"}}, {"label": "f. 218.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981970"}, "format": "image/jpeg", "height": 5034, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981970/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981970.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981970.json", "@type": "oa:Annotation"}], "height": 5034, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981970.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981970/full/150,/0/native.jpg"}}, {"label": "f. 218v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981972"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981972/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981972.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981972.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981972.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981972/full/150,/0/native.jpg"}}, {"label": "f. 219.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981974"}, "format": "image/jpeg", "height": 5097, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981974/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981974.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981974.json", "@type": "oa:Annotation"}], "height": 5097, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981974.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981974/full/150,/0/native.jpg"}}, {"label": "f. 219v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981976"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981976/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981976.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981976.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981976.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981976/full/150,/0/native.jpg"}}, {"label": "f. 220.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981978"}, "format": "image/jpeg", "height": 5097, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981978/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981978.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981978.json", "@type": "oa:Annotation"}], "height": 5097, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981978.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981978/full/150,/0/native.jpg"}}, {"label": "f. 220v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981980"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981980/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981980.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981980.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981980.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981980/full/150,/0/native.jpg"}}, {"label": "f. 221.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981982"}, "format": "image/jpeg", "height": 5097, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981982/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981982.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981982.json", "@type": "oa:Annotation"}], "height": 5097, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981982.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981982/full/150,/0/native.jpg"}}, {"label": "f. 221v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981984"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981984/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981984.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981984.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981984.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981984/full/150,/0/native.jpg"}}, {"label": "f. 222.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981986"}, "format": "image/jpeg", "height": 5097, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981986/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981986.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981986.json", "@type": "oa:Annotation"}], "height": 5097, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981986.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981986/full/150,/0/native.jpg"}}, {"label": "f. 222v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981988"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981988/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981988.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981988.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981988.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981988/full/150,/0/native.jpg"}}, {"label": "f. 223.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981990"}, "format": "image/jpeg", "height": 5097, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981990/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981990.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981990.json", "@type": "oa:Annotation"}], "height": 5097, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981990.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981990/full/150,/0/native.jpg"}}, {"label": "f. 223v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981992"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981992/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981992.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981992.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981992.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981992/full/150,/0/native.jpg"}}, {"label": "f. 224.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981994"}, "format": "image/jpeg", "height": 5097, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981994/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981994.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981994.json", "@type": "oa:Annotation"}], "height": 5097, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981994.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981994/full/150,/0/native.jpg"}}, {"label": "f. 224v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981996"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981996/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981996.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981996.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981996.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981996/full/150,/0/native.jpg"}}, {"label": "f. 225.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981998"}, "format": "image/jpeg", "height": 5097, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981998/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981998.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5981998.json", "@type": "oa:Annotation"}], "height": 5097, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981998.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5981998/full/150,/0/native.jpg"}}, {"label": "f. 225v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982000"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982000/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982000.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5982000.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982000.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982000/full/150,/0/native.jpg"}}, {"label": "f. 226.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982002"}, "format": "image/jpeg", "height": 5097, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982002/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982002.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5982002.json", "@type": "oa:Annotation"}], "height": 5097, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982002.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982002/full/150,/0/native.jpg"}}, {"label": "f. 226v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982004"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982004/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982004.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5982004.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982004.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982004/full/150,/0/native.jpg"}}, {"label": "f. 227.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982006"}, "format": "image/jpeg", "height": 5097, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982006/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982006.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5982006.json", "@type": "oa:Annotation"}], "height": 5097, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982006.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982006/full/150,/0/native.jpg"}}, {"label": "f. 227v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982008"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982008/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982008.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5982008.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982008.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982008/full/150,/0/native.jpg"}}, {"label": "f. 228.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982010"}, "format": "image/jpeg", "height": 5097, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982010/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982010.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5982010.json", "@type": "oa:Annotation"}], "height": 5097, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982010.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982010/full/150,/0/native.jpg"}}, {"label": "f. 228v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982012"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982012/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982012.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5982012.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982012.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982012/full/150,/0/native.jpg"}}, {"label": "f. 229.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982014"}, "format": "image/jpeg", "height": 5097, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982014/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982014.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5982014.json", "@type": "oa:Annotation"}], "height": 5097, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982014.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982014/full/150,/0/native.jpg"}}, {"label": "f. 229v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982016"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982016/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982016.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5982016.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982016.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982016/full/150,/0/native.jpg"}}, {"label": "f. 230.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982018"}, "format": "image/jpeg", "height": 5097, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982018/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982018.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5982018.json", "@type": "oa:Annotation"}], "height": 5097, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982018.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982018/full/150,/0/native.jpg"}}, {"label": "f. 230v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982020"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982020/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982020.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5982020.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982020.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982020/full/150,/0/native.jpg"}}, {"label": "f. 231.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982022"}, "format": "image/jpeg", "height": 5097, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982022/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982022.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5982022.json", "@type": "oa:Annotation"}], "height": 5097, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982022.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982022/full/150,/0/native.jpg"}}, {"label": "f. 231v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982024"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982024/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982024.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5982024.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982024.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982024/full/150,/0/native.jpg"}}, {"label": "f. 232.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982026"}, "format": "image/jpeg", "height": 5097, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982026/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982026.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5982026.json", "@type": "oa:Annotation"}], "height": 5097, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982026.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982026/full/150,/0/native.jpg"}}, {"label": "f. 232v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982028"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982028/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982028.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5982028.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982028.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982028/full/150,/0/native.jpg"}}, {"label": "f. 233.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982030"}, "format": "image/jpeg", "height": 5097, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982030/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982030.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5982030.json", "@type": "oa:Annotation"}], "height": 5097, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982030.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982030/full/150,/0/native.jpg"}}, {"label": "f. 233v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982032"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982032/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982032.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5982032.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982032.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982032/full/150,/0/native.jpg"}}, {"label": "f. 234.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982034"}, "format": "image/jpeg", "height": 5097, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982034/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982034.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5982034.json", "@type": "oa:Annotation"}], "height": 5097, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982034.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982034/full/150,/0/native.jpg"}}, {"label": "f. 234v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982036"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982036/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982036.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5982036.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982036.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982036/full/150,/0/native.jpg"}}, {"label": "f. 235.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982038"}, "format": "image/jpeg", "height": 5097, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982038/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982038.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5982038.json", "@type": "oa:Annotation"}], "height": 5097, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982038.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982038/full/150,/0/native.jpg"}}, {"label": "f. 235v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982040"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982040/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982040.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5982040.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982040.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982040/full/150,/0/native.jpg"}}, {"label": "f. 236.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982042"}, "format": "image/jpeg", "height": 5097, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982042/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982042.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5982042.json", "@type": "oa:Annotation"}], "height": 5097, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982042.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982042/full/150,/0/native.jpg"}}, {"label": "f. 236v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982044"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982044/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982044.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5982044.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982044.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982044/full/150,/0/native.jpg"}}, {"label": "f. 237.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982046"}, "format": "image/jpeg", "height": 5097, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982046/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982046.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5982046.json", "@type": "oa:Annotation"}], "height": 5097, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982046.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982046/full/150,/0/native.jpg"}}, {"label": "f. 237v.", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982048"}, "format": "image/jpeg", "height": 4927, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982048/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982048.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5982048.json", "@type": "oa:Annotation"}], "height": 4927, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982048.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982048/full/150,/0/native.jpg"}}, {"label": "Inside  back cover", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982050"}, "format": "image/jpeg", "height": 5097, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982050/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982050.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5982050.json", "@type": "oa:Annotation"}], "height": 5097, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982050.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982050/full/150,/0/native.jpg"}}, {"label": "Back cover", "width": 4680, "@type": "sc:Canvas", "images": [{"resource": {"service": {"profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1", "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982052"}, "format": "image/jpeg", "height": 5316, "width": 4680, "@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982052/full/full/0/native.jpg", "@type": "dctypes:Image"}, "on": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982052.json", "motivation": "sc:painting", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/annotation/anno-5982052.json", "@type": "oa:Annotation"}], "height": 5316, "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982052.json", "thumbnail": {"@id": "https://images-dev.harvardx.harvard.edu/ids/iiif/5982052/full/150,/0/native.jpg"}}], "viewingDirection": "left-to-right", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/sequence/normal.json", "@type": "sc:Sequence", "viewingHint": "paged"}], "related": "http://hollisclassic.harvard.edu/F?func=find-c&CCL_TERM=sys=009878940", "label": "MS Richardson 7. Houghton Library, Harvard University. Heures de N\u00f4tre Dame (use of Troyes and Sens) : manuscript, [ca. 1470]", "logo": "https://images.harvardx.harvard.edu/iiif/harvard_logo.tif/full/full/0/default.jpg", "@context": "http://www.shared-canvas.org/ns/context.json", "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093", "@type": "sc:Manifest"}
\ No newline at end of file
diff --git a/spec/fixtures/annotationLegacyOa.json b/spec/fixtures/annotationLegacyOa.json
deleted file mode 100644
index 5c860d634ca2bc0b1a2dfdcb7de2a485c7664704..0000000000000000000000000000000000000000
--- a/spec/fixtures/annotationLegacyOa.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-  "@id": "http://iiif.ultrawaahoo.net/annotations/27",
-  "@type": "oa:Annotation",
-  "motivation": "sc:painting",
-  "resource": {
-    "@id": "http://iiif.ultrawaahoo.net/annotations/27",
-    "@type": "cnt:ContentAsText",
-    "format": "text/plain",
-    "chars": "This is a legacy annotation."
-  },
-  "on": "http://iiif.ultrawaahoo.net/canvases/3927#xywh=154,304,3507,164"
-}
\ No newline at end of file
diff --git a/spec/fixtures/annotationMirador21.json b/spec/fixtures/annotationMirador21.json
deleted file mode 100644
index 4dfaedb845577d5fdc516b71a2c0b98a2a0e85fb..0000000000000000000000000000000000000000
--- a/spec/fixtures/annotationMirador21.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
-  "@context": "http://iiif.io/api/presentation/2/context.json",
-  "@type": "oa:Annotation",
-  "motivation": [
-    "oa:commenting"
-  ],
-  "resource": [
-    {
-      "@type": "dctypes:Text",
-      "format": "text/html",
-      "chars": "<p>something</p>"
-    }
-  ],
-  "on": {
-    "@type": "oa:SpecificResource",
-    "full": "https://oculus-dev.harvardx.harvard.edu/manifests/huam:320567/canvas/canvas-10466656.json",
-    "selector": {
-      "@type": "oa:SvgSelector",
-      "value": "<svg xmlns='http://www.w3.org/2000/svg'><path xmlns=\"http://www.w3.org/2000/svg\" d=\"M1000.24213,219.15375l98.78935,0l0,0l98.78935,0l0,74.09201l0,74.09201l-98.78935,0l-98.78935,0l0,-74.09201z\" data-paper-data=\"{&quot;strokeWidth&quot;:1,&quot;rotation&quot;:0,&quot;annotation&quot;:null,&quot;editable&quot;:true}\" id=\"rectangle_7e2b56fa-b18b-4d09-a575-0bb19f560b56\" fill-opacity=\"0\" fill=\"#00bfff\" fill-rule=\"nonzero\" stroke=\"#00bfff\" stroke-width=\"30.87167\" stroke-linecap=\"butt\" stroke-linejoin=\"miter\" stroke-miterlimit=\"10\" stroke-dasharray=\"\" stroke-dashoffset=\"0\" font-family=\"sans-serif\" font-weight=\"normal\" font-size=\"12\" text-anchor=\"start\" style=\"mix-blend-mode: normal\"/></svg>"
-    },
-    "within": {
-      "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/huam:320567",
-      "@type": "sc:Manifest"
-    }
-  },
-  "@id": "d2eda2e2-951a-4f88-b4ec-03a7b25a5d07"
-}
diff --git a/spec/fixtures/annotationMiradorDual.json b/spec/fixtures/annotationMiradorDual.json
deleted file mode 100644
index 6d2997713341fe4d90ccf295ddd49a692f6b61a6..0000000000000000000000000000000000000000
--- a/spec/fixtures/annotationMiradorDual.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
-  "@context": "http://iiif.io/api/presentation/2/context.json",
-  "@type": "oa:Annotation",
-  "motivation": [
-    "oa:commenting"
-  ],
-  "resource": [
-    {
-      "@type": "dctypes:Text",
-      "format": "text/html",
-      "chars": "<p>something</p>"
-    }
-  ],
-  "on": [{
-    "@type": "oa:SpecificResource",
-    "full": "https://oculus-dev.harvardx.harvard.edu/manifests/huam:320567/canvas/canvas-10466656.json",
-    "selector": {
-      "@type": "oa:Choice",
-      "default": {
-        "@type": "oa:FragmentSelector",
-        "value": "xywh=1000,219,198,148"
-      },
-      "item": {
-        "@type": "oa:SvgSelector",
-        "value": "<svg xmlns='http://www.w3.org/2000/svg'><path xmlns=\"http://www.w3.org/2000/svg\" d=\"M1000.24213,219.15375l98.78935,0l0,0l98.78935,0l0,74.09201l0,74.09201l-98.78935,0l-98.78935,0l0,-74.09201z\" data-paper-data=\"{&quot;strokeWidth&quot;:1,&quot;rotation&quot;:0,&quot;annotation&quot;:null,&quot;editable&quot;:true}\" id=\"rectangle_7e2b56fa-b18b-4d09-a575-0bb19f560b56\" fill-opacity=\"0\" fill=\"#00bfff\" fill-rule=\"nonzero\" stroke=\"#00bfff\" stroke-width=\"30.87167\" stroke-linecap=\"butt\" stroke-linejoin=\"miter\" stroke-miterlimit=\"10\" stroke-dasharray=\"\" stroke-dashoffset=\"0\" font-family=\"sans-serif\" font-weight=\"normal\" font-size=\"12\" text-anchor=\"start\" style=\"mix-blend-mode: normal\"/></svg>"
-      }
-    },
-    "within": {
-      "@id": "https://oculus-dev.harvardx.harvard.edu/manifests/huam:320567",
-      "@type": "sc:Manifest"
-    }
-  }],
-  "@id": "d2eda2e2-951a-4f88-b4ec-03a7b25a5d07"
-}
diff --git a/spec/fixtures/annotationMiradorLegacy.json b/spec/fixtures/annotationMiradorLegacy.json
deleted file mode 100644
index 994c35e171cae5dc013701788038091ada7d4fd2..0000000000000000000000000000000000000000
--- a/spec/fixtures/annotationMiradorLegacy.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
-  "@context" : "http://iiif.io/api/presentation/2/context.json",
-  "@type" : "oa:Annotation",
-  "motivation" : [ "oa:commenting" ],
-  "resource" : [ {
-    "@type" : "dctypes:Text",
-    "format" : "text/html",
-    "chars" : "<p>1852-1921</p>"
-  } ],
-  "on" : {
-    "@type" : "oa:SpecificResource",
-    "full" : "http://dams.llgc.org.uk/iiif/2.0/4574752/canvas/4574755.json",
-    "selector" : {
-      "@type" : "oa:FragmentSelector",
-      "value" : "xywh=2218,3217,371,78"
-    }
-  }
-}
\ No newline at end of file
diff --git a/spec/fixtures/dummyManifest.json b/spec/fixtures/dummyManifest.json
deleted file mode 100644
index 8b7421cf3db79621778e407e77331c4714fa44b4..0000000000000000000000000000000000000000
--- a/spec/fixtures/dummyManifest.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
-   "@context":"http://iiif.io/api/presentation/2/context.json",
-   "@id":"http://www.example.org/iiif/book1/manifest",
-   "@type":"sc:Manifest",
-   "label":"Dummy Manifest",
-   "description": "A dummy manifest with a single, empty canvas.",
-   "sequences":[
-      {
-         "@id":"http://www.example.org/iiif/book1/sequence/normal",
-         "@type":"sc:Sequence",
-         "label":"Default Sequence",
-         "canvases":[
-            {
-               "@id":"http://www.example.org/iiif/book1/canvas/p1",
-               "@type":"sc:Canvas",
-               "label":"Default Canvas",
-               "width":1234,
-               "height":4321,
-               "images": [
-                  {
-                     "@id": "http://www.example.org/iiif/image/1",
-                     "@type": "oa:Annotation",
-                     "motivation": "sc:painting",
-                     "on": "http://www.example.org/iiif/book1/canvas/p1",
-                     "resource": {
-                        "@id": "http://www.example.org/iiif/resource/1",
-                        "@type": "dctypes:Image",
-                        "format": "image/jpeg",
-                        "height": 1234,
-                        "width": 4321,
-                        "service": {
-                           "@id": "http://www.example.org/iiif/image/1",
-                           "profile": "http://iiif.io/api/image/2/profiles/level2.json"
-                        }
-                     }
-                  }
-               ]
-            }
-         ]
-      }
-   ]
-}
\ No newline at end of file
diff --git a/spec/fixtures/iiif-universe.json b/spec/fixtures/iiif-universe.json
deleted file mode 100644
index 3f8387e6490b75ab18623ebdfe02fba9eff0e3e3..0000000000000000000000000000000000000000
--- a/spec/fixtures/iiif-universe.json
+++ /dev/null
@@ -1,70 +0,0 @@
-{
-  "@context": "http://iiif.io/api/presentation/2/context.json",
-  "@id": "http://ryanfb.github.io/iiif-universe/iiif-universe.json",
-  "@type": "sc:Collection",
-  "label": "IIIF Universe",
-  "collections": [
-    {
-      "@id": "http://manifests.ydc2.yale.edu/manifest",
-      "@type": "sc:Collection",
-      "label": "Yale"
-    },
-    {
-      "@id": "http://manifests.britishart.yale.edu/collection/top",
-      "@type": "sc:Collection",
-      "label": "Yale Center for British Art"
-    },
-    {
-      "@id": "https://graph.global/static/data/universes/iiif/stanford.json",
-      "@type": "sc:Collection",
-      "label": "Stanford"
-    },
-    {
-      "@id": "https://graph.global/static/data/universes/iiif/e-codices.json",
-      "@type": "sc:Collection",
-      "label": "e-codices"
-    },
-    {
-      "@id": "http://showcase.iiif.io/shims/chroniclingamerica/prezi/top.json",
-      "@type": "sc:Collection",
-      "label": "Chronicling America Newspapers by State"
-    },
-    {
-      "@id": "http://scta.info/iiif/collection/scta",
-      "@type": "sc:Collection",
-      "label": "Sentences Commentary Text Archive"
-    },
-    {
-      "@id": "http://digital.library.villanova.edu/Collection/vudl:3/IIIF",
-      "@type": "sc:Collection",
-      "label": "Digital Library @ Villanova University"
-    },
-    {
-      "@id": "http://wellcomelibrary.org/service/collections/",
-      "@type": "sc:Collection",
-      "label": "Wellcome Library"
-    },
-    {
-      "@id": "https://iiif.archivelab.org/iiif/collection.json",
-      "@type": "sc:Collection",
-      "label": "The Internet Archive Universal Collection"
-    },
-    {
-      "@id": "http://iiif.bodleian.ox.ac.uk/iiif/collection/All",
-      "@type": "sc:Collection",
-      "label": "Bodleian Library, Oxford"
-    },
-    {
-      "@id": "http://biblissima.fr/iiif/collection/top",
-      "@type": "sc:Collection",
-      "label": "Biblissima IIIF Collections",
-      "description": "Collections of IIIF Manifests from Biblissima's image repositories"
-    },
-    {
-      "@id": "https://labs2.artstor.org/iiif/ssc/manifest.json",
-      "@type": "sc:Collection",
-      "label": "Shared Shelf Commons",
-      "description": "IIIF Manifests showcasing collections from Shared Shelf Commons"
-    }
-  ]
-}
\ No newline at end of file
diff --git a/spec/fixtures/metadataFixture.json b/spec/fixtures/metadataFixture.json
deleted file mode 100644
index 5606e0dbbf6a59c8a69b44db753466294ae0e1e1..0000000000000000000000000000000000000000
--- a/spec/fixtures/metadataFixture.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
-  "@context":"http://iiif.io/api/presentation/2/context.json",
-  "@type":"sc:Manifest",
-  "@id":"http://www.example.org/iiif/book1/manifest",
-
-  "metadata": [
-    {"label":"Single", "value":"default"},
-    {"label":"Multiple with default", "value": [
-      {"@value": "English", "@language":"en"},
-      {"@value": "French", "@language":"fr"},
-      {"@value": "default"}
-    ]
-    },
-    {"label":"Multiple without default", "value": [
-      {"@value": "English", "@language":"en"},
-      {"@value": "French", "@language":"fr"}
-    ]
-    },
-    {
-      "label":"Single HTML with invalid elements",
-      "value":"<span style='height:500px'>test <script language='Javascript'>alert('bad!');</script><blink>bad</blink></span>"
-    },
-    {
-      "label":"Single HTML with valid elements",
-      "value":"<span><b>bold</b><i>italic</i><br><a href=\"http://iiif.io/\" target=\"_blank\"><img src=\"http://iiif.io/img/logo-iiif-34x30.png\"></a></span>"
-	  },
-    {
-      "label": "Single text with single URL",
-      "value": "There's an URL: http://example.com"
-    },
-    {
-      "label": "Single text with multiple URLs",
-      "value": "There's an URL: http://example.com and here's another: http://foobar.org"
-    },
-    {
-      "label": "Single text with single URL already wrapped in an anchor tag, but without target blank",
-      "value": "There's an URL: <a href='http://example.com'>foobar</a>"
-    }
-  ]
-}
diff --git a/spec/fixtures/searchManifest.json b/spec/fixtures/searchManifest.json
deleted file mode 100644
index 76203027157643d7dc4e82d60bb837b60312a570..0000000000000000000000000000000000000000
--- a/spec/fixtures/searchManifest.json
+++ /dev/null
@@ -1,23752 +0,0 @@
-{
-  "@context": "http://iiif.io/api/presentation/2/context.json",
-  "@id": "http://wellcomelibrary.org/iiif/b18035978/manifest",
-  "@type": "sc:Manifest",
-  "label": "The biocrats",
-  "metadata": [
-    {
-      "label": "Title",
-      "value": "The biocrats"
-    },
-    {
-      "label": "Author(s)",
-      "value": "Leach, Gerald"
-    },
-    {
-      "label": "Publication date",
-      "value": "1970."
-    },
-    {
-      "label": "Attribution",
-      "value": "Wellcome Library<br/>License: CC-BY-NC"
-    },
-    {
-      "label": "",
-      "value": "<a href='http://search.wellcomelibrary.org/iii/encore/record/C__Rb1803597'>View full catalogue record</a>"
-    },
-    {
-      "label": "Full conditions of use",
-      "value": "You have permission to make copies of this work under a <a target=\"_top\" href=\"http://creativecommons.org/licenses/by-nc/4.0/\">Creative Commons, Attribution, Non-commercial license</a>.<br/><br/>Non-commercial use includes private study, academic research, teaching, and other activities that are not primarily intended for, or directed towards, commercial advantage or private monetary compensation. See the <a target=\"_top\" href=\"http://creativecommons.org/licenses/by-nc/4.0/legalcode\">Legal Code</a> for further information.<br/><br/>Image source should be attributed as specified in the full catalogue record. If no source is given the image should be attributed to Wellcome Library."
-    }
-  ],
-  "license": "https://creativecommons.org/licenses/by-nc/4.0/",
-  "logo": "http://wellcomelibrary.org/assets/img/squarelogo64.png",
-  "related": {
-    "@id": "http://wellcomelibrary.org/item/b18035978",
-    "format": "text/html"
-  },
-  "seeAlso": [
-    {
-      "@id": "http://wellcomelibrary.org/data/b18035978.json",
-      "format": "application/json",
-      "profile": "http://wellcomelibrary.org/profiles/res"
-    },
-    {
-      "@id": "http://wellcomelibrary.org/resource/schemaorg/b18035978",
-      "format": "application/ld+json",
-      "profile": "http://iiif.io/community/profiles/discovery/schema"
-    },
-    {
-      "@id": "http://wellcomelibrary.org/resource/dublincore/b18035978",
-      "format": "application/ld+json",
-      "profile": "http://iiif.io/community/profiles/discovery/dc"
-    }
-  ],
-  "service": [
-    {
-      "@context": "http://wellcomelibrary.org/ld/iiif-ext/0/context.json",
-      "@id": "http://wellcomelibrary.org/iiif/b18035978-0/access-control-hints-service",
-      "profile": "http://wellcomelibrary.org/ld/iiif-ext/access-control-hints",
-      "accessHint": "open"
-    },
-    {
-      "@context": "http://iiif.io/api/search/0/context.json",
-      "@id": "/search",
-      "profile": "http://iiif.io/api/search/0/search",
-      "label": "Search within this manifest",
-      "service": {
-        "@id": "http://wellcomelibrary.org/annoservices/autocomplete/b18035978",
-        "profile": "http://iiif.io/api/search/0/autocomplete",
-        "label": "Get suggested words in this manifest"
-      }
-    },
-    {
-      "@context": "http://universalviewer.io/context.json",
-      "@id": "http://wellcomelibrary.org/service/trackingLabels/b18035978",
-      "profile": "http://universalviewer.io/tracking-extensions-profile",
-      "trackingLabel": "Format: monograph, Institution: n/a, Identifier: b18035978, Digicode: diggenetics, Collection code: n/a"
-    }
-  ],
-  "sequences": [
-    {
-      "@id": "http://wellcomelibrary.org/iiif/b18035978/sequence/s0",
-      "@type": "sc:Sequence",
-      "label": "Sequence s0",
-      "rendering": [
-        {
-          "@id": "https://dlcs.io/pdf/wellcome/pdf-item/b18035978/0",
-          "format": "application/pdf",
-          "label": "Download as PDF"
-        },
-        {
-          "@id": "http://wellcomelibrary.org/service/fulltext/b18035978/0?raw=true",
-          "format": "text/plain",
-          "label": "Download raw text"
-        }
-      ],
-      "viewingHint": "paged",
-      "canvases": [
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c0",
-          "@type": "sc:Canvas",
-          "label": " - ",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/b3ec346f-71bf-4bb1-a7f1-1cad996fa0d4/full/69,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/b3ec346f-71bf-4bb1-a7f1-1cad996fa0d4",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 703,
-              "sizes": [
-                {
-                  "width": 69,
-                  "height": 100
-                },
-                {
-                  "width": 137,
-                  "height": 200
-                },
-                {
-                  "width": 275,
-                  "height": 400
-                },
-                {
-                  "width": 703,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=0",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 4944,
-          "width": 3395,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/b3ec346f-71bf-4bb1-a7f1-1cad996fa0d4",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/b3ec346f-71bf-4bb1-a7f1-1cad996fa0d4/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 703,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/b3ec346f-71bf-4bb1-a7f1-1cad996fa0d4",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c0"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/0",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c2",
-          "@type": "sc:Canvas",
-          "label": " - ",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/3bc68bcb-8ac9-4cd1-9dd5-296aea55fe94/full/62,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/3bc68bcb-8ac9-4cd1-9dd5-296aea55fe94",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 640,
-              "sizes": [
-                {
-                  "width": 62,
-                  "height": 100
-                },
-                {
-                  "width": 125,
-                  "height": 200
-                },
-                {
-                  "width": 250,
-                  "height": 400
-                },
-                {
-                  "width": 640,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=2",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3234,
-          "width": 2020,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/3bc68bcb-8ac9-4cd1-9dd5-296aea55fe94",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/3bc68bcb-8ac9-4cd1-9dd5-296aea55fe94/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 640,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/3bc68bcb-8ac9-4cd1-9dd5-296aea55fe94",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c2"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/2",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c3",
-          "@type": "sc:Canvas",
-          "label": " - ",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/bd3345ff-17e6-4a8b-8248-fa0691eb2c4b/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/bd3345ff-17e6-4a8b-8248-fa0691eb2c4b",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=3",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/bd3345ff-17e6-4a8b-8248-fa0691eb2c4b",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/bd3345ff-17e6-4a8b-8248-fa0691eb2c4b/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/bd3345ff-17e6-4a8b-8248-fa0691eb2c4b",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c3"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/3",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c4",
-          "@type": "sc:Canvas",
-          "label": " - ",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/50dc430c-9b6f-46e4-8282-4487a00c84b9/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/50dc430c-9b6f-46e4-8282-4487a00c84b9",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=4",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/50dc430c-9b6f-46e4-8282-4487a00c84b9",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/50dc430c-9b6f-46e4-8282-4487a00c84b9/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/50dc430c-9b6f-46e4-8282-4487a00c84b9",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c4"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/4",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c5",
-          "@type": "sc:Canvas",
-          "label": " - ",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/595d9268-a9fa-4076-bda8-3e779fbfcbca/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/595d9268-a9fa-4076-bda8-3e779fbfcbca",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=5",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/595d9268-a9fa-4076-bda8-3e779fbfcbca",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/595d9268-a9fa-4076-bda8-3e779fbfcbca/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/595d9268-a9fa-4076-bda8-3e779fbfcbca",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c5"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/5",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c6",
-          "@type": "sc:Canvas",
-          "label": " - ",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/e0de70c7-48bc-4842-8d33-640caee8b8c0/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/e0de70c7-48bc-4842-8d33-640caee8b8c0",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=6",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/e0de70c7-48bc-4842-8d33-640caee8b8c0",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/e0de70c7-48bc-4842-8d33-640caee8b8c0/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/e0de70c7-48bc-4842-8d33-640caee8b8c0",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c6"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/6",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c7",
-          "@type": "sc:Canvas",
-          "label": " - ",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/243b51c8-9ad6-4e2a-a0be-fc8b53301dbe/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/243b51c8-9ad6-4e2a-a0be-fc8b53301dbe",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=7",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/243b51c8-9ad6-4e2a-a0be-fc8b53301dbe",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/243b51c8-9ad6-4e2a-a0be-fc8b53301dbe/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/243b51c8-9ad6-4e2a-a0be-fc8b53301dbe",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c7"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/7",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c8",
-          "@type": "sc:Canvas",
-          "label": " - ",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/51807440-aeed-4302-a5d8-73808e11f9f1/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/51807440-aeed-4302-a5d8-73808e11f9f1",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=8",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/51807440-aeed-4302-a5d8-73808e11f9f1",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/51807440-aeed-4302-a5d8-73808e11f9f1/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/51807440-aeed-4302-a5d8-73808e11f9f1",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c8"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/8",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c9",
-          "@type": "sc:Canvas",
-          "label": " - ",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/f4d50c65-32a5-4303-ba5c-56694297328e/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/f4d50c65-32a5-4303-ba5c-56694297328e",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=9",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/f4d50c65-32a5-4303-ba5c-56694297328e",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/f4d50c65-32a5-4303-ba5c-56694297328e/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/f4d50c65-32a5-4303-ba5c-56694297328e",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c9"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/9",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c10",
-          "@type": "sc:Canvas",
-          "label": " - ",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/c03e17b0-c9d1-4e8a-8f87-4737f6a25347/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/c03e17b0-c9d1-4e8a-8f87-4737f6a25347",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=10",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/c03e17b0-c9d1-4e8a-8f87-4737f6a25347",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/c03e17b0-c9d1-4e8a-8f87-4737f6a25347/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/c03e17b0-c9d1-4e8a-8f87-4737f6a25347",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c10"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/10",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c11",
-          "@type": "sc:Canvas",
-          "label": " - ",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/b4bb2a96-5d21-4957-a5e6-5beeadb8a3ba/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/b4bb2a96-5d21-4957-a5e6-5beeadb8a3ba",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=11",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/b4bb2a96-5d21-4957-a5e6-5beeadb8a3ba",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/b4bb2a96-5d21-4957-a5e6-5beeadb8a3ba/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/b4bb2a96-5d21-4957-a5e6-5beeadb8a3ba",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c11"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/11",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c12",
-          "@type": "sc:Canvas",
-          "label": " - ",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/1804c604-244a-4f75-b130-a019b01ef197/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/1804c604-244a-4f75-b130-a019b01ef197",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=12",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/1804c604-244a-4f75-b130-a019b01ef197",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/1804c604-244a-4f75-b130-a019b01ef197/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/1804c604-244a-4f75-b130-a019b01ef197",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c12"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/12",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c13",
-          "@type": "sc:Canvas",
-          "label": " - ",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/4e542ae9-b999-4a1a-ab10-5cf1a1beca8b/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/4e542ae9-b999-4a1a-ab10-5cf1a1beca8b",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=13",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/4e542ae9-b999-4a1a-ab10-5cf1a1beca8b",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/4e542ae9-b999-4a1a-ab10-5cf1a1beca8b/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/4e542ae9-b999-4a1a-ab10-5cf1a1beca8b",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c13"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/13",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c14",
-          "@type": "sc:Canvas",
-          "label": " - ",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/63107400-08e4-4b93-b5ba-3d19bbd0e94f/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/63107400-08e4-4b93-b5ba-3d19bbd0e94f",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=14",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/63107400-08e4-4b93-b5ba-3d19bbd0e94f",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/63107400-08e4-4b93-b5ba-3d19bbd0e94f/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/63107400-08e4-4b93-b5ba-3d19bbd0e94f",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c14"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/14",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c15",
-          "@type": "sc:Canvas",
-          "label": "11",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/b838eff1-ed6d-479d-ba32-57af20e45193/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/b838eff1-ed6d-479d-ba32-57af20e45193",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=15",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/b838eff1-ed6d-479d-ba32-57af20e45193",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/b838eff1-ed6d-479d-ba32-57af20e45193/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/b838eff1-ed6d-479d-ba32-57af20e45193",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c15"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/15",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c16",
-          "@type": "sc:Canvas",
-          "label": "12",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/d750c5a7-bf75-4222-a5df-f842e2e83b61/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/d750c5a7-bf75-4222-a5df-f842e2e83b61",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=16",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/d750c5a7-bf75-4222-a5df-f842e2e83b61",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/d750c5a7-bf75-4222-a5df-f842e2e83b61/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/d750c5a7-bf75-4222-a5df-f842e2e83b61",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c16"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/16",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c17",
-          "@type": "sc:Canvas",
-          "label": "13",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/ae6ccfa0-251a-4b03-b037-e8666f1616f2/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/ae6ccfa0-251a-4b03-b037-e8666f1616f2",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=17",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/ae6ccfa0-251a-4b03-b037-e8666f1616f2",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/ae6ccfa0-251a-4b03-b037-e8666f1616f2/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/ae6ccfa0-251a-4b03-b037-e8666f1616f2",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c17"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/17",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c18",
-          "@type": "sc:Canvas",
-          "label": "14",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/b13392ba-4f35-4bb5-895f-384e1a8ce5ff/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/b13392ba-4f35-4bb5-895f-384e1a8ce5ff",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=18",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/b13392ba-4f35-4bb5-895f-384e1a8ce5ff",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/b13392ba-4f35-4bb5-895f-384e1a8ce5ff/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/b13392ba-4f35-4bb5-895f-384e1a8ce5ff",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c18"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/18",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c19",
-          "@type": "sc:Canvas",
-          "label": "15",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/938d9dc2-6449-4a9d-9568-5e2d3bbe3b8f/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/938d9dc2-6449-4a9d-9568-5e2d3bbe3b8f",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=19",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/938d9dc2-6449-4a9d-9568-5e2d3bbe3b8f",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/938d9dc2-6449-4a9d-9568-5e2d3bbe3b8f/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/938d9dc2-6449-4a9d-9568-5e2d3bbe3b8f",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c19"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/19",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c20",
-          "@type": "sc:Canvas",
-          "label": "16",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/52db8c15-608c-48ad-acf1-0ac152fa37e8/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/52db8c15-608c-48ad-acf1-0ac152fa37e8",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=20",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/52db8c15-608c-48ad-acf1-0ac152fa37e8",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/52db8c15-608c-48ad-acf1-0ac152fa37e8/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/52db8c15-608c-48ad-acf1-0ac152fa37e8",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c20"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/20",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c21",
-          "@type": "sc:Canvas",
-          "label": "17",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/8acf27c7-3aa1-4dfd-a82a-c10df71f8c77/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/8acf27c7-3aa1-4dfd-a82a-c10df71f8c77",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=21",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/8acf27c7-3aa1-4dfd-a82a-c10df71f8c77",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/8acf27c7-3aa1-4dfd-a82a-c10df71f8c77/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/8acf27c7-3aa1-4dfd-a82a-c10df71f8c77",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c21"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/21",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c22",
-          "@type": "sc:Canvas",
-          "label": "18",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/5707dc47-5c48-4243-8b15-8e0434e2bb29/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/5707dc47-5c48-4243-8b15-8e0434e2bb29",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=22",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/5707dc47-5c48-4243-8b15-8e0434e2bb29",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/5707dc47-5c48-4243-8b15-8e0434e2bb29/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/5707dc47-5c48-4243-8b15-8e0434e2bb29",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c22"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/22",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c23",
-          "@type": "sc:Canvas",
-          "label": "19",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/d1cbceca-a081-416d-81ce-9421fc615cd2/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/d1cbceca-a081-416d-81ce-9421fc615cd2",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=23",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/d1cbceca-a081-416d-81ce-9421fc615cd2",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/d1cbceca-a081-416d-81ce-9421fc615cd2/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/d1cbceca-a081-416d-81ce-9421fc615cd2",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c23"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/23",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c24",
-          "@type": "sc:Canvas",
-          "label": "20",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/99de385c-5636-446a-8575-3e08c2fba899/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/99de385c-5636-446a-8575-3e08c2fba899",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=24",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/99de385c-5636-446a-8575-3e08c2fba899",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/99de385c-5636-446a-8575-3e08c2fba899/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/99de385c-5636-446a-8575-3e08c2fba899",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c24"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/24",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c25",
-          "@type": "sc:Canvas",
-          "label": "21",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/b31bcb4a-db2f-4711-8389-ddc7238eaeb7/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/b31bcb4a-db2f-4711-8389-ddc7238eaeb7",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=25",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/b31bcb4a-db2f-4711-8389-ddc7238eaeb7",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/b31bcb4a-db2f-4711-8389-ddc7238eaeb7/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/b31bcb4a-db2f-4711-8389-ddc7238eaeb7",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c25"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/25",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c26",
-          "@type": "sc:Canvas",
-          "label": "22",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/ecca06c7-48da-421b-b5b9-3fa85407fbb1/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/ecca06c7-48da-421b-b5b9-3fa85407fbb1",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=26",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/ecca06c7-48da-421b-b5b9-3fa85407fbb1",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/ecca06c7-48da-421b-b5b9-3fa85407fbb1/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/ecca06c7-48da-421b-b5b9-3fa85407fbb1",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c26"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/26",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c27",
-          "@type": "sc:Canvas",
-          "label": "23",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/231461af-c8d9-4ac0-87e1-2be063575ba6/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/231461af-c8d9-4ac0-87e1-2be063575ba6",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=27",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/231461af-c8d9-4ac0-87e1-2be063575ba6",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/231461af-c8d9-4ac0-87e1-2be063575ba6/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/231461af-c8d9-4ac0-87e1-2be063575ba6",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c27"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/27",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c28",
-          "@type": "sc:Canvas",
-          "label": "24",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/38a31a7c-eeef-433a-b0e1-c74e1581bfe4/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/38a31a7c-eeef-433a-b0e1-c74e1581bfe4",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=28",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/38a31a7c-eeef-433a-b0e1-c74e1581bfe4",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/38a31a7c-eeef-433a-b0e1-c74e1581bfe4/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/38a31a7c-eeef-433a-b0e1-c74e1581bfe4",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c28"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/28",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c29",
-          "@type": "sc:Canvas",
-          "label": "25",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/baff77a6-7509-42e2-a7d4-e6e873c08f18/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/baff77a6-7509-42e2-a7d4-e6e873c08f18",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=29",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/baff77a6-7509-42e2-a7d4-e6e873c08f18",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/baff77a6-7509-42e2-a7d4-e6e873c08f18/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/baff77a6-7509-42e2-a7d4-e6e873c08f18",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c29"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/29",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c30",
-          "@type": "sc:Canvas",
-          "label": "26",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/82222821-f0f9-4330-9316-a58a55e9aeb9/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/82222821-f0f9-4330-9316-a58a55e9aeb9",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=30",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/82222821-f0f9-4330-9316-a58a55e9aeb9",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/82222821-f0f9-4330-9316-a58a55e9aeb9/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/82222821-f0f9-4330-9316-a58a55e9aeb9",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c30"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/30",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c31",
-          "@type": "sc:Canvas",
-          "label": "27",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/c41fa0c6-a135-4380-8738-582710f750cc/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/c41fa0c6-a135-4380-8738-582710f750cc",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=31",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/c41fa0c6-a135-4380-8738-582710f750cc",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/c41fa0c6-a135-4380-8738-582710f750cc/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/c41fa0c6-a135-4380-8738-582710f750cc",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c31"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/31",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c32",
-          "@type": "sc:Canvas",
-          "label": "28",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/2a1a9a91-f0b9-4114-bdd3-dfb8984bf451/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/2a1a9a91-f0b9-4114-bdd3-dfb8984bf451",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=32",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/2a1a9a91-f0b9-4114-bdd3-dfb8984bf451",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/2a1a9a91-f0b9-4114-bdd3-dfb8984bf451/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/2a1a9a91-f0b9-4114-bdd3-dfb8984bf451",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c32"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/32",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c33",
-          "@type": "sc:Canvas",
-          "label": "29",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/39e52873-6772-4ae0-a534-14f6a3e57137/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/39e52873-6772-4ae0-a534-14f6a3e57137",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=33",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/39e52873-6772-4ae0-a534-14f6a3e57137",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/39e52873-6772-4ae0-a534-14f6a3e57137/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/39e52873-6772-4ae0-a534-14f6a3e57137",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c33"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/33",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c34",
-          "@type": "sc:Canvas",
-          "label": "30",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/de27e8f5-a732-408c-af49-e139c35cde0e/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/de27e8f5-a732-408c-af49-e139c35cde0e",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=34",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/de27e8f5-a732-408c-af49-e139c35cde0e",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/de27e8f5-a732-408c-af49-e139c35cde0e/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/de27e8f5-a732-408c-af49-e139c35cde0e",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c34"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/34",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c35",
-          "@type": "sc:Canvas",
-          "label": "31",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/b6d7b5cb-5729-4e99-9a80-15dbe7c420bb/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/b6d7b5cb-5729-4e99-9a80-15dbe7c420bb",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=35",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/b6d7b5cb-5729-4e99-9a80-15dbe7c420bb",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/b6d7b5cb-5729-4e99-9a80-15dbe7c420bb/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/b6d7b5cb-5729-4e99-9a80-15dbe7c420bb",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c35"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/35",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c36",
-          "@type": "sc:Canvas",
-          "label": "32",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/9e33567e-fdc5-4567-9518-e725c1578487/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/9e33567e-fdc5-4567-9518-e725c1578487",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=36",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/9e33567e-fdc5-4567-9518-e725c1578487",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/9e33567e-fdc5-4567-9518-e725c1578487/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/9e33567e-fdc5-4567-9518-e725c1578487",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c36"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/36",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c37",
-          "@type": "sc:Canvas",
-          "label": "33",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/7aeed6fc-f425-4e36-ae2e-4a7187c91cf7/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/7aeed6fc-f425-4e36-ae2e-4a7187c91cf7",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=37",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/7aeed6fc-f425-4e36-ae2e-4a7187c91cf7",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/7aeed6fc-f425-4e36-ae2e-4a7187c91cf7/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/7aeed6fc-f425-4e36-ae2e-4a7187c91cf7",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c37"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/37",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c38",
-          "@type": "sc:Canvas",
-          "label": "34",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/f164f4b7-5355-4438-89b5-32b41f6327d6/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/f164f4b7-5355-4438-89b5-32b41f6327d6",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=38",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/f164f4b7-5355-4438-89b5-32b41f6327d6",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/f164f4b7-5355-4438-89b5-32b41f6327d6/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/f164f4b7-5355-4438-89b5-32b41f6327d6",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c38"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/38",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c39",
-          "@type": "sc:Canvas",
-          "label": "35",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/f6563277-302e-4582-b67d-554a1853244f/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/f6563277-302e-4582-b67d-554a1853244f",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=39",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/f6563277-302e-4582-b67d-554a1853244f",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/f6563277-302e-4582-b67d-554a1853244f/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/f6563277-302e-4582-b67d-554a1853244f",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c39"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/39",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c40",
-          "@type": "sc:Canvas",
-          "label": "36",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/416fcd41-8619-4cca-9768-bb3771d5edc8/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/416fcd41-8619-4cca-9768-bb3771d5edc8",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=40",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/416fcd41-8619-4cca-9768-bb3771d5edc8",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/416fcd41-8619-4cca-9768-bb3771d5edc8/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/416fcd41-8619-4cca-9768-bb3771d5edc8",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c40"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/40",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c41",
-          "@type": "sc:Canvas",
-          "label": "37",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/153321ce-7cbc-4197-8fe1-ce5da8029dd3/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/153321ce-7cbc-4197-8fe1-ce5da8029dd3",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=41",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/153321ce-7cbc-4197-8fe1-ce5da8029dd3",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/153321ce-7cbc-4197-8fe1-ce5da8029dd3/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/153321ce-7cbc-4197-8fe1-ce5da8029dd3",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c41"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/41",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c42",
-          "@type": "sc:Canvas",
-          "label": "38",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/479cbc6f-6cd0-4484-a1d5-d385ac8ab407/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/479cbc6f-6cd0-4484-a1d5-d385ac8ab407",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=42",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/479cbc6f-6cd0-4484-a1d5-d385ac8ab407",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/479cbc6f-6cd0-4484-a1d5-d385ac8ab407/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/479cbc6f-6cd0-4484-a1d5-d385ac8ab407",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c42"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/42",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c43",
-          "@type": "sc:Canvas",
-          "label": "39",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/60d9b1af-cc74-43b0-a09a-c9b5ff49663e/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/60d9b1af-cc74-43b0-a09a-c9b5ff49663e",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=43",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/60d9b1af-cc74-43b0-a09a-c9b5ff49663e",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/60d9b1af-cc74-43b0-a09a-c9b5ff49663e/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/60d9b1af-cc74-43b0-a09a-c9b5ff49663e",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c43"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/43",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c44",
-          "@type": "sc:Canvas",
-          "label": "40",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/d9157eed-ce77-47ba-bfc9-f02e8d307592/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/d9157eed-ce77-47ba-bfc9-f02e8d307592",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=44",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/d9157eed-ce77-47ba-bfc9-f02e8d307592",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/d9157eed-ce77-47ba-bfc9-f02e8d307592/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/d9157eed-ce77-47ba-bfc9-f02e8d307592",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c44"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/44",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c45",
-          "@type": "sc:Canvas",
-          "label": "41",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/addd77b9-adc4-4c5e-9f18-75b147a88742/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/addd77b9-adc4-4c5e-9f18-75b147a88742",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=45",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/addd77b9-adc4-4c5e-9f18-75b147a88742",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/addd77b9-adc4-4c5e-9f18-75b147a88742/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/addd77b9-adc4-4c5e-9f18-75b147a88742",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c45"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/45",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c46",
-          "@type": "sc:Canvas",
-          "label": "42",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/6b34c705-e52d-4060-83e7-bb2f4214b392/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/6b34c705-e52d-4060-83e7-bb2f4214b392",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=46",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/6b34c705-e52d-4060-83e7-bb2f4214b392",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/6b34c705-e52d-4060-83e7-bb2f4214b392/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/6b34c705-e52d-4060-83e7-bb2f4214b392",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c46"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/46",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c47",
-          "@type": "sc:Canvas",
-          "label": "43",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/5b00597d-3d16-46e2-89a1-1a5e775d7d84/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/5b00597d-3d16-46e2-89a1-1a5e775d7d84",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=47",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/5b00597d-3d16-46e2-89a1-1a5e775d7d84",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/5b00597d-3d16-46e2-89a1-1a5e775d7d84/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/5b00597d-3d16-46e2-89a1-1a5e775d7d84",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c47"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/47",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c48",
-          "@type": "sc:Canvas",
-          "label": "44",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/01b598bf-4027-4fad-bcbe-0146da177990/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/01b598bf-4027-4fad-bcbe-0146da177990",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=48",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/01b598bf-4027-4fad-bcbe-0146da177990",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/01b598bf-4027-4fad-bcbe-0146da177990/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/01b598bf-4027-4fad-bcbe-0146da177990",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c48"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/48",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c49",
-          "@type": "sc:Canvas",
-          "label": "45",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/3395b7d9-50ab-43be-aaf2-f29559e00732/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/3395b7d9-50ab-43be-aaf2-f29559e00732",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=49",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/3395b7d9-50ab-43be-aaf2-f29559e00732",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/3395b7d9-50ab-43be-aaf2-f29559e00732/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/3395b7d9-50ab-43be-aaf2-f29559e00732",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c49"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/49",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c50",
-          "@type": "sc:Canvas",
-          "label": "46",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/ebc88756-e80f-487f-868b-1a589c1c30a4/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/ebc88756-e80f-487f-868b-1a589c1c30a4",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=50",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/ebc88756-e80f-487f-868b-1a589c1c30a4",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/ebc88756-e80f-487f-868b-1a589c1c30a4/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/ebc88756-e80f-487f-868b-1a589c1c30a4",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c50"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/50",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c51",
-          "@type": "sc:Canvas",
-          "label": "47",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/073ba330-6c30-4635-ac3b-ca159a61be87/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/073ba330-6c30-4635-ac3b-ca159a61be87",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=51",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/073ba330-6c30-4635-ac3b-ca159a61be87",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/073ba330-6c30-4635-ac3b-ca159a61be87/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/073ba330-6c30-4635-ac3b-ca159a61be87",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c51"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/51",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c52",
-          "@type": "sc:Canvas",
-          "label": "48",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/55eeb71f-0aa0-4438-b4bb-3cbde4d37d98/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/55eeb71f-0aa0-4438-b4bb-3cbde4d37d98",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=52",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/55eeb71f-0aa0-4438-b4bb-3cbde4d37d98",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/55eeb71f-0aa0-4438-b4bb-3cbde4d37d98/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/55eeb71f-0aa0-4438-b4bb-3cbde4d37d98",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c52"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/52",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c53",
-          "@type": "sc:Canvas",
-          "label": "49",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/bb6c7914-c2e8-4afe-a191-057c6a990302/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/bb6c7914-c2e8-4afe-a191-057c6a990302",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=53",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/bb6c7914-c2e8-4afe-a191-057c6a990302",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/bb6c7914-c2e8-4afe-a191-057c6a990302/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/bb6c7914-c2e8-4afe-a191-057c6a990302",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c53"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/53",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c54",
-          "@type": "sc:Canvas",
-          "label": "50",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/981cc047-34c4-4c7d-9432-8654c65017c4/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/981cc047-34c4-4c7d-9432-8654c65017c4",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=54",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/981cc047-34c4-4c7d-9432-8654c65017c4",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/981cc047-34c4-4c7d-9432-8654c65017c4/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/981cc047-34c4-4c7d-9432-8654c65017c4",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c54"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/54",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c55",
-          "@type": "sc:Canvas",
-          "label": "51",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/c6931321-2587-43df-aa43-4782d6c9835a/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/c6931321-2587-43df-aa43-4782d6c9835a",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=55",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/c6931321-2587-43df-aa43-4782d6c9835a",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/c6931321-2587-43df-aa43-4782d6c9835a/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/c6931321-2587-43df-aa43-4782d6c9835a",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c55"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/55",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c56",
-          "@type": "sc:Canvas",
-          "label": "52",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/d862febe-c140-4796-9619-e284e266e290/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/d862febe-c140-4796-9619-e284e266e290",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=56",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/d862febe-c140-4796-9619-e284e266e290",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/d862febe-c140-4796-9619-e284e266e290/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/d862febe-c140-4796-9619-e284e266e290",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c56"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/56",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c57",
-          "@type": "sc:Canvas",
-          "label": "53",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/78236647-7a54-446f-b36c-4bb108048314/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/78236647-7a54-446f-b36c-4bb108048314",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=57",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/78236647-7a54-446f-b36c-4bb108048314",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/78236647-7a54-446f-b36c-4bb108048314/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/78236647-7a54-446f-b36c-4bb108048314",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c57"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/57",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c58",
-          "@type": "sc:Canvas",
-          "label": "54",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/25b66328-6ce6-41b0-a1a5-4786f1776356/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/25b66328-6ce6-41b0-a1a5-4786f1776356",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=58",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/25b66328-6ce6-41b0-a1a5-4786f1776356",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/25b66328-6ce6-41b0-a1a5-4786f1776356/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/25b66328-6ce6-41b0-a1a5-4786f1776356",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c58"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/58",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c59",
-          "@type": "sc:Canvas",
-          "label": "55",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/6cc80f11-7f34-493c-8fa3-25a1c5d530de/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/6cc80f11-7f34-493c-8fa3-25a1c5d530de",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=59",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/6cc80f11-7f34-493c-8fa3-25a1c5d530de",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/6cc80f11-7f34-493c-8fa3-25a1c5d530de/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/6cc80f11-7f34-493c-8fa3-25a1c5d530de",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c59"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/59",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c60",
-          "@type": "sc:Canvas",
-          "label": "56",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/423dbcd1-dea2-4248-ba1b-a7979d39b144/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/423dbcd1-dea2-4248-ba1b-a7979d39b144",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=60",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/423dbcd1-dea2-4248-ba1b-a7979d39b144",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/423dbcd1-dea2-4248-ba1b-a7979d39b144/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/423dbcd1-dea2-4248-ba1b-a7979d39b144",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c60"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/60",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c61",
-          "@type": "sc:Canvas",
-          "label": "57",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/860acaee-09f7-4ef8-b1fb-7f7e402700b3/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/860acaee-09f7-4ef8-b1fb-7f7e402700b3",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=61",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/860acaee-09f7-4ef8-b1fb-7f7e402700b3",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/860acaee-09f7-4ef8-b1fb-7f7e402700b3/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/860acaee-09f7-4ef8-b1fb-7f7e402700b3",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c61"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/61",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c62",
-          "@type": "sc:Canvas",
-          "label": "58",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/738a1dc4-80bd-4ede-bde7-b641821d37e2/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/738a1dc4-80bd-4ede-bde7-b641821d37e2",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=62",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/738a1dc4-80bd-4ede-bde7-b641821d37e2",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/738a1dc4-80bd-4ede-bde7-b641821d37e2/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/738a1dc4-80bd-4ede-bde7-b641821d37e2",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c62"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/62",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c63",
-          "@type": "sc:Canvas",
-          "label": "59",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/9cff10fa-75d7-4085-a6ef-ee6928755db3/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/9cff10fa-75d7-4085-a6ef-ee6928755db3",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=63",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/9cff10fa-75d7-4085-a6ef-ee6928755db3",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/9cff10fa-75d7-4085-a6ef-ee6928755db3/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/9cff10fa-75d7-4085-a6ef-ee6928755db3",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c63"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/63",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c64",
-          "@type": "sc:Canvas",
-          "label": "60",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/d2220168-0180-4105-9638-667316900437/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/d2220168-0180-4105-9638-667316900437",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=64",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/d2220168-0180-4105-9638-667316900437",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/d2220168-0180-4105-9638-667316900437/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/d2220168-0180-4105-9638-667316900437",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c64"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/64",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c65",
-          "@type": "sc:Canvas",
-          "label": "61",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/322b2f9d-799b-451e-8161-c872667633fa/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/322b2f9d-799b-451e-8161-c872667633fa",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=65",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/322b2f9d-799b-451e-8161-c872667633fa",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/322b2f9d-799b-451e-8161-c872667633fa/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/322b2f9d-799b-451e-8161-c872667633fa",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c65"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/65",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c66",
-          "@type": "sc:Canvas",
-          "label": "62",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/ef4e13ff-78c4-407e-a8e4-8ab2d9da851d/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/ef4e13ff-78c4-407e-a8e4-8ab2d9da851d",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=66",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/ef4e13ff-78c4-407e-a8e4-8ab2d9da851d",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/ef4e13ff-78c4-407e-a8e4-8ab2d9da851d/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/ef4e13ff-78c4-407e-a8e4-8ab2d9da851d",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c66"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/66",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c67",
-          "@type": "sc:Canvas",
-          "label": "63",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/4b192224-5daa-4e2e-b4b9-e5fb6cf74f52/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/4b192224-5daa-4e2e-b4b9-e5fb6cf74f52",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=67",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/4b192224-5daa-4e2e-b4b9-e5fb6cf74f52",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/4b192224-5daa-4e2e-b4b9-e5fb6cf74f52/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/4b192224-5daa-4e2e-b4b9-e5fb6cf74f52",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c67"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/67",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c68",
-          "@type": "sc:Canvas",
-          "label": "64",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/320ef594-0b61-4baa-8fa3-4f232d4b3b37/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/320ef594-0b61-4baa-8fa3-4f232d4b3b37",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=68",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/320ef594-0b61-4baa-8fa3-4f232d4b3b37",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/320ef594-0b61-4baa-8fa3-4f232d4b3b37/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/320ef594-0b61-4baa-8fa3-4f232d4b3b37",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c68"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/68",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c69",
-          "@type": "sc:Canvas",
-          "label": "65",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/ffaef912-eb99-4b27-9a6c-01ab562ffa08/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/ffaef912-eb99-4b27-9a6c-01ab562ffa08",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=69",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/ffaef912-eb99-4b27-9a6c-01ab562ffa08",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/ffaef912-eb99-4b27-9a6c-01ab562ffa08/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/ffaef912-eb99-4b27-9a6c-01ab562ffa08",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c69"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/69",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c70",
-          "@type": "sc:Canvas",
-          "label": "66",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/20c7b1cd-516a-4b04-8a29-08e440bdce77/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/20c7b1cd-516a-4b04-8a29-08e440bdce77",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=70",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/20c7b1cd-516a-4b04-8a29-08e440bdce77",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/20c7b1cd-516a-4b04-8a29-08e440bdce77/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/20c7b1cd-516a-4b04-8a29-08e440bdce77",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c70"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/70",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c71",
-          "@type": "sc:Canvas",
-          "label": "67",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/2284735a-a52e-4f38-9717-f01de309c632/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/2284735a-a52e-4f38-9717-f01de309c632",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=71",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/2284735a-a52e-4f38-9717-f01de309c632",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/2284735a-a52e-4f38-9717-f01de309c632/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/2284735a-a52e-4f38-9717-f01de309c632",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c71"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/71",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c72",
-          "@type": "sc:Canvas",
-          "label": "68",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/53fa0234-1095-4c26-883f-9a1b28763571/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/53fa0234-1095-4c26-883f-9a1b28763571",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=72",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/53fa0234-1095-4c26-883f-9a1b28763571",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/53fa0234-1095-4c26-883f-9a1b28763571/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/53fa0234-1095-4c26-883f-9a1b28763571",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c72"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/72",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c73",
-          "@type": "sc:Canvas",
-          "label": "69",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/0bcc2c99-d4f9-467f-89ba-9b3475a38b38/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/0bcc2c99-d4f9-467f-89ba-9b3475a38b38",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=73",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/0bcc2c99-d4f9-467f-89ba-9b3475a38b38",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/0bcc2c99-d4f9-467f-89ba-9b3475a38b38/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/0bcc2c99-d4f9-467f-89ba-9b3475a38b38",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c73"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/73",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c74",
-          "@type": "sc:Canvas",
-          "label": "70",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/20659f03-01fa-482a-8174-7d28baebc8dc/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/20659f03-01fa-482a-8174-7d28baebc8dc",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=74",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/20659f03-01fa-482a-8174-7d28baebc8dc",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/20659f03-01fa-482a-8174-7d28baebc8dc/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/20659f03-01fa-482a-8174-7d28baebc8dc",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c74"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/74",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c75",
-          "@type": "sc:Canvas",
-          "label": "71",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/250a6742-d871-4a0c-83c8-0f0cc6c3f8fb/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/250a6742-d871-4a0c-83c8-0f0cc6c3f8fb",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=75",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/250a6742-d871-4a0c-83c8-0f0cc6c3f8fb",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/250a6742-d871-4a0c-83c8-0f0cc6c3f8fb/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/250a6742-d871-4a0c-83c8-0f0cc6c3f8fb",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c75"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/75",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c76",
-          "@type": "sc:Canvas",
-          "label": "72",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/d30c3cff-d245-47f0-975f-9c2a8e099293/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/d30c3cff-d245-47f0-975f-9c2a8e099293",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=76",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/d30c3cff-d245-47f0-975f-9c2a8e099293",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/d30c3cff-d245-47f0-975f-9c2a8e099293/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/d30c3cff-d245-47f0-975f-9c2a8e099293",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c76"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/76",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c77",
-          "@type": "sc:Canvas",
-          "label": "73",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/5be4c980-c36f-49d0-b6b5-94d312f84e14/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/5be4c980-c36f-49d0-b6b5-94d312f84e14",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=77",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/5be4c980-c36f-49d0-b6b5-94d312f84e14",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/5be4c980-c36f-49d0-b6b5-94d312f84e14/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/5be4c980-c36f-49d0-b6b5-94d312f84e14",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c77"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/77",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c78",
-          "@type": "sc:Canvas",
-          "label": "74",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/7da5f336-560e-4930-b810-8f8ffd069260/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/7da5f336-560e-4930-b810-8f8ffd069260",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=78",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/7da5f336-560e-4930-b810-8f8ffd069260",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/7da5f336-560e-4930-b810-8f8ffd069260/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/7da5f336-560e-4930-b810-8f8ffd069260",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c78"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/78",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c79",
-          "@type": "sc:Canvas",
-          "label": "75",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/295fe294-cfef-419b-a536-14a71d94adca/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/295fe294-cfef-419b-a536-14a71d94adca",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=79",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/295fe294-cfef-419b-a536-14a71d94adca",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/295fe294-cfef-419b-a536-14a71d94adca/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/295fe294-cfef-419b-a536-14a71d94adca",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c79"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/79",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c80",
-          "@type": "sc:Canvas",
-          "label": "76",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/8409ca9a-6603-4639-9835-315503ed2cad/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/8409ca9a-6603-4639-9835-315503ed2cad",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=80",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/8409ca9a-6603-4639-9835-315503ed2cad",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/8409ca9a-6603-4639-9835-315503ed2cad/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/8409ca9a-6603-4639-9835-315503ed2cad",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c80"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/80",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c81",
-          "@type": "sc:Canvas",
-          "label": "77",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/e0433283-52d7-4478-9b7e-08b91a304e02/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/e0433283-52d7-4478-9b7e-08b91a304e02",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=81",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/e0433283-52d7-4478-9b7e-08b91a304e02",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/e0433283-52d7-4478-9b7e-08b91a304e02/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/e0433283-52d7-4478-9b7e-08b91a304e02",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c81"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/81",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c82",
-          "@type": "sc:Canvas",
-          "label": "78",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/1996f4fa-31f1-44b4-b3bf-5ec933781747/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/1996f4fa-31f1-44b4-b3bf-5ec933781747",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=82",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/1996f4fa-31f1-44b4-b3bf-5ec933781747",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/1996f4fa-31f1-44b4-b3bf-5ec933781747/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/1996f4fa-31f1-44b4-b3bf-5ec933781747",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c82"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/82",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c83",
-          "@type": "sc:Canvas",
-          "label": "79",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/50c195bb-ea30-4180-b9a2-120073cb53bd/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/50c195bb-ea30-4180-b9a2-120073cb53bd",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=83",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/50c195bb-ea30-4180-b9a2-120073cb53bd",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/50c195bb-ea30-4180-b9a2-120073cb53bd/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/50c195bb-ea30-4180-b9a2-120073cb53bd",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c83"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/83",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c84",
-          "@type": "sc:Canvas",
-          "label": "80",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/9870b598-d070-4402-bc42-c98a5250d52f/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/9870b598-d070-4402-bc42-c98a5250d52f",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=84",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/9870b598-d070-4402-bc42-c98a5250d52f",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/9870b598-d070-4402-bc42-c98a5250d52f/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/9870b598-d070-4402-bc42-c98a5250d52f",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c84"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/84",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c85",
-          "@type": "sc:Canvas",
-          "label": "81",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/1fdbae87-573d-42e9-b9af-77074af9d1fe/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/1fdbae87-573d-42e9-b9af-77074af9d1fe",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=85",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/1fdbae87-573d-42e9-b9af-77074af9d1fe",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/1fdbae87-573d-42e9-b9af-77074af9d1fe/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/1fdbae87-573d-42e9-b9af-77074af9d1fe",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c85"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/85",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c86",
-          "@type": "sc:Canvas",
-          "label": "82",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/30988807-b605-4a26-b094-bef00c228f25/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/30988807-b605-4a26-b094-bef00c228f25",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=86",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/30988807-b605-4a26-b094-bef00c228f25",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/30988807-b605-4a26-b094-bef00c228f25/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/30988807-b605-4a26-b094-bef00c228f25",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c86"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/86",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c87",
-          "@type": "sc:Canvas",
-          "label": "83",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/6d215c26-85d5-42a9-9a7a-7e3a8935b1c1/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/6d215c26-85d5-42a9-9a7a-7e3a8935b1c1",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=87",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/6d215c26-85d5-42a9-9a7a-7e3a8935b1c1",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/6d215c26-85d5-42a9-9a7a-7e3a8935b1c1/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/6d215c26-85d5-42a9-9a7a-7e3a8935b1c1",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c87"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/87",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c88",
-          "@type": "sc:Canvas",
-          "label": "84",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/ddd69747-8738-494f-acd8-17060ef043f2/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/ddd69747-8738-494f-acd8-17060ef043f2",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=88",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/ddd69747-8738-494f-acd8-17060ef043f2",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/ddd69747-8738-494f-acd8-17060ef043f2/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/ddd69747-8738-494f-acd8-17060ef043f2",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c88"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/88",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c89",
-          "@type": "sc:Canvas",
-          "label": "85",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/d6386ff5-601f-4eba-aa73-70ec5422e33a/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/d6386ff5-601f-4eba-aa73-70ec5422e33a",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=89",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/d6386ff5-601f-4eba-aa73-70ec5422e33a",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/d6386ff5-601f-4eba-aa73-70ec5422e33a/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/d6386ff5-601f-4eba-aa73-70ec5422e33a",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c89"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/89",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c90",
-          "@type": "sc:Canvas",
-          "label": "86",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/940834e3-b451-44a9-ab17-21ac1ac356b4/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/940834e3-b451-44a9-ab17-21ac1ac356b4",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=90",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/940834e3-b451-44a9-ab17-21ac1ac356b4",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/940834e3-b451-44a9-ab17-21ac1ac356b4/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/940834e3-b451-44a9-ab17-21ac1ac356b4",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c90"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/90",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c91",
-          "@type": "sc:Canvas",
-          "label": "87",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/7bac0daf-7c41-4d89-a605-021aba2ed373/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/7bac0daf-7c41-4d89-a605-021aba2ed373",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=91",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/7bac0daf-7c41-4d89-a605-021aba2ed373",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/7bac0daf-7c41-4d89-a605-021aba2ed373/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/7bac0daf-7c41-4d89-a605-021aba2ed373",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c91"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/91",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c92",
-          "@type": "sc:Canvas",
-          "label": "88",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/d6a521e4-5ff3-4aed-92bd-e1b08c45f972/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/d6a521e4-5ff3-4aed-92bd-e1b08c45f972",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=92",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/d6a521e4-5ff3-4aed-92bd-e1b08c45f972",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/d6a521e4-5ff3-4aed-92bd-e1b08c45f972/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/d6a521e4-5ff3-4aed-92bd-e1b08c45f972",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c92"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/92",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c93",
-          "@type": "sc:Canvas",
-          "label": "89",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/cd7a734c-3a1c-4907-ac70-7ddf7d02ae33/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/cd7a734c-3a1c-4907-ac70-7ddf7d02ae33",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=93",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/cd7a734c-3a1c-4907-ac70-7ddf7d02ae33",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/cd7a734c-3a1c-4907-ac70-7ddf7d02ae33/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/cd7a734c-3a1c-4907-ac70-7ddf7d02ae33",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c93"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/93",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c94",
-          "@type": "sc:Canvas",
-          "label": "90",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/6ad95485-5693-4fea-bba5-c995f89d898a/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/6ad95485-5693-4fea-bba5-c995f89d898a",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=94",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/6ad95485-5693-4fea-bba5-c995f89d898a",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/6ad95485-5693-4fea-bba5-c995f89d898a/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/6ad95485-5693-4fea-bba5-c995f89d898a",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c94"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/94",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c95",
-          "@type": "sc:Canvas",
-          "label": "91",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/06124e05-1bbb-43c7-88e2-a646c2333f46/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/06124e05-1bbb-43c7-88e2-a646c2333f46",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=95",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/06124e05-1bbb-43c7-88e2-a646c2333f46",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/06124e05-1bbb-43c7-88e2-a646c2333f46/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/06124e05-1bbb-43c7-88e2-a646c2333f46",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c95"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/95",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c96",
-          "@type": "sc:Canvas",
-          "label": "92",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/40fd44a7-f58c-4430-9fdf-40499784f992/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/40fd44a7-f58c-4430-9fdf-40499784f992",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=96",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/40fd44a7-f58c-4430-9fdf-40499784f992",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/40fd44a7-f58c-4430-9fdf-40499784f992/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/40fd44a7-f58c-4430-9fdf-40499784f992",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c96"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/96",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c97",
-          "@type": "sc:Canvas",
-          "label": "93",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/b79402cd-55ee-4d41-97bc-d624079c2481/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/b79402cd-55ee-4d41-97bc-d624079c2481",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=97",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/b79402cd-55ee-4d41-97bc-d624079c2481",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/b79402cd-55ee-4d41-97bc-d624079c2481/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/b79402cd-55ee-4d41-97bc-d624079c2481",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c97"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/97",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c98",
-          "@type": "sc:Canvas",
-          "label": "94",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/2bffd09a-7ecd-4368-addf-2d00e30fd174/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/2bffd09a-7ecd-4368-addf-2d00e30fd174",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=98",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/2bffd09a-7ecd-4368-addf-2d00e30fd174",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/2bffd09a-7ecd-4368-addf-2d00e30fd174/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/2bffd09a-7ecd-4368-addf-2d00e30fd174",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c98"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/98",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c99",
-          "@type": "sc:Canvas",
-          "label": "95",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/e24f05b2-117a-4149-82ad-bd03ba3a3b75/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/e24f05b2-117a-4149-82ad-bd03ba3a3b75",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=99",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/e24f05b2-117a-4149-82ad-bd03ba3a3b75",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/e24f05b2-117a-4149-82ad-bd03ba3a3b75/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/e24f05b2-117a-4149-82ad-bd03ba3a3b75",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c99"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/99",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c100",
-          "@type": "sc:Canvas",
-          "label": "96",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/e2dc3c3e-6e41-441f-bd61-6f509b31ca98/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/e2dc3c3e-6e41-441f-bd61-6f509b31ca98",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=100",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/e2dc3c3e-6e41-441f-bd61-6f509b31ca98",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/e2dc3c3e-6e41-441f-bd61-6f509b31ca98/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/e2dc3c3e-6e41-441f-bd61-6f509b31ca98",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c100"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/100",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c101",
-          "@type": "sc:Canvas",
-          "label": "97",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/7f60c964-84df-49b8-a2f8-c1e2d0b51c32/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/7f60c964-84df-49b8-a2f8-c1e2d0b51c32",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=101",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/7f60c964-84df-49b8-a2f8-c1e2d0b51c32",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/7f60c964-84df-49b8-a2f8-c1e2d0b51c32/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/7f60c964-84df-49b8-a2f8-c1e2d0b51c32",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c101"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/101",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c102",
-          "@type": "sc:Canvas",
-          "label": "98",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/75fe343e-c637-4fe6-a84f-a0ec8ed6b572/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/75fe343e-c637-4fe6-a84f-a0ec8ed6b572",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=102",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/75fe343e-c637-4fe6-a84f-a0ec8ed6b572",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/75fe343e-c637-4fe6-a84f-a0ec8ed6b572/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/75fe343e-c637-4fe6-a84f-a0ec8ed6b572",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c102"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/102",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c103",
-          "@type": "sc:Canvas",
-          "label": "99",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/4f723ff9-c73a-4333-acdb-bba3d9d6b03d/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/4f723ff9-c73a-4333-acdb-bba3d9d6b03d",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=103",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/4f723ff9-c73a-4333-acdb-bba3d9d6b03d",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/4f723ff9-c73a-4333-acdb-bba3d9d6b03d/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/4f723ff9-c73a-4333-acdb-bba3d9d6b03d",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c103"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/103",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c104",
-          "@type": "sc:Canvas",
-          "label": "100",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/c20d81ea-4879-4a8d-94ef-caf481728e5c/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/c20d81ea-4879-4a8d-94ef-caf481728e5c",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=104",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/c20d81ea-4879-4a8d-94ef-caf481728e5c",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/c20d81ea-4879-4a8d-94ef-caf481728e5c/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/c20d81ea-4879-4a8d-94ef-caf481728e5c",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c104"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/104",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c105",
-          "@type": "sc:Canvas",
-          "label": "101",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/26f58ceb-9456-496f-9b78-5305384af90c/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/26f58ceb-9456-496f-9b78-5305384af90c",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=105",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/26f58ceb-9456-496f-9b78-5305384af90c",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/26f58ceb-9456-496f-9b78-5305384af90c/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/26f58ceb-9456-496f-9b78-5305384af90c",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c105"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/105",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c106",
-          "@type": "sc:Canvas",
-          "label": "102",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/3471e4c7-c6f4-492f-a61f-d3afe2d3cb20/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/3471e4c7-c6f4-492f-a61f-d3afe2d3cb20",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=106",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/3471e4c7-c6f4-492f-a61f-d3afe2d3cb20",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/3471e4c7-c6f4-492f-a61f-d3afe2d3cb20/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/3471e4c7-c6f4-492f-a61f-d3afe2d3cb20",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c106"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/106",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c107",
-          "@type": "sc:Canvas",
-          "label": "103",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/3f0a1688-4f46-4e89-a320-2758f1c20735/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/3f0a1688-4f46-4e89-a320-2758f1c20735",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=107",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/3f0a1688-4f46-4e89-a320-2758f1c20735",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/3f0a1688-4f46-4e89-a320-2758f1c20735/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/3f0a1688-4f46-4e89-a320-2758f1c20735",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c107"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/107",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c108",
-          "@type": "sc:Canvas",
-          "label": "104",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/4926402b-13a8-4a5a-be5d-e9f4c68a9c51/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/4926402b-13a8-4a5a-be5d-e9f4c68a9c51",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=108",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/4926402b-13a8-4a5a-be5d-e9f4c68a9c51",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/4926402b-13a8-4a5a-be5d-e9f4c68a9c51/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/4926402b-13a8-4a5a-be5d-e9f4c68a9c51",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c108"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/108",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c109",
-          "@type": "sc:Canvas",
-          "label": "105",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/9d1fd227-fb2c-438d-b8c3-1200a4254309/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/9d1fd227-fb2c-438d-b8c3-1200a4254309",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=109",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/9d1fd227-fb2c-438d-b8c3-1200a4254309",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/9d1fd227-fb2c-438d-b8c3-1200a4254309/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/9d1fd227-fb2c-438d-b8c3-1200a4254309",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c109"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/109",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c110",
-          "@type": "sc:Canvas",
-          "label": "106",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/767648c6-ad5d-4f1b-897a-0a1bee746c09/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/767648c6-ad5d-4f1b-897a-0a1bee746c09",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=110",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/767648c6-ad5d-4f1b-897a-0a1bee746c09",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/767648c6-ad5d-4f1b-897a-0a1bee746c09/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/767648c6-ad5d-4f1b-897a-0a1bee746c09",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c110"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/110",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c111",
-          "@type": "sc:Canvas",
-          "label": "107",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/30ee0ef3-99a0-489f-bcf5-9ca27269087b/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/30ee0ef3-99a0-489f-bcf5-9ca27269087b",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=111",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/30ee0ef3-99a0-489f-bcf5-9ca27269087b",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/30ee0ef3-99a0-489f-bcf5-9ca27269087b/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/30ee0ef3-99a0-489f-bcf5-9ca27269087b",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c111"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/111",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c112",
-          "@type": "sc:Canvas",
-          "label": "108",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/6f7b4b37-fc84-4e24-9c21-bb21632a1114/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/6f7b4b37-fc84-4e24-9c21-bb21632a1114",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=112",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/6f7b4b37-fc84-4e24-9c21-bb21632a1114",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/6f7b4b37-fc84-4e24-9c21-bb21632a1114/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/6f7b4b37-fc84-4e24-9c21-bb21632a1114",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c112"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/112",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c113",
-          "@type": "sc:Canvas",
-          "label": "109",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/787c944a-0753-4198-b878-b76c1d8bfec7/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/787c944a-0753-4198-b878-b76c1d8bfec7",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=113",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/787c944a-0753-4198-b878-b76c1d8bfec7",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/787c944a-0753-4198-b878-b76c1d8bfec7/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/787c944a-0753-4198-b878-b76c1d8bfec7",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c113"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/113",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c114",
-          "@type": "sc:Canvas",
-          "label": "110",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/fe29f435-beed-4531-9956-aa41e063a4a6/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/fe29f435-beed-4531-9956-aa41e063a4a6",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=114",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/fe29f435-beed-4531-9956-aa41e063a4a6",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/fe29f435-beed-4531-9956-aa41e063a4a6/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/fe29f435-beed-4531-9956-aa41e063a4a6",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c114"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/114",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c115",
-          "@type": "sc:Canvas",
-          "label": "111",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/438453e3-1366-4594-babd-30b16dcf9c91/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/438453e3-1366-4594-babd-30b16dcf9c91",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=115",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/438453e3-1366-4594-babd-30b16dcf9c91",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/438453e3-1366-4594-babd-30b16dcf9c91/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/438453e3-1366-4594-babd-30b16dcf9c91",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c115"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/115",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c116",
-          "@type": "sc:Canvas",
-          "label": "112",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/a1ede6a5-4cd3-4413-846a-1e43403af92a/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/a1ede6a5-4cd3-4413-846a-1e43403af92a",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=116",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/a1ede6a5-4cd3-4413-846a-1e43403af92a",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/a1ede6a5-4cd3-4413-846a-1e43403af92a/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/a1ede6a5-4cd3-4413-846a-1e43403af92a",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c116"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/116",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c117",
-          "@type": "sc:Canvas",
-          "label": "113",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/4771f186-3549-4319-81d5-e9bbca97bac2/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/4771f186-3549-4319-81d5-e9bbca97bac2",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=117",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/4771f186-3549-4319-81d5-e9bbca97bac2",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/4771f186-3549-4319-81d5-e9bbca97bac2/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/4771f186-3549-4319-81d5-e9bbca97bac2",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c117"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/117",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c118",
-          "@type": "sc:Canvas",
-          "label": "114",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/1b147432-0538-4cf9-a017-5e5d9fe988cd/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/1b147432-0538-4cf9-a017-5e5d9fe988cd",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=118",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/1b147432-0538-4cf9-a017-5e5d9fe988cd",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/1b147432-0538-4cf9-a017-5e5d9fe988cd/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/1b147432-0538-4cf9-a017-5e5d9fe988cd",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c118"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/118",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c119",
-          "@type": "sc:Canvas",
-          "label": "115",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/340ec5f5-27f1-4244-a2f3-4597df249cdf/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/340ec5f5-27f1-4244-a2f3-4597df249cdf",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=119",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/340ec5f5-27f1-4244-a2f3-4597df249cdf",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/340ec5f5-27f1-4244-a2f3-4597df249cdf/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/340ec5f5-27f1-4244-a2f3-4597df249cdf",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c119"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/119",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c120",
-          "@type": "sc:Canvas",
-          "label": "116",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/791ebf5d-8535-4829-939b-a62440fa30c5/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/791ebf5d-8535-4829-939b-a62440fa30c5",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=120",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/791ebf5d-8535-4829-939b-a62440fa30c5",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/791ebf5d-8535-4829-939b-a62440fa30c5/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/791ebf5d-8535-4829-939b-a62440fa30c5",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c120"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/120",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c121",
-          "@type": "sc:Canvas",
-          "label": "117",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/1a615ae0-dfcd-403c-bd11-985c7b28a8e7/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/1a615ae0-dfcd-403c-bd11-985c7b28a8e7",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=121",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/1a615ae0-dfcd-403c-bd11-985c7b28a8e7",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/1a615ae0-dfcd-403c-bd11-985c7b28a8e7/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/1a615ae0-dfcd-403c-bd11-985c7b28a8e7",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c121"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/121",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c122",
-          "@type": "sc:Canvas",
-          "label": "118",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/a4c0fb0a-b76a-46ba-a61e-a2acd6a84d61/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/a4c0fb0a-b76a-46ba-a61e-a2acd6a84d61",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=122",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/a4c0fb0a-b76a-46ba-a61e-a2acd6a84d61",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/a4c0fb0a-b76a-46ba-a61e-a2acd6a84d61/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/a4c0fb0a-b76a-46ba-a61e-a2acd6a84d61",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c122"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/122",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c123",
-          "@type": "sc:Canvas",
-          "label": "119",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/b27e8ba7-eb06-4d30-b292-804d0c6333fb/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/b27e8ba7-eb06-4d30-b292-804d0c6333fb",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=123",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/b27e8ba7-eb06-4d30-b292-804d0c6333fb",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/b27e8ba7-eb06-4d30-b292-804d0c6333fb/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/b27e8ba7-eb06-4d30-b292-804d0c6333fb",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c123"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/123",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c124",
-          "@type": "sc:Canvas",
-          "label": "120",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/bf5b6d77-39bd-4b90-8717-3150f7b89cbb/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/bf5b6d77-39bd-4b90-8717-3150f7b89cbb",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=124",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/bf5b6d77-39bd-4b90-8717-3150f7b89cbb",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/bf5b6d77-39bd-4b90-8717-3150f7b89cbb/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/bf5b6d77-39bd-4b90-8717-3150f7b89cbb",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c124"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/124",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c125",
-          "@type": "sc:Canvas",
-          "label": "121",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/e861cbcf-1a28-45b7-9484-6a39a537c711/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/e861cbcf-1a28-45b7-9484-6a39a537c711",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=125",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/e861cbcf-1a28-45b7-9484-6a39a537c711",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/e861cbcf-1a28-45b7-9484-6a39a537c711/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/e861cbcf-1a28-45b7-9484-6a39a537c711",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c125"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/125",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c126",
-          "@type": "sc:Canvas",
-          "label": "122",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/49ca1a7a-5bf2-433b-8ee8-37e02212efc1/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/49ca1a7a-5bf2-433b-8ee8-37e02212efc1",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=126",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/49ca1a7a-5bf2-433b-8ee8-37e02212efc1",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/49ca1a7a-5bf2-433b-8ee8-37e02212efc1/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/49ca1a7a-5bf2-433b-8ee8-37e02212efc1",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c126"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/126",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c127",
-          "@type": "sc:Canvas",
-          "label": "123",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/6f45877f-26d5-439b-985c-f4522be1a092/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/6f45877f-26d5-439b-985c-f4522be1a092",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=127",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/6f45877f-26d5-439b-985c-f4522be1a092",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/6f45877f-26d5-439b-985c-f4522be1a092/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/6f45877f-26d5-439b-985c-f4522be1a092",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c127"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/127",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c128",
-          "@type": "sc:Canvas",
-          "label": "124",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/f1f24056-98e1-4d58-af44-d5d6798428f2/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/f1f24056-98e1-4d58-af44-d5d6798428f2",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=128",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/f1f24056-98e1-4d58-af44-d5d6798428f2",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/f1f24056-98e1-4d58-af44-d5d6798428f2/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/f1f24056-98e1-4d58-af44-d5d6798428f2",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c128"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/128",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c129",
-          "@type": "sc:Canvas",
-          "label": "125",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/60a3d960-27a2-458d-91aa-c8c33b335207/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/60a3d960-27a2-458d-91aa-c8c33b335207",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=129",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/60a3d960-27a2-458d-91aa-c8c33b335207",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/60a3d960-27a2-458d-91aa-c8c33b335207/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/60a3d960-27a2-458d-91aa-c8c33b335207",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c129"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/129",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c130",
-          "@type": "sc:Canvas",
-          "label": "126",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/508ba554-e43b-4e8f-ac7e-db61bad22274/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/508ba554-e43b-4e8f-ac7e-db61bad22274",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=130",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/508ba554-e43b-4e8f-ac7e-db61bad22274",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/508ba554-e43b-4e8f-ac7e-db61bad22274/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/508ba554-e43b-4e8f-ac7e-db61bad22274",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c130"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/130",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c131",
-          "@type": "sc:Canvas",
-          "label": "127",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/5c79a896-d98c-4226-b5b0-8ca55c275c91/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/5c79a896-d98c-4226-b5b0-8ca55c275c91",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=131",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/5c79a896-d98c-4226-b5b0-8ca55c275c91",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/5c79a896-d98c-4226-b5b0-8ca55c275c91/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/5c79a896-d98c-4226-b5b0-8ca55c275c91",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c131"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/131",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c132",
-          "@type": "sc:Canvas",
-          "label": "128",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/f867d379-d5a8-4933-b6b6-f31bc8886ba6/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/f867d379-d5a8-4933-b6b6-f31bc8886ba6",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=132",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/f867d379-d5a8-4933-b6b6-f31bc8886ba6",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/f867d379-d5a8-4933-b6b6-f31bc8886ba6/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/f867d379-d5a8-4933-b6b6-f31bc8886ba6",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c132"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/132",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c133",
-          "@type": "sc:Canvas",
-          "label": "129",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/8dd0efb4-0f8e-485d-be8c-bba361106a06/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/8dd0efb4-0f8e-485d-be8c-bba361106a06",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=133",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/8dd0efb4-0f8e-485d-be8c-bba361106a06",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/8dd0efb4-0f8e-485d-be8c-bba361106a06/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/8dd0efb4-0f8e-485d-be8c-bba361106a06",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c133"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/133",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c134",
-          "@type": "sc:Canvas",
-          "label": "130",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/41358bf9-6d1e-4dfd-a81f-309e5dfb7c9a/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/41358bf9-6d1e-4dfd-a81f-309e5dfb7c9a",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=134",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/41358bf9-6d1e-4dfd-a81f-309e5dfb7c9a",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/41358bf9-6d1e-4dfd-a81f-309e5dfb7c9a/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/41358bf9-6d1e-4dfd-a81f-309e5dfb7c9a",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c134"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/134",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c135",
-          "@type": "sc:Canvas",
-          "label": "131",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/02383107-c476-4072-a7aa-cda8fb161905/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/02383107-c476-4072-a7aa-cda8fb161905",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=135",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/02383107-c476-4072-a7aa-cda8fb161905",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/02383107-c476-4072-a7aa-cda8fb161905/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/02383107-c476-4072-a7aa-cda8fb161905",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c135"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/135",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c136",
-          "@type": "sc:Canvas",
-          "label": "132",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/66b3c104-fca5-459e-883f-7b5a4ac4de69/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/66b3c104-fca5-459e-883f-7b5a4ac4de69",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=136",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/66b3c104-fca5-459e-883f-7b5a4ac4de69",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/66b3c104-fca5-459e-883f-7b5a4ac4de69/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/66b3c104-fca5-459e-883f-7b5a4ac4de69",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c136"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/136",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c137",
-          "@type": "sc:Canvas",
-          "label": "133",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/b2b90684-9599-4485-9a9f-a64ea8889f7f/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/b2b90684-9599-4485-9a9f-a64ea8889f7f",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=137",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/b2b90684-9599-4485-9a9f-a64ea8889f7f",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/b2b90684-9599-4485-9a9f-a64ea8889f7f/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/b2b90684-9599-4485-9a9f-a64ea8889f7f",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c137"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/137",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c138",
-          "@type": "sc:Canvas",
-          "label": "134",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/db9c9810-df49-4071-9163-0354721b01d7/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/db9c9810-df49-4071-9163-0354721b01d7",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=138",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/db9c9810-df49-4071-9163-0354721b01d7",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/db9c9810-df49-4071-9163-0354721b01d7/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/db9c9810-df49-4071-9163-0354721b01d7",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c138"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/138",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c139",
-          "@type": "sc:Canvas",
-          "label": "135",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/cd39dd66-0935-4bed-b779-4c861520b967/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/cd39dd66-0935-4bed-b779-4c861520b967",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=139",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/cd39dd66-0935-4bed-b779-4c861520b967",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/cd39dd66-0935-4bed-b779-4c861520b967/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/cd39dd66-0935-4bed-b779-4c861520b967",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c139"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/139",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c140",
-          "@type": "sc:Canvas",
-          "label": "136",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/bc0682df-4d7c-40dc-87b9-e7ca7e9ed4d8/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/bc0682df-4d7c-40dc-87b9-e7ca7e9ed4d8",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=140",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/bc0682df-4d7c-40dc-87b9-e7ca7e9ed4d8",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/bc0682df-4d7c-40dc-87b9-e7ca7e9ed4d8/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/bc0682df-4d7c-40dc-87b9-e7ca7e9ed4d8",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c140"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/140",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c141",
-          "@type": "sc:Canvas",
-          "label": "137",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/62965a16-4a06-4edf-a236-77abb9051600/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/62965a16-4a06-4edf-a236-77abb9051600",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=141",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/62965a16-4a06-4edf-a236-77abb9051600",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/62965a16-4a06-4edf-a236-77abb9051600/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/62965a16-4a06-4edf-a236-77abb9051600",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c141"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/141",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c142",
-          "@type": "sc:Canvas",
-          "label": "138",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/2d903154-a204-449e-b294-754064956f02/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/2d903154-a204-449e-b294-754064956f02",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=142",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/2d903154-a204-449e-b294-754064956f02",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/2d903154-a204-449e-b294-754064956f02/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/2d903154-a204-449e-b294-754064956f02",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c142"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/142",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c143",
-          "@type": "sc:Canvas",
-          "label": "139",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/fc41d2a1-678e-441c-a2a8-db2e102e4662/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/fc41d2a1-678e-441c-a2a8-db2e102e4662",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=143",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/fc41d2a1-678e-441c-a2a8-db2e102e4662",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/fc41d2a1-678e-441c-a2a8-db2e102e4662/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/fc41d2a1-678e-441c-a2a8-db2e102e4662",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c143"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/143",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c144",
-          "@type": "sc:Canvas",
-          "label": "140",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/4103f37c-d308-4727-8458-0d8ac6e54215/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/4103f37c-d308-4727-8458-0d8ac6e54215",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=144",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/4103f37c-d308-4727-8458-0d8ac6e54215",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/4103f37c-d308-4727-8458-0d8ac6e54215/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/4103f37c-d308-4727-8458-0d8ac6e54215",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c144"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/144",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c145",
-          "@type": "sc:Canvas",
-          "label": "141",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/72ebc1ba-1f4c-4cc4-afe2-ffbb17c91cb3/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/72ebc1ba-1f4c-4cc4-afe2-ffbb17c91cb3",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=145",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/72ebc1ba-1f4c-4cc4-afe2-ffbb17c91cb3",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/72ebc1ba-1f4c-4cc4-afe2-ffbb17c91cb3/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/72ebc1ba-1f4c-4cc4-afe2-ffbb17c91cb3",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c145"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/145",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c146",
-          "@type": "sc:Canvas",
-          "label": "142",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/f7b629cc-45a5-459d-a20b-b946a9575ec9/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/f7b629cc-45a5-459d-a20b-b946a9575ec9",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=146",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/f7b629cc-45a5-459d-a20b-b946a9575ec9",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/f7b629cc-45a5-459d-a20b-b946a9575ec9/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/f7b629cc-45a5-459d-a20b-b946a9575ec9",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c146"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/146",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c147",
-          "@type": "sc:Canvas",
-          "label": "143",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/a072ea47-196b-4412-b72b-51533d700be0/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/a072ea47-196b-4412-b72b-51533d700be0",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=147",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/a072ea47-196b-4412-b72b-51533d700be0",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/a072ea47-196b-4412-b72b-51533d700be0/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/a072ea47-196b-4412-b72b-51533d700be0",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c147"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/147",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c148",
-          "@type": "sc:Canvas",
-          "label": "144",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/1451357e-1116-4a2c-9a27-0c60cfa679ad/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/1451357e-1116-4a2c-9a27-0c60cfa679ad",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=148",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/1451357e-1116-4a2c-9a27-0c60cfa679ad",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/1451357e-1116-4a2c-9a27-0c60cfa679ad/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/1451357e-1116-4a2c-9a27-0c60cfa679ad",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c148"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/148",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c149",
-          "@type": "sc:Canvas",
-          "label": "145",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/bc38a3d5-d97d-4123-b744-9e2f9e3db57c/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/bc38a3d5-d97d-4123-b744-9e2f9e3db57c",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=149",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/bc38a3d5-d97d-4123-b744-9e2f9e3db57c",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/bc38a3d5-d97d-4123-b744-9e2f9e3db57c/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/bc38a3d5-d97d-4123-b744-9e2f9e3db57c",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c149"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/149",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c150",
-          "@type": "sc:Canvas",
-          "label": "146",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/7a4b2ee0-1798-4e5f-a6dd-a7e1a603cb8f/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/7a4b2ee0-1798-4e5f-a6dd-a7e1a603cb8f",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=150",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/7a4b2ee0-1798-4e5f-a6dd-a7e1a603cb8f",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/7a4b2ee0-1798-4e5f-a6dd-a7e1a603cb8f/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/7a4b2ee0-1798-4e5f-a6dd-a7e1a603cb8f",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c150"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/150",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c151",
-          "@type": "sc:Canvas",
-          "label": "147",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/977aa97d-d331-4e60-b20d-b20f0f3b833c/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/977aa97d-d331-4e60-b20d-b20f0f3b833c",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=151",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/977aa97d-d331-4e60-b20d-b20f0f3b833c",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/977aa97d-d331-4e60-b20d-b20f0f3b833c/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/977aa97d-d331-4e60-b20d-b20f0f3b833c",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c151"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/151",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c152",
-          "@type": "sc:Canvas",
-          "label": "148",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/028f8d86-508d-405e-a53f-57266da1bad3/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/028f8d86-508d-405e-a53f-57266da1bad3",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=152",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/028f8d86-508d-405e-a53f-57266da1bad3",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/028f8d86-508d-405e-a53f-57266da1bad3/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/028f8d86-508d-405e-a53f-57266da1bad3",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c152"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/152",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c153",
-          "@type": "sc:Canvas",
-          "label": "149",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/445dc4c3-9c8d-4db8-966b-72c1281fe2a7/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/445dc4c3-9c8d-4db8-966b-72c1281fe2a7",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=153",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/445dc4c3-9c8d-4db8-966b-72c1281fe2a7",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/445dc4c3-9c8d-4db8-966b-72c1281fe2a7/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/445dc4c3-9c8d-4db8-966b-72c1281fe2a7",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c153"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/153",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c154",
-          "@type": "sc:Canvas",
-          "label": "150",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/959882df-1306-402e-8465-15063c34862a/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/959882df-1306-402e-8465-15063c34862a",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=154",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/959882df-1306-402e-8465-15063c34862a",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/959882df-1306-402e-8465-15063c34862a/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/959882df-1306-402e-8465-15063c34862a",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c154"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/154",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c155",
-          "@type": "sc:Canvas",
-          "label": "151",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/23cb4a21-d7f6-42de-bb3e-3519e795e528/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/23cb4a21-d7f6-42de-bb3e-3519e795e528",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=155",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/23cb4a21-d7f6-42de-bb3e-3519e795e528",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/23cb4a21-d7f6-42de-bb3e-3519e795e528/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/23cb4a21-d7f6-42de-bb3e-3519e795e528",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c155"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/155",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c156",
-          "@type": "sc:Canvas",
-          "label": "152",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/b8698da0-d9de-40ec-890b-c10c2cb5793c/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/b8698da0-d9de-40ec-890b-c10c2cb5793c",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=156",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/b8698da0-d9de-40ec-890b-c10c2cb5793c",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/b8698da0-d9de-40ec-890b-c10c2cb5793c/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/b8698da0-d9de-40ec-890b-c10c2cb5793c",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c156"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/156",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c157",
-          "@type": "sc:Canvas",
-          "label": "153",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/81f5a3fb-bf34-457c-b4b0-7dcfd0131f70/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/81f5a3fb-bf34-457c-b4b0-7dcfd0131f70",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=157",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/81f5a3fb-bf34-457c-b4b0-7dcfd0131f70",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/81f5a3fb-bf34-457c-b4b0-7dcfd0131f70/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/81f5a3fb-bf34-457c-b4b0-7dcfd0131f70",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c157"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/157",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c158",
-          "@type": "sc:Canvas",
-          "label": "154",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/75f54d22-2c6e-44f4-9728-4fa293e5abda/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/75f54d22-2c6e-44f4-9728-4fa293e5abda",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=158",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/75f54d22-2c6e-44f4-9728-4fa293e5abda",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/75f54d22-2c6e-44f4-9728-4fa293e5abda/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/75f54d22-2c6e-44f4-9728-4fa293e5abda",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c158"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/158",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c159",
-          "@type": "sc:Canvas",
-          "label": "155",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/3203c59c-7b91-4251-9c61-4aee41cb2d23/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/3203c59c-7b91-4251-9c61-4aee41cb2d23",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=159",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/3203c59c-7b91-4251-9c61-4aee41cb2d23",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/3203c59c-7b91-4251-9c61-4aee41cb2d23/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/3203c59c-7b91-4251-9c61-4aee41cb2d23",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c159"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/159",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c160",
-          "@type": "sc:Canvas",
-          "label": "156",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/b8334d57-fcbb-4222-9cb5-2bf47e874d83/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/b8334d57-fcbb-4222-9cb5-2bf47e874d83",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=160",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/b8334d57-fcbb-4222-9cb5-2bf47e874d83",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/b8334d57-fcbb-4222-9cb5-2bf47e874d83/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/b8334d57-fcbb-4222-9cb5-2bf47e874d83",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c160"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/160",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c161",
-          "@type": "sc:Canvas",
-          "label": "157",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/7d64e4d4-6625-4355-bd17-c39344ac749b/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/7d64e4d4-6625-4355-bd17-c39344ac749b",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=161",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/7d64e4d4-6625-4355-bd17-c39344ac749b",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/7d64e4d4-6625-4355-bd17-c39344ac749b/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/7d64e4d4-6625-4355-bd17-c39344ac749b",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c161"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/161",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c162",
-          "@type": "sc:Canvas",
-          "label": "158",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/f144964e-6080-4a1c-bf5d-76366b9ed8c1/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/f144964e-6080-4a1c-bf5d-76366b9ed8c1",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=162",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/f144964e-6080-4a1c-bf5d-76366b9ed8c1",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/f144964e-6080-4a1c-bf5d-76366b9ed8c1/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/f144964e-6080-4a1c-bf5d-76366b9ed8c1",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c162"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/162",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c163",
-          "@type": "sc:Canvas",
-          "label": "159",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/46820482-c28e-44b7-a925-d0338cf9bd1a/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/46820482-c28e-44b7-a925-d0338cf9bd1a",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=163",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/46820482-c28e-44b7-a925-d0338cf9bd1a",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/46820482-c28e-44b7-a925-d0338cf9bd1a/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/46820482-c28e-44b7-a925-d0338cf9bd1a",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c163"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/163",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c164",
-          "@type": "sc:Canvas",
-          "label": "160",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/bd338684-937c-4208-9fe3-f9d9d2571e55/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/bd338684-937c-4208-9fe3-f9d9d2571e55",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=164",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/bd338684-937c-4208-9fe3-f9d9d2571e55",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/bd338684-937c-4208-9fe3-f9d9d2571e55/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/bd338684-937c-4208-9fe3-f9d9d2571e55",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c164"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/164",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c165",
-          "@type": "sc:Canvas",
-          "label": "161",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/75e52f63-7638-49fa-9506-f86a286e8b4e/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/75e52f63-7638-49fa-9506-f86a286e8b4e",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=165",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/75e52f63-7638-49fa-9506-f86a286e8b4e",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/75e52f63-7638-49fa-9506-f86a286e8b4e/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/75e52f63-7638-49fa-9506-f86a286e8b4e",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c165"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/165",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c166",
-          "@type": "sc:Canvas",
-          "label": "162",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/ccc67c37-d121-4268-83b7-3a8257d01ee1/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/ccc67c37-d121-4268-83b7-3a8257d01ee1",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=166",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/ccc67c37-d121-4268-83b7-3a8257d01ee1",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/ccc67c37-d121-4268-83b7-3a8257d01ee1/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/ccc67c37-d121-4268-83b7-3a8257d01ee1",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c166"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/166",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c167",
-          "@type": "sc:Canvas",
-          "label": "163",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/97bf8cb6-751e-4e38-9993-386d17ed1fb4/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/97bf8cb6-751e-4e38-9993-386d17ed1fb4",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=167",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/97bf8cb6-751e-4e38-9993-386d17ed1fb4",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/97bf8cb6-751e-4e38-9993-386d17ed1fb4/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/97bf8cb6-751e-4e38-9993-386d17ed1fb4",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c167"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/167",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c168",
-          "@type": "sc:Canvas",
-          "label": "164",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/5c76f6a7-c7d4-496c-ace8-5179706ee84a/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/5c76f6a7-c7d4-496c-ace8-5179706ee84a",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=168",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/5c76f6a7-c7d4-496c-ace8-5179706ee84a",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/5c76f6a7-c7d4-496c-ace8-5179706ee84a/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/5c76f6a7-c7d4-496c-ace8-5179706ee84a",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c168"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/168",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c169",
-          "@type": "sc:Canvas",
-          "label": "165",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/1d4b0c9e-f84f-41a3-926f-bb2fd679fc5c/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/1d4b0c9e-f84f-41a3-926f-bb2fd679fc5c",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=169",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/1d4b0c9e-f84f-41a3-926f-bb2fd679fc5c",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/1d4b0c9e-f84f-41a3-926f-bb2fd679fc5c/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/1d4b0c9e-f84f-41a3-926f-bb2fd679fc5c",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c169"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/169",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c170",
-          "@type": "sc:Canvas",
-          "label": "166",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/cc487a7f-317d-48a8-9a98-5552877cb5a7/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/cc487a7f-317d-48a8-9a98-5552877cb5a7",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=170",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/cc487a7f-317d-48a8-9a98-5552877cb5a7",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/cc487a7f-317d-48a8-9a98-5552877cb5a7/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/cc487a7f-317d-48a8-9a98-5552877cb5a7",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c170"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/170",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c171",
-          "@type": "sc:Canvas",
-          "label": "167",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/a02de32f-1c01-4bcb-96cc-4d2b144aae5b/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/a02de32f-1c01-4bcb-96cc-4d2b144aae5b",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=171",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/a02de32f-1c01-4bcb-96cc-4d2b144aae5b",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/a02de32f-1c01-4bcb-96cc-4d2b144aae5b/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/a02de32f-1c01-4bcb-96cc-4d2b144aae5b",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c171"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/171",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c172",
-          "@type": "sc:Canvas",
-          "label": "168",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/768a62ac-edfe-44ea-a3c1-b460e734245c/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/768a62ac-edfe-44ea-a3c1-b460e734245c",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=172",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/768a62ac-edfe-44ea-a3c1-b460e734245c",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/768a62ac-edfe-44ea-a3c1-b460e734245c/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/768a62ac-edfe-44ea-a3c1-b460e734245c",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c172"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/172",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c173",
-          "@type": "sc:Canvas",
-          "label": "169",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/91d8e95c-6a25-4bcf-92f1-043742a164cf/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/91d8e95c-6a25-4bcf-92f1-043742a164cf",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=173",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/91d8e95c-6a25-4bcf-92f1-043742a164cf",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/91d8e95c-6a25-4bcf-92f1-043742a164cf/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/91d8e95c-6a25-4bcf-92f1-043742a164cf",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c173"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/173",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c174",
-          "@type": "sc:Canvas",
-          "label": "170",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/63edffc4-c002-4d14-974e-b005f9ace729/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/63edffc4-c002-4d14-974e-b005f9ace729",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=174",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/63edffc4-c002-4d14-974e-b005f9ace729",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/63edffc4-c002-4d14-974e-b005f9ace729/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/63edffc4-c002-4d14-974e-b005f9ace729",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c174"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/174",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c175",
-          "@type": "sc:Canvas",
-          "label": "171",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/c55184b7-f2c6-440c-be25-81d4d44fc7de/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/c55184b7-f2c6-440c-be25-81d4d44fc7de",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=175",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/c55184b7-f2c6-440c-be25-81d4d44fc7de",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/c55184b7-f2c6-440c-be25-81d4d44fc7de/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/c55184b7-f2c6-440c-be25-81d4d44fc7de",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c175"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/175",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c176",
-          "@type": "sc:Canvas",
-          "label": "172",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/69f7cc93-a0ca-4df9-b009-b294d86458df/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/69f7cc93-a0ca-4df9-b009-b294d86458df",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=176",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/69f7cc93-a0ca-4df9-b009-b294d86458df",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/69f7cc93-a0ca-4df9-b009-b294d86458df/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/69f7cc93-a0ca-4df9-b009-b294d86458df",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c176"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/176",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c177",
-          "@type": "sc:Canvas",
-          "label": "173",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/16fae09b-fb91-4eb5-8eb3-6590dcda9e2e/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/16fae09b-fb91-4eb5-8eb3-6590dcda9e2e",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=177",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/16fae09b-fb91-4eb5-8eb3-6590dcda9e2e",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/16fae09b-fb91-4eb5-8eb3-6590dcda9e2e/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/16fae09b-fb91-4eb5-8eb3-6590dcda9e2e",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c177"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/177",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c178",
-          "@type": "sc:Canvas",
-          "label": "174",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/09c6aaa1-4415-41cb-ba20-3d9618cd6dd4/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/09c6aaa1-4415-41cb-ba20-3d9618cd6dd4",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=178",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/09c6aaa1-4415-41cb-ba20-3d9618cd6dd4",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/09c6aaa1-4415-41cb-ba20-3d9618cd6dd4/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/09c6aaa1-4415-41cb-ba20-3d9618cd6dd4",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c178"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/178",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c179",
-          "@type": "sc:Canvas",
-          "label": "175",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/21aeedf3-4cb6-48f2-a4b0-d6eb66d3a1b0/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/21aeedf3-4cb6-48f2-a4b0-d6eb66d3a1b0",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=179",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/21aeedf3-4cb6-48f2-a4b0-d6eb66d3a1b0",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/21aeedf3-4cb6-48f2-a4b0-d6eb66d3a1b0/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/21aeedf3-4cb6-48f2-a4b0-d6eb66d3a1b0",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c179"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/179",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c180",
-          "@type": "sc:Canvas",
-          "label": "176",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/8acbe90f-c3d4-446f-afaa-b425892e7974/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/8acbe90f-c3d4-446f-afaa-b425892e7974",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=180",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/8acbe90f-c3d4-446f-afaa-b425892e7974",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/8acbe90f-c3d4-446f-afaa-b425892e7974/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/8acbe90f-c3d4-446f-afaa-b425892e7974",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c180"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/180",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c181",
-          "@type": "sc:Canvas",
-          "label": "177",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/15454337-1c30-4850-9df2-6f0e950b9d92/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/15454337-1c30-4850-9df2-6f0e950b9d92",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=181",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/15454337-1c30-4850-9df2-6f0e950b9d92",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/15454337-1c30-4850-9df2-6f0e950b9d92/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/15454337-1c30-4850-9df2-6f0e950b9d92",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c181"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/181",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c182",
-          "@type": "sc:Canvas",
-          "label": "178",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/6e0c2754-5c40-4173-a45c-1a6dbd42b3d8/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/6e0c2754-5c40-4173-a45c-1a6dbd42b3d8",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=182",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/6e0c2754-5c40-4173-a45c-1a6dbd42b3d8",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/6e0c2754-5c40-4173-a45c-1a6dbd42b3d8/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/6e0c2754-5c40-4173-a45c-1a6dbd42b3d8",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c182"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/182",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c183",
-          "@type": "sc:Canvas",
-          "label": "179",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/12e6ff80-216e-4b6a-8a1d-fc3de9c27cee/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/12e6ff80-216e-4b6a-8a1d-fc3de9c27cee",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=183",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/12e6ff80-216e-4b6a-8a1d-fc3de9c27cee",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/12e6ff80-216e-4b6a-8a1d-fc3de9c27cee/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/12e6ff80-216e-4b6a-8a1d-fc3de9c27cee",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c183"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/183",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c184",
-          "@type": "sc:Canvas",
-          "label": "180",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/b5f9b5a6-533e-4f22-b284-858ffdce010c/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/b5f9b5a6-533e-4f22-b284-858ffdce010c",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=184",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/b5f9b5a6-533e-4f22-b284-858ffdce010c",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/b5f9b5a6-533e-4f22-b284-858ffdce010c/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/b5f9b5a6-533e-4f22-b284-858ffdce010c",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c184"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/184",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c185",
-          "@type": "sc:Canvas",
-          "label": "181",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/5f0375e5-97d9-48b8-b4cf-6613caa038c5/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/5f0375e5-97d9-48b8-b4cf-6613caa038c5",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=185",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/5f0375e5-97d9-48b8-b4cf-6613caa038c5",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/5f0375e5-97d9-48b8-b4cf-6613caa038c5/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/5f0375e5-97d9-48b8-b4cf-6613caa038c5",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c185"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/185",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c186",
-          "@type": "sc:Canvas",
-          "label": "182",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/35331e23-4aae-4195-9d0e-bc54f728bb55/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/35331e23-4aae-4195-9d0e-bc54f728bb55",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=186",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/35331e23-4aae-4195-9d0e-bc54f728bb55",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/35331e23-4aae-4195-9d0e-bc54f728bb55/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/35331e23-4aae-4195-9d0e-bc54f728bb55",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c186"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/186",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c187",
-          "@type": "sc:Canvas",
-          "label": "183",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/c5b98c22-2643-4038-9b43-4ebe1a8d9cc0/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/c5b98c22-2643-4038-9b43-4ebe1a8d9cc0",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=187",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/c5b98c22-2643-4038-9b43-4ebe1a8d9cc0",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/c5b98c22-2643-4038-9b43-4ebe1a8d9cc0/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/c5b98c22-2643-4038-9b43-4ebe1a8d9cc0",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c187"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/187",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c188",
-          "@type": "sc:Canvas",
-          "label": "184",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/68401dd3-8275-4e7e-b61c-79e04ff4fcee/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/68401dd3-8275-4e7e-b61c-79e04ff4fcee",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=188",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/68401dd3-8275-4e7e-b61c-79e04ff4fcee",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/68401dd3-8275-4e7e-b61c-79e04ff4fcee/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/68401dd3-8275-4e7e-b61c-79e04ff4fcee",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c188"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/188",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c189",
-          "@type": "sc:Canvas",
-          "label": "185",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/ea2b371c-1ebc-4aa3-94de-48840570ce28/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/ea2b371c-1ebc-4aa3-94de-48840570ce28",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=189",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/ea2b371c-1ebc-4aa3-94de-48840570ce28",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/ea2b371c-1ebc-4aa3-94de-48840570ce28/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/ea2b371c-1ebc-4aa3-94de-48840570ce28",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c189"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/189",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c190",
-          "@type": "sc:Canvas",
-          "label": "186",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/ae17d522-c6e2-4bc1-88bb-ab54e6ae5b2f/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/ae17d522-c6e2-4bc1-88bb-ab54e6ae5b2f",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=190",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/ae17d522-c6e2-4bc1-88bb-ab54e6ae5b2f",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/ae17d522-c6e2-4bc1-88bb-ab54e6ae5b2f/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/ae17d522-c6e2-4bc1-88bb-ab54e6ae5b2f",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c190"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/190",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c191",
-          "@type": "sc:Canvas",
-          "label": "187",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/94166e46-0370-43e5-8e0d-fa41f9eb1fb5/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/94166e46-0370-43e5-8e0d-fa41f9eb1fb5",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=191",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/94166e46-0370-43e5-8e0d-fa41f9eb1fb5",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/94166e46-0370-43e5-8e0d-fa41f9eb1fb5/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/94166e46-0370-43e5-8e0d-fa41f9eb1fb5",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c191"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/191",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c192",
-          "@type": "sc:Canvas",
-          "label": "188",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/409ab534-9705-4d53-b4ce-178ea3645dd0/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/409ab534-9705-4d53-b4ce-178ea3645dd0",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=192",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/409ab534-9705-4d53-b4ce-178ea3645dd0",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/409ab534-9705-4d53-b4ce-178ea3645dd0/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/409ab534-9705-4d53-b4ce-178ea3645dd0",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c192"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/192",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c193",
-          "@type": "sc:Canvas",
-          "label": "189",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/929fa88a-b66f-4d2a-8f21-fabe42ac20a6/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/929fa88a-b66f-4d2a-8f21-fabe42ac20a6",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=193",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/929fa88a-b66f-4d2a-8f21-fabe42ac20a6",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/929fa88a-b66f-4d2a-8f21-fabe42ac20a6/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/929fa88a-b66f-4d2a-8f21-fabe42ac20a6",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c193"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/193",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c194",
-          "@type": "sc:Canvas",
-          "label": "190",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/69ae0b29-7e98-45fb-aef8-583cd3c3cf79/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/69ae0b29-7e98-45fb-aef8-583cd3c3cf79",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=194",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/69ae0b29-7e98-45fb-aef8-583cd3c3cf79",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/69ae0b29-7e98-45fb-aef8-583cd3c3cf79/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/69ae0b29-7e98-45fb-aef8-583cd3c3cf79",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c194"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/194",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c195",
-          "@type": "sc:Canvas",
-          "label": "191",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/9e00d843-2348-4431-bf8d-a12dd56f84bf/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/9e00d843-2348-4431-bf8d-a12dd56f84bf",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=195",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/9e00d843-2348-4431-bf8d-a12dd56f84bf",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/9e00d843-2348-4431-bf8d-a12dd56f84bf/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/9e00d843-2348-4431-bf8d-a12dd56f84bf",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c195"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/195",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c196",
-          "@type": "sc:Canvas",
-          "label": "192",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/5248cf2f-5ac5-4b1f-a5ae-1f733087b93d/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/5248cf2f-5ac5-4b1f-a5ae-1f733087b93d",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=196",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/5248cf2f-5ac5-4b1f-a5ae-1f733087b93d",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/5248cf2f-5ac5-4b1f-a5ae-1f733087b93d/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/5248cf2f-5ac5-4b1f-a5ae-1f733087b93d",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c196"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/196",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c197",
-          "@type": "sc:Canvas",
-          "label": "193",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/1d9ed8fe-8345-4d00-9cbc-cbe20ab26f9e/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/1d9ed8fe-8345-4d00-9cbc-cbe20ab26f9e",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=197",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/1d9ed8fe-8345-4d00-9cbc-cbe20ab26f9e",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/1d9ed8fe-8345-4d00-9cbc-cbe20ab26f9e/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/1d9ed8fe-8345-4d00-9cbc-cbe20ab26f9e",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c197"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/197",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c198",
-          "@type": "sc:Canvas",
-          "label": "194",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/f3b3b8ea-f44c-4f4a-8128-d63baccbe9bc/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/f3b3b8ea-f44c-4f4a-8128-d63baccbe9bc",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=198",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/f3b3b8ea-f44c-4f4a-8128-d63baccbe9bc",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/f3b3b8ea-f44c-4f4a-8128-d63baccbe9bc/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/f3b3b8ea-f44c-4f4a-8128-d63baccbe9bc",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c198"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/198",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c199",
-          "@type": "sc:Canvas",
-          "label": "195",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/10f63181-5d50-4130-a768-cbdc3a3b09e6/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/10f63181-5d50-4130-a768-cbdc3a3b09e6",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=199",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/10f63181-5d50-4130-a768-cbdc3a3b09e6",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/10f63181-5d50-4130-a768-cbdc3a3b09e6/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/10f63181-5d50-4130-a768-cbdc3a3b09e6",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c199"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/199",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c200",
-          "@type": "sc:Canvas",
-          "label": "196",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/d02cff8a-9e98-47c0-af22-bf1df4f6e02c/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/d02cff8a-9e98-47c0-af22-bf1df4f6e02c",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=200",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/d02cff8a-9e98-47c0-af22-bf1df4f6e02c",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/d02cff8a-9e98-47c0-af22-bf1df4f6e02c/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/d02cff8a-9e98-47c0-af22-bf1df4f6e02c",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c200"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/200",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c201",
-          "@type": "sc:Canvas",
-          "label": "197",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/f2b1c423-ac91-48d4-9257-80962eb7974d/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/f2b1c423-ac91-48d4-9257-80962eb7974d",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=201",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/f2b1c423-ac91-48d4-9257-80962eb7974d",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/f2b1c423-ac91-48d4-9257-80962eb7974d/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/f2b1c423-ac91-48d4-9257-80962eb7974d",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c201"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/201",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c202",
-          "@type": "sc:Canvas",
-          "label": "198",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/c13f5cdf-6413-473c-a23f-d8a31170c046/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/c13f5cdf-6413-473c-a23f-d8a31170c046",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=202",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/c13f5cdf-6413-473c-a23f-d8a31170c046",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/c13f5cdf-6413-473c-a23f-d8a31170c046/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/c13f5cdf-6413-473c-a23f-d8a31170c046",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c202"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/202",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c203",
-          "@type": "sc:Canvas",
-          "label": "199",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/507e81fe-8077-456a-805c-02c76a119c1f/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/507e81fe-8077-456a-805c-02c76a119c1f",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=203",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/507e81fe-8077-456a-805c-02c76a119c1f",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/507e81fe-8077-456a-805c-02c76a119c1f/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/507e81fe-8077-456a-805c-02c76a119c1f",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c203"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/203",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c204",
-          "@type": "sc:Canvas",
-          "label": "200",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/d56c3071-12bd-426a-94d4-d1573a7f330d/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/d56c3071-12bd-426a-94d4-d1573a7f330d",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=204",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/d56c3071-12bd-426a-94d4-d1573a7f330d",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/d56c3071-12bd-426a-94d4-d1573a7f330d/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/d56c3071-12bd-426a-94d4-d1573a7f330d",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c204"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/204",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c205",
-          "@type": "sc:Canvas",
-          "label": "201",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/df2175c0-5e0d-46ea-8f67-0ab53a2e8b1b/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/df2175c0-5e0d-46ea-8f67-0ab53a2e8b1b",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=205",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/df2175c0-5e0d-46ea-8f67-0ab53a2e8b1b",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/df2175c0-5e0d-46ea-8f67-0ab53a2e8b1b/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/df2175c0-5e0d-46ea-8f67-0ab53a2e8b1b",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c205"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/205",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c206",
-          "@type": "sc:Canvas",
-          "label": "202",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/3246db67-f777-41b9-948e-083e51227fa9/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/3246db67-f777-41b9-948e-083e51227fa9",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=206",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/3246db67-f777-41b9-948e-083e51227fa9",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/3246db67-f777-41b9-948e-083e51227fa9/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/3246db67-f777-41b9-948e-083e51227fa9",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c206"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/206",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c207",
-          "@type": "sc:Canvas",
-          "label": "203",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/fce1d85b-333a-4d97-993c-403dc6157e40/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/fce1d85b-333a-4d97-993c-403dc6157e40",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=207",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/fce1d85b-333a-4d97-993c-403dc6157e40",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/fce1d85b-333a-4d97-993c-403dc6157e40/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/fce1d85b-333a-4d97-993c-403dc6157e40",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c207"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/207",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c208",
-          "@type": "sc:Canvas",
-          "label": "204",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/03384542-30de-443f-844e-3bbf90cc82d9/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/03384542-30de-443f-844e-3bbf90cc82d9",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=208",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/03384542-30de-443f-844e-3bbf90cc82d9",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/03384542-30de-443f-844e-3bbf90cc82d9/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/03384542-30de-443f-844e-3bbf90cc82d9",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c208"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/208",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c209",
-          "@type": "sc:Canvas",
-          "label": "205",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/50e222af-7170-412f-9b99-a8b0cdcad9ab/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/50e222af-7170-412f-9b99-a8b0cdcad9ab",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=209",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/50e222af-7170-412f-9b99-a8b0cdcad9ab",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/50e222af-7170-412f-9b99-a8b0cdcad9ab/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/50e222af-7170-412f-9b99-a8b0cdcad9ab",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c209"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/209",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c210",
-          "@type": "sc:Canvas",
-          "label": "206",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/37aa8f0e-0a80-4897-b2b8-3a14e0491713/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/37aa8f0e-0a80-4897-b2b8-3a14e0491713",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=210",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/37aa8f0e-0a80-4897-b2b8-3a14e0491713",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/37aa8f0e-0a80-4897-b2b8-3a14e0491713/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/37aa8f0e-0a80-4897-b2b8-3a14e0491713",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c210"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/210",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c211",
-          "@type": "sc:Canvas",
-          "label": "207",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/d0cc3917-7dc6-4192-8a60-695f4a46a91e/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/d0cc3917-7dc6-4192-8a60-695f4a46a91e",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=211",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/d0cc3917-7dc6-4192-8a60-695f4a46a91e",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/d0cc3917-7dc6-4192-8a60-695f4a46a91e/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/d0cc3917-7dc6-4192-8a60-695f4a46a91e",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c211"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/211",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c212",
-          "@type": "sc:Canvas",
-          "label": "208",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/0d61bb7e-196c-41b2-b904-f1a5033518df/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/0d61bb7e-196c-41b2-b904-f1a5033518df",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=212",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/0d61bb7e-196c-41b2-b904-f1a5033518df",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/0d61bb7e-196c-41b2-b904-f1a5033518df/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/0d61bb7e-196c-41b2-b904-f1a5033518df",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c212"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/212",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c213",
-          "@type": "sc:Canvas",
-          "label": "209",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/be6c03d9-3a83-4ad8-9cf9-0278aa952bda/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/be6c03d9-3a83-4ad8-9cf9-0278aa952bda",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=213",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/be6c03d9-3a83-4ad8-9cf9-0278aa952bda",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/be6c03d9-3a83-4ad8-9cf9-0278aa952bda/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/be6c03d9-3a83-4ad8-9cf9-0278aa952bda",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c213"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/213",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c214",
-          "@type": "sc:Canvas",
-          "label": "210",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/6be910d4-c7aa-4f84-b058-e6b699ce8c48/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/6be910d4-c7aa-4f84-b058-e6b699ce8c48",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=214",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/6be910d4-c7aa-4f84-b058-e6b699ce8c48",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/6be910d4-c7aa-4f84-b058-e6b699ce8c48/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/6be910d4-c7aa-4f84-b058-e6b699ce8c48",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c214"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/214",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c215",
-          "@type": "sc:Canvas",
-          "label": "211",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/6e14ca3d-7284-4af6-8a0d-ef6adb13aab4/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/6e14ca3d-7284-4af6-8a0d-ef6adb13aab4",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=215",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/6e14ca3d-7284-4af6-8a0d-ef6adb13aab4",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/6e14ca3d-7284-4af6-8a0d-ef6adb13aab4/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/6e14ca3d-7284-4af6-8a0d-ef6adb13aab4",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c215"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/215",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c216",
-          "@type": "sc:Canvas",
-          "label": "212",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/768abdc6-a43a-46a6-a2bb-73bddaebf5d4/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/768abdc6-a43a-46a6-a2bb-73bddaebf5d4",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=216",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/768abdc6-a43a-46a6-a2bb-73bddaebf5d4",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/768abdc6-a43a-46a6-a2bb-73bddaebf5d4/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/768abdc6-a43a-46a6-a2bb-73bddaebf5d4",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c216"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/216",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c217",
-          "@type": "sc:Canvas",
-          "label": "213",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/1e07e2fc-1a99-4e95-a4a8-de29284f8d59/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/1e07e2fc-1a99-4e95-a4a8-de29284f8d59",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=217",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/1e07e2fc-1a99-4e95-a4a8-de29284f8d59",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/1e07e2fc-1a99-4e95-a4a8-de29284f8d59/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/1e07e2fc-1a99-4e95-a4a8-de29284f8d59",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c217"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/217",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c218",
-          "@type": "sc:Canvas",
-          "label": "214",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/561ba2ba-e772-4e54-93dd-71b4f48ee6d4/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/561ba2ba-e772-4e54-93dd-71b4f48ee6d4",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=218",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/561ba2ba-e772-4e54-93dd-71b4f48ee6d4",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/561ba2ba-e772-4e54-93dd-71b4f48ee6d4/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/561ba2ba-e772-4e54-93dd-71b4f48ee6d4",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c218"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/218",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c219",
-          "@type": "sc:Canvas",
-          "label": "215",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/d8698d33-2b5c-4d5b-809a-6c12907c3d4d/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/d8698d33-2b5c-4d5b-809a-6c12907c3d4d",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=219",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/d8698d33-2b5c-4d5b-809a-6c12907c3d4d",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/d8698d33-2b5c-4d5b-809a-6c12907c3d4d/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/d8698d33-2b5c-4d5b-809a-6c12907c3d4d",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c219"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/219",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c220",
-          "@type": "sc:Canvas",
-          "label": "216",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/e30fec9a-1a1d-49dd-9aae-72384cec2d7a/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/e30fec9a-1a1d-49dd-9aae-72384cec2d7a",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=220",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/e30fec9a-1a1d-49dd-9aae-72384cec2d7a",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/e30fec9a-1a1d-49dd-9aae-72384cec2d7a/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/e30fec9a-1a1d-49dd-9aae-72384cec2d7a",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c220"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/220",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c221",
-          "@type": "sc:Canvas",
-          "label": "217",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/31cb86f6-879a-4169-9330-129d9ada7afa/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/31cb86f6-879a-4169-9330-129d9ada7afa",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=221",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/31cb86f6-879a-4169-9330-129d9ada7afa",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/31cb86f6-879a-4169-9330-129d9ada7afa/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/31cb86f6-879a-4169-9330-129d9ada7afa",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c221"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/221",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c222",
-          "@type": "sc:Canvas",
-          "label": "218",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/832324d2-17e4-4650-8f2b-d99a92f8f997/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/832324d2-17e4-4650-8f2b-d99a92f8f997",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=222",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/832324d2-17e4-4650-8f2b-d99a92f8f997",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/832324d2-17e4-4650-8f2b-d99a92f8f997/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/832324d2-17e4-4650-8f2b-d99a92f8f997",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c222"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/222",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c223",
-          "@type": "sc:Canvas",
-          "label": "219",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/ca5a715d-be2d-4ce4-be98-e555e022bfeb/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/ca5a715d-be2d-4ce4-be98-e555e022bfeb",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=223",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/ca5a715d-be2d-4ce4-be98-e555e022bfeb",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/ca5a715d-be2d-4ce4-be98-e555e022bfeb/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/ca5a715d-be2d-4ce4-be98-e555e022bfeb",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c223"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/223",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c224",
-          "@type": "sc:Canvas",
-          "label": "220",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/9cd720da-909e-4f3b-bb86-94a2e0af04a9/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/9cd720da-909e-4f3b-bb86-94a2e0af04a9",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=224",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/9cd720da-909e-4f3b-bb86-94a2e0af04a9",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/9cd720da-909e-4f3b-bb86-94a2e0af04a9/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/9cd720da-909e-4f3b-bb86-94a2e0af04a9",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c224"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/224",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c225",
-          "@type": "sc:Canvas",
-          "label": "221",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/80d78db5-8199-4dae-abce-186f3102b340/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/80d78db5-8199-4dae-abce-186f3102b340",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=225",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/80d78db5-8199-4dae-abce-186f3102b340",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/80d78db5-8199-4dae-abce-186f3102b340/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/80d78db5-8199-4dae-abce-186f3102b340",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c225"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/225",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c226",
-          "@type": "sc:Canvas",
-          "label": "222",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/0459d429-8543-4f41-8f01-a7351e3b6bef/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/0459d429-8543-4f41-8f01-a7351e3b6bef",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=226",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/0459d429-8543-4f41-8f01-a7351e3b6bef",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/0459d429-8543-4f41-8f01-a7351e3b6bef/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/0459d429-8543-4f41-8f01-a7351e3b6bef",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c226"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/226",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c227",
-          "@type": "sc:Canvas",
-          "label": "223",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/cdcbd8d4-012d-4e5b-8711-bad9b37e0820/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/cdcbd8d4-012d-4e5b-8711-bad9b37e0820",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=227",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/cdcbd8d4-012d-4e5b-8711-bad9b37e0820",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/cdcbd8d4-012d-4e5b-8711-bad9b37e0820/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/cdcbd8d4-012d-4e5b-8711-bad9b37e0820",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c227"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/227",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c228",
-          "@type": "sc:Canvas",
-          "label": "224",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/5623bd1b-0b0d-422a-94f2-5798b9a811b4/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/5623bd1b-0b0d-422a-94f2-5798b9a811b4",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=228",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/5623bd1b-0b0d-422a-94f2-5798b9a811b4",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/5623bd1b-0b0d-422a-94f2-5798b9a811b4/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/5623bd1b-0b0d-422a-94f2-5798b9a811b4",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c228"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/228",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c229",
-          "@type": "sc:Canvas",
-          "label": "225",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/a8b7ebc9-6e97-4761-9344-fcf86dbc4e00/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/a8b7ebc9-6e97-4761-9344-fcf86dbc4e00",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=229",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/a8b7ebc9-6e97-4761-9344-fcf86dbc4e00",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/a8b7ebc9-6e97-4761-9344-fcf86dbc4e00/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/a8b7ebc9-6e97-4761-9344-fcf86dbc4e00",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c229"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/229",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c230",
-          "@type": "sc:Canvas",
-          "label": "226",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/feb370f9-5d95-48db-81b5-914006adf7ae/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/feb370f9-5d95-48db-81b5-914006adf7ae",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=230",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/feb370f9-5d95-48db-81b5-914006adf7ae",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/feb370f9-5d95-48db-81b5-914006adf7ae/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/feb370f9-5d95-48db-81b5-914006adf7ae",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c230"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/230",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c231",
-          "@type": "sc:Canvas",
-          "label": "227",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/32b2847e-5853-45c7-91b4-d663fa80c55e/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/32b2847e-5853-45c7-91b4-d663fa80c55e",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=231",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/32b2847e-5853-45c7-91b4-d663fa80c55e",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/32b2847e-5853-45c7-91b4-d663fa80c55e/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/32b2847e-5853-45c7-91b4-d663fa80c55e",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c231"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/231",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c232",
-          "@type": "sc:Canvas",
-          "label": "228",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/905e4f94-a655-4d87-8cd1-fab917e3b7db/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/905e4f94-a655-4d87-8cd1-fab917e3b7db",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=232",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/905e4f94-a655-4d87-8cd1-fab917e3b7db",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/905e4f94-a655-4d87-8cd1-fab917e3b7db/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/905e4f94-a655-4d87-8cd1-fab917e3b7db",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c232"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/232",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c233",
-          "@type": "sc:Canvas",
-          "label": "229",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/7aa4c569-6441-47c0-acc7-6e7abfc235af/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/7aa4c569-6441-47c0-acc7-6e7abfc235af",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=233",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/7aa4c569-6441-47c0-acc7-6e7abfc235af",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/7aa4c569-6441-47c0-acc7-6e7abfc235af/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/7aa4c569-6441-47c0-acc7-6e7abfc235af",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c233"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/233",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c234",
-          "@type": "sc:Canvas",
-          "label": "230",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/0e2c8fdf-0c7d-463d-9f6e-4c97fe96f8f8/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/0e2c8fdf-0c7d-463d-9f6e-4c97fe96f8f8",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=234",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/0e2c8fdf-0c7d-463d-9f6e-4c97fe96f8f8",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/0e2c8fdf-0c7d-463d-9f6e-4c97fe96f8f8/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/0e2c8fdf-0c7d-463d-9f6e-4c97fe96f8f8",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c234"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/234",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c235",
-          "@type": "sc:Canvas",
-          "label": "231",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/b0aa31e9-1d29-4ebf-bdc2-4bd27c4b67d7/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/b0aa31e9-1d29-4ebf-bdc2-4bd27c4b67d7",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=235",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/b0aa31e9-1d29-4ebf-bdc2-4bd27c4b67d7",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/b0aa31e9-1d29-4ebf-bdc2-4bd27c4b67d7/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/b0aa31e9-1d29-4ebf-bdc2-4bd27c4b67d7",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c235"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/235",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c236",
-          "@type": "sc:Canvas",
-          "label": "232",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/c86a47cb-d659-4fe8-b371-ee1742c0c9cc/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/c86a47cb-d659-4fe8-b371-ee1742c0c9cc",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=236",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/c86a47cb-d659-4fe8-b371-ee1742c0c9cc",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/c86a47cb-d659-4fe8-b371-ee1742c0c9cc/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/c86a47cb-d659-4fe8-b371-ee1742c0c9cc",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c236"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/236",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c237",
-          "@type": "sc:Canvas",
-          "label": "233",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/585e00c7-ed01-45b6-aef1-aaec1e82b85f/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/585e00c7-ed01-45b6-aef1-aaec1e82b85f",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=237",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/585e00c7-ed01-45b6-aef1-aaec1e82b85f",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/585e00c7-ed01-45b6-aef1-aaec1e82b85f/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/585e00c7-ed01-45b6-aef1-aaec1e82b85f",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c237"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/237",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c238",
-          "@type": "sc:Canvas",
-          "label": "234",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/cdfa78df-7676-418f-9fde-3dc6e332e3b1/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/cdfa78df-7676-418f-9fde-3dc6e332e3b1",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=238",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/cdfa78df-7676-418f-9fde-3dc6e332e3b1",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/cdfa78df-7676-418f-9fde-3dc6e332e3b1/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/cdfa78df-7676-418f-9fde-3dc6e332e3b1",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c238"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/238",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c239",
-          "@type": "sc:Canvas",
-          "label": "235",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/9211e47b-b64b-4aed-b1a5-ba6e283d863c/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/9211e47b-b64b-4aed-b1a5-ba6e283d863c",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=239",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/9211e47b-b64b-4aed-b1a5-ba6e283d863c",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/9211e47b-b64b-4aed-b1a5-ba6e283d863c/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/9211e47b-b64b-4aed-b1a5-ba6e283d863c",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c239"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/239",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c240",
-          "@type": "sc:Canvas",
-          "label": "236",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/864bd144-1414-43f6-a4cd-297a0583f852/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/864bd144-1414-43f6-a4cd-297a0583f852",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=240",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/864bd144-1414-43f6-a4cd-297a0583f852",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/864bd144-1414-43f6-a4cd-297a0583f852/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/864bd144-1414-43f6-a4cd-297a0583f852",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c240"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/240",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c241",
-          "@type": "sc:Canvas",
-          "label": "237",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/9c9fd946-4608-48e3-9142-072009720c19/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/9c9fd946-4608-48e3-9142-072009720c19",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=241",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/9c9fd946-4608-48e3-9142-072009720c19",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/9c9fd946-4608-48e3-9142-072009720c19/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/9c9fd946-4608-48e3-9142-072009720c19",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c241"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/241",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c242",
-          "@type": "sc:Canvas",
-          "label": "238",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/b5df3d01-bf2b-4bab-8d68-7fd8a27add8d/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/b5df3d01-bf2b-4bab-8d68-7fd8a27add8d",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=242",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/b5df3d01-bf2b-4bab-8d68-7fd8a27add8d",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/b5df3d01-bf2b-4bab-8d68-7fd8a27add8d/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/b5df3d01-bf2b-4bab-8d68-7fd8a27add8d",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c242"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/242",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c243",
-          "@type": "sc:Canvas",
-          "label": "239",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/ef375175-703e-406b-be30-6c91419dc176/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/ef375175-703e-406b-be30-6c91419dc176",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=243",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/ef375175-703e-406b-be30-6c91419dc176",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/ef375175-703e-406b-be30-6c91419dc176/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/ef375175-703e-406b-be30-6c91419dc176",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c243"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/243",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c244",
-          "@type": "sc:Canvas",
-          "label": "240",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/7dd77069-2daa-4c93-bc2e-fefc69f09362/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/7dd77069-2daa-4c93-bc2e-fefc69f09362",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=244",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/7dd77069-2daa-4c93-bc2e-fefc69f09362",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/7dd77069-2daa-4c93-bc2e-fefc69f09362/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/7dd77069-2daa-4c93-bc2e-fefc69f09362",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c244"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/244",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c245",
-          "@type": "sc:Canvas",
-          "label": "241",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/70cf7be6-71fb-45cd-a95b-b7ee0dbd17fe/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/70cf7be6-71fb-45cd-a95b-b7ee0dbd17fe",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=245",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/70cf7be6-71fb-45cd-a95b-b7ee0dbd17fe",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/70cf7be6-71fb-45cd-a95b-b7ee0dbd17fe/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/70cf7be6-71fb-45cd-a95b-b7ee0dbd17fe",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c245"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/245",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c246",
-          "@type": "sc:Canvas",
-          "label": "242",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/2c5d7daa-3594-41a4-b6d6-ae85061537f6/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/2c5d7daa-3594-41a4-b6d6-ae85061537f6",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=246",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/2c5d7daa-3594-41a4-b6d6-ae85061537f6",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/2c5d7daa-3594-41a4-b6d6-ae85061537f6/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/2c5d7daa-3594-41a4-b6d6-ae85061537f6",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c246"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/246",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c247",
-          "@type": "sc:Canvas",
-          "label": "243",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/20ec3aa3-2963-4d8b-8029-7c96d241fbfc/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/20ec3aa3-2963-4d8b-8029-7c96d241fbfc",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=247",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/20ec3aa3-2963-4d8b-8029-7c96d241fbfc",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/20ec3aa3-2963-4d8b-8029-7c96d241fbfc/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/20ec3aa3-2963-4d8b-8029-7c96d241fbfc",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c247"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/247",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c248",
-          "@type": "sc:Canvas",
-          "label": "244",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/df812454-aac0-4f37-b171-b5ff982d63be/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/df812454-aac0-4f37-b171-b5ff982d63be",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=248",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/df812454-aac0-4f37-b171-b5ff982d63be",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/df812454-aac0-4f37-b171-b5ff982d63be/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/df812454-aac0-4f37-b171-b5ff982d63be",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c248"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/248",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c249",
-          "@type": "sc:Canvas",
-          "label": "245",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/62c30b16-5572-4874-b0a4-67d0d5e54a03/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/62c30b16-5572-4874-b0a4-67d0d5e54a03",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=249",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/62c30b16-5572-4874-b0a4-67d0d5e54a03",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/62c30b16-5572-4874-b0a4-67d0d5e54a03/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/62c30b16-5572-4874-b0a4-67d0d5e54a03",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c249"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/249",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c250",
-          "@type": "sc:Canvas",
-          "label": "246",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/dfd61c1f-151b-4255-9dee-57b690bc4fb9/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/dfd61c1f-151b-4255-9dee-57b690bc4fb9",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=250",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/dfd61c1f-151b-4255-9dee-57b690bc4fb9",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/dfd61c1f-151b-4255-9dee-57b690bc4fb9/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/dfd61c1f-151b-4255-9dee-57b690bc4fb9",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c250"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/250",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c251",
-          "@type": "sc:Canvas",
-          "label": "247",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/fb16d9ab-fd82-405d-a62a-aa890f57789c/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/fb16d9ab-fd82-405d-a62a-aa890f57789c",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=251",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/fb16d9ab-fd82-405d-a62a-aa890f57789c",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/fb16d9ab-fd82-405d-a62a-aa890f57789c/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/fb16d9ab-fd82-405d-a62a-aa890f57789c",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c251"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/251",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c252",
-          "@type": "sc:Canvas",
-          "label": "248",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/e828d899-ac0f-4faa-a06b-789b953edbd7/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/e828d899-ac0f-4faa-a06b-789b953edbd7",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=252",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/e828d899-ac0f-4faa-a06b-789b953edbd7",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/e828d899-ac0f-4faa-a06b-789b953edbd7/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/e828d899-ac0f-4faa-a06b-789b953edbd7",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c252"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/252",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c253",
-          "@type": "sc:Canvas",
-          "label": "249",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/03373c2c-9eff-465a-bb3a-418839c8c904/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/03373c2c-9eff-465a-bb3a-418839c8c904",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=253",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/03373c2c-9eff-465a-bb3a-418839c8c904",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/03373c2c-9eff-465a-bb3a-418839c8c904/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/03373c2c-9eff-465a-bb3a-418839c8c904",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c253"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/253",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c254",
-          "@type": "sc:Canvas",
-          "label": "250",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/5c544a71-1b26-4227-ba5c-d7614e06306d/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/5c544a71-1b26-4227-ba5c-d7614e06306d",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=254",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/5c544a71-1b26-4227-ba5c-d7614e06306d",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/5c544a71-1b26-4227-ba5c-d7614e06306d/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/5c544a71-1b26-4227-ba5c-d7614e06306d",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c254"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/254",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c255",
-          "@type": "sc:Canvas",
-          "label": "251",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/6f48c78e-a89f-4e34-bbf7-f54adca00d96/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/6f48c78e-a89f-4e34-bbf7-f54adca00d96",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=255",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/6f48c78e-a89f-4e34-bbf7-f54adca00d96",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/6f48c78e-a89f-4e34-bbf7-f54adca00d96/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/6f48c78e-a89f-4e34-bbf7-f54adca00d96",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c255"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/255",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c256",
-          "@type": "sc:Canvas",
-          "label": "252",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/e4422c3a-1050-4f3a-af65-2dfe38646c25/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/e4422c3a-1050-4f3a-af65-2dfe38646c25",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=256",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/e4422c3a-1050-4f3a-af65-2dfe38646c25",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/e4422c3a-1050-4f3a-af65-2dfe38646c25/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/e4422c3a-1050-4f3a-af65-2dfe38646c25",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c256"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/256",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c257",
-          "@type": "sc:Canvas",
-          "label": "253",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/94bf2088-c56f-4ca7-a86e-4aa8126b7499/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/94bf2088-c56f-4ca7-a86e-4aa8126b7499",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=257",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/94bf2088-c56f-4ca7-a86e-4aa8126b7499",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/94bf2088-c56f-4ca7-a86e-4aa8126b7499/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/94bf2088-c56f-4ca7-a86e-4aa8126b7499",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c257"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/257",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c258",
-          "@type": "sc:Canvas",
-          "label": "254",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/849a301b-90e3-4622-89f2-cc44bafd43e3/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/849a301b-90e3-4622-89f2-cc44bafd43e3",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=258",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/849a301b-90e3-4622-89f2-cc44bafd43e3",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/849a301b-90e3-4622-89f2-cc44bafd43e3/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/849a301b-90e3-4622-89f2-cc44bafd43e3",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c258"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/258",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c259",
-          "@type": "sc:Canvas",
-          "label": "255",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/2147cfb2-02b0-4a34-ad2f-d81807c4b28f/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/2147cfb2-02b0-4a34-ad2f-d81807c4b28f",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=259",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/2147cfb2-02b0-4a34-ad2f-d81807c4b28f",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/2147cfb2-02b0-4a34-ad2f-d81807c4b28f/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/2147cfb2-02b0-4a34-ad2f-d81807c4b28f",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c259"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/259",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c260",
-          "@type": "sc:Canvas",
-          "label": "256",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/a9b2413a-e6e4-42cd-8647-d32fe6860bd7/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/a9b2413a-e6e4-42cd-8647-d32fe6860bd7",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=260",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/a9b2413a-e6e4-42cd-8647-d32fe6860bd7",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/a9b2413a-e6e4-42cd-8647-d32fe6860bd7/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/a9b2413a-e6e4-42cd-8647-d32fe6860bd7",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c260"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/260",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c261",
-          "@type": "sc:Canvas",
-          "label": "257",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/1327e475-beef-41db-a0cd-05347fefe174/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/1327e475-beef-41db-a0cd-05347fefe174",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=261",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/1327e475-beef-41db-a0cd-05347fefe174",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/1327e475-beef-41db-a0cd-05347fefe174/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/1327e475-beef-41db-a0cd-05347fefe174",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c261"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/261",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c262",
-          "@type": "sc:Canvas",
-          "label": "258",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/de457aa8-1752-4b2e-ad08-f357a49140b2/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/de457aa8-1752-4b2e-ad08-f357a49140b2",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=262",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/de457aa8-1752-4b2e-ad08-f357a49140b2",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/de457aa8-1752-4b2e-ad08-f357a49140b2/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/de457aa8-1752-4b2e-ad08-f357a49140b2",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c262"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/262",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c263",
-          "@type": "sc:Canvas",
-          "label": "259",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/dd7288b5-6d95-448d-81d8-4ff91806719d/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/dd7288b5-6d95-448d-81d8-4ff91806719d",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=263",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/dd7288b5-6d95-448d-81d8-4ff91806719d",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/dd7288b5-6d95-448d-81d8-4ff91806719d/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/dd7288b5-6d95-448d-81d8-4ff91806719d",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c263"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/263",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c264",
-          "@type": "sc:Canvas",
-          "label": "260",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/0411dc56-c911-4785-aa01-e20168502e56/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/0411dc56-c911-4785-aa01-e20168502e56",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=264",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/0411dc56-c911-4785-aa01-e20168502e56",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/0411dc56-c911-4785-aa01-e20168502e56/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/0411dc56-c911-4785-aa01-e20168502e56",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c264"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/264",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c265",
-          "@type": "sc:Canvas",
-          "label": "261",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/3c502115-d1af-4887-9876-3e0d85368c41/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/3c502115-d1af-4887-9876-3e0d85368c41",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=265",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/3c502115-d1af-4887-9876-3e0d85368c41",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/3c502115-d1af-4887-9876-3e0d85368c41/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/3c502115-d1af-4887-9876-3e0d85368c41",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c265"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/265",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c266",
-          "@type": "sc:Canvas",
-          "label": "262",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/8d2d250a-bd68-4e71-80c1-0e535b4be11f/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/8d2d250a-bd68-4e71-80c1-0e535b4be11f",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=266",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/8d2d250a-bd68-4e71-80c1-0e535b4be11f",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/8d2d250a-bd68-4e71-80c1-0e535b4be11f/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/8d2d250a-bd68-4e71-80c1-0e535b4be11f",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c266"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/266",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c267",
-          "@type": "sc:Canvas",
-          "label": "263",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/c7061c7d-d667-4d74-b3a4-419ee2babf85/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/c7061c7d-d667-4d74-b3a4-419ee2babf85",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=267",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/c7061c7d-d667-4d74-b3a4-419ee2babf85",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/c7061c7d-d667-4d74-b3a4-419ee2babf85/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/c7061c7d-d667-4d74-b3a4-419ee2babf85",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c267"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/267",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c268",
-          "@type": "sc:Canvas",
-          "label": "264",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/ea2001e8-6a39-470d-9a4e-d410acf7bca8/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/ea2001e8-6a39-470d-9a4e-d410acf7bca8",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=268",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/ea2001e8-6a39-470d-9a4e-d410acf7bca8",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/ea2001e8-6a39-470d-9a4e-d410acf7bca8/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/ea2001e8-6a39-470d-9a4e-d410acf7bca8",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c268"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/268",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c269",
-          "@type": "sc:Canvas",
-          "label": "265",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/298be765-9cc3-4697-8a0f-1b7d554c80ce/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/298be765-9cc3-4697-8a0f-1b7d554c80ce",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=269",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/298be765-9cc3-4697-8a0f-1b7d554c80ce",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/298be765-9cc3-4697-8a0f-1b7d554c80ce/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/298be765-9cc3-4697-8a0f-1b7d554c80ce",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c269"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/269",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c270",
-          "@type": "sc:Canvas",
-          "label": "266",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/efdeffc8-db6a-480b-9449-07b1aadf037a/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/efdeffc8-db6a-480b-9449-07b1aadf037a",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=270",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/efdeffc8-db6a-480b-9449-07b1aadf037a",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/efdeffc8-db6a-480b-9449-07b1aadf037a/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/efdeffc8-db6a-480b-9449-07b1aadf037a",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c270"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/270",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c271",
-          "@type": "sc:Canvas",
-          "label": "267",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/826f5e08-bbe3-463b-aa4c-5774e4019bb7/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/826f5e08-bbe3-463b-aa4c-5774e4019bb7",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=271",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/826f5e08-bbe3-463b-aa4c-5774e4019bb7",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/826f5e08-bbe3-463b-aa4c-5774e4019bb7/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/826f5e08-bbe3-463b-aa4c-5774e4019bb7",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c271"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/271",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c272",
-          "@type": "sc:Canvas",
-          "label": "268",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/bd2bfe0b-514f-4b14-b442-ede303f7f4ab/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/bd2bfe0b-514f-4b14-b442-ede303f7f4ab",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=272",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/bd2bfe0b-514f-4b14-b442-ede303f7f4ab",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/bd2bfe0b-514f-4b14-b442-ede303f7f4ab/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/bd2bfe0b-514f-4b14-b442-ede303f7f4ab",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c272"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/272",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c273",
-          "@type": "sc:Canvas",
-          "label": "269",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/40d4c1b9-1349-44ba-a37e-e904a5fa545b/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/40d4c1b9-1349-44ba-a37e-e904a5fa545b",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=273",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/40d4c1b9-1349-44ba-a37e-e904a5fa545b",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/40d4c1b9-1349-44ba-a37e-e904a5fa545b/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/40d4c1b9-1349-44ba-a37e-e904a5fa545b",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c273"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/273",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c274",
-          "@type": "sc:Canvas",
-          "label": "270",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/b63262dc-efff-491c-bfe6-654744204f00/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/b63262dc-efff-491c-bfe6-654744204f00",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=274",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/b63262dc-efff-491c-bfe6-654744204f00",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/b63262dc-efff-491c-bfe6-654744204f00/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/b63262dc-efff-491c-bfe6-654744204f00",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c274"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/274",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c275",
-          "@type": "sc:Canvas",
-          "label": "271",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/0472fdef-270c-4e1f-92be-a026e64e2879/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/0472fdef-270c-4e1f-92be-a026e64e2879",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=275",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/0472fdef-270c-4e1f-92be-a026e64e2879",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/0472fdef-270c-4e1f-92be-a026e64e2879/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/0472fdef-270c-4e1f-92be-a026e64e2879",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c275"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/275",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c276",
-          "@type": "sc:Canvas",
-          "label": "272",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/b05b7d96-8eaa-40de-b859-e4049d5ed0d4/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/b05b7d96-8eaa-40de-b859-e4049d5ed0d4",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=276",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/b05b7d96-8eaa-40de-b859-e4049d5ed0d4",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/b05b7d96-8eaa-40de-b859-e4049d5ed0d4/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/b05b7d96-8eaa-40de-b859-e4049d5ed0d4",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c276"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/276",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c277",
-          "@type": "sc:Canvas",
-          "label": "273",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/766ae4c5-d7de-4a6c-b83e-c396af942a94/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/766ae4c5-d7de-4a6c-b83e-c396af942a94",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=277",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/766ae4c5-d7de-4a6c-b83e-c396af942a94",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/766ae4c5-d7de-4a6c-b83e-c396af942a94/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/766ae4c5-d7de-4a6c-b83e-c396af942a94",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c277"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/277",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c278",
-          "@type": "sc:Canvas",
-          "label": "274",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/455c56b2-ef16-43b0-91f9-90e4ba9cb6e4/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/455c56b2-ef16-43b0-91f9-90e4ba9cb6e4",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=278",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/455c56b2-ef16-43b0-91f9-90e4ba9cb6e4",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/455c56b2-ef16-43b0-91f9-90e4ba9cb6e4/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/455c56b2-ef16-43b0-91f9-90e4ba9cb6e4",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c278"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/278",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c279",
-          "@type": "sc:Canvas",
-          "label": "275",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/7bd9b1e8-0216-4868-8803-afac22a4cd57/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/7bd9b1e8-0216-4868-8803-afac22a4cd57",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=279",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/7bd9b1e8-0216-4868-8803-afac22a4cd57",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/7bd9b1e8-0216-4868-8803-afac22a4cd57/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/7bd9b1e8-0216-4868-8803-afac22a4cd57",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c279"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/279",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c280",
-          "@type": "sc:Canvas",
-          "label": "276",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/7a7b0a01-b341-4875-a9fe-7a437ddb9cd5/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/7a7b0a01-b341-4875-a9fe-7a437ddb9cd5",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=280",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/7a7b0a01-b341-4875-a9fe-7a437ddb9cd5",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/7a7b0a01-b341-4875-a9fe-7a437ddb9cd5/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/7a7b0a01-b341-4875-a9fe-7a437ddb9cd5",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c280"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/280",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c281",
-          "@type": "sc:Canvas",
-          "label": "277",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/b34aa238-0f13-4a92-9a86-b012ca2bcf63/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/b34aa238-0f13-4a92-9a86-b012ca2bcf63",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=281",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/b34aa238-0f13-4a92-9a86-b012ca2bcf63",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/b34aa238-0f13-4a92-9a86-b012ca2bcf63/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/b34aa238-0f13-4a92-9a86-b012ca2bcf63",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c281"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/281",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c282",
-          "@type": "sc:Canvas",
-          "label": "278",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/c99d0a7a-1481-470c-a681-044d1b7b34b4/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/c99d0a7a-1481-470c-a681-044d1b7b34b4",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=282",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/c99d0a7a-1481-470c-a681-044d1b7b34b4",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/c99d0a7a-1481-470c-a681-044d1b7b34b4/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/c99d0a7a-1481-470c-a681-044d1b7b34b4",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c282"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/282",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c283",
-          "@type": "sc:Canvas",
-          "label": "279",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/869ffc6e-c692-4336-ab2d-6097e2abb6bd/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/869ffc6e-c692-4336-ab2d-6097e2abb6bd",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=283",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/869ffc6e-c692-4336-ab2d-6097e2abb6bd",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/869ffc6e-c692-4336-ab2d-6097e2abb6bd/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/869ffc6e-c692-4336-ab2d-6097e2abb6bd",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c283"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/283",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c284",
-          "@type": "sc:Canvas",
-          "label": "280",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/babd8c19-23fb-49c3-8906-4d7c88423029/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/babd8c19-23fb-49c3-8906-4d7c88423029",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=284",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/babd8c19-23fb-49c3-8906-4d7c88423029",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/babd8c19-23fb-49c3-8906-4d7c88423029/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/babd8c19-23fb-49c3-8906-4d7c88423029",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c284"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/284",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c285",
-          "@type": "sc:Canvas",
-          "label": "281",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/0f3b8654-e16c-4073-bf16-5836d5888e41/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/0f3b8654-e16c-4073-bf16-5836d5888e41",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=285",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/0f3b8654-e16c-4073-bf16-5836d5888e41",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/0f3b8654-e16c-4073-bf16-5836d5888e41/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/0f3b8654-e16c-4073-bf16-5836d5888e41",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c285"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/285",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c286",
-          "@type": "sc:Canvas",
-          "label": "282",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/83daa212-a387-44d6-90e1-4d932e74551e/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/83daa212-a387-44d6-90e1-4d932e74551e",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=286",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/83daa212-a387-44d6-90e1-4d932e74551e",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/83daa212-a387-44d6-90e1-4d932e74551e/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/83daa212-a387-44d6-90e1-4d932e74551e",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c286"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/286",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c287",
-          "@type": "sc:Canvas",
-          "label": "283",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/03d350a8-d74b-41f8-a977-0b1ea2817a2b/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/03d350a8-d74b-41f8-a977-0b1ea2817a2b",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=287",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/03d350a8-d74b-41f8-a977-0b1ea2817a2b",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/03d350a8-d74b-41f8-a977-0b1ea2817a2b/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/03d350a8-d74b-41f8-a977-0b1ea2817a2b",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c287"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/287",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c288",
-          "@type": "sc:Canvas",
-          "label": "284",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/32a48fa9-c698-45d0-b2bc-def4019d7542/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/32a48fa9-c698-45d0-b2bc-def4019d7542",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=288",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/32a48fa9-c698-45d0-b2bc-def4019d7542",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/32a48fa9-c698-45d0-b2bc-def4019d7542/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/32a48fa9-c698-45d0-b2bc-def4019d7542",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c288"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/288",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c289",
-          "@type": "sc:Canvas",
-          "label": "285",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/aa943ce1-b70d-4c70-a187-e89228d59584/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/aa943ce1-b70d-4c70-a187-e89228d59584",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=289",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/aa943ce1-b70d-4c70-a187-e89228d59584",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/aa943ce1-b70d-4c70-a187-e89228d59584/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/aa943ce1-b70d-4c70-a187-e89228d59584",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c289"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/289",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c290",
-          "@type": "sc:Canvas",
-          "label": "286",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/3e0cb14a-a8fb-4ef9-ba3c-b79c9e9a0ec1/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/3e0cb14a-a8fb-4ef9-ba3c-b79c9e9a0ec1",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=290",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/3e0cb14a-a8fb-4ef9-ba3c-b79c9e9a0ec1",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/3e0cb14a-a8fb-4ef9-ba3c-b79c9e9a0ec1/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/3e0cb14a-a8fb-4ef9-ba3c-b79c9e9a0ec1",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c290"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/290",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c291",
-          "@type": "sc:Canvas",
-          "label": "287",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/76c0de85-2e97-49d3-bd55-26a19196dad4/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/76c0de85-2e97-49d3-bd55-26a19196dad4",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=291",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/76c0de85-2e97-49d3-bd55-26a19196dad4",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/76c0de85-2e97-49d3-bd55-26a19196dad4/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/76c0de85-2e97-49d3-bd55-26a19196dad4",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c291"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/291",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c292",
-          "@type": "sc:Canvas",
-          "label": "288",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/92bf1471-7e05-4968-beaa-a781cc54c702/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/92bf1471-7e05-4968-beaa-a781cc54c702",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=292",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/92bf1471-7e05-4968-beaa-a781cc54c702",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/92bf1471-7e05-4968-beaa-a781cc54c702/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/92bf1471-7e05-4968-beaa-a781cc54c702",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c292"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/292",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c293",
-          "@type": "sc:Canvas",
-          "label": "289",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/532f9f63-184e-4496-bff6-c9ecc76807e4/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/532f9f63-184e-4496-bff6-c9ecc76807e4",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=293",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/532f9f63-184e-4496-bff6-c9ecc76807e4",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/532f9f63-184e-4496-bff6-c9ecc76807e4/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/532f9f63-184e-4496-bff6-c9ecc76807e4",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c293"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/293",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c294",
-          "@type": "sc:Canvas",
-          "label": "290",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/9e4f9723-463b-4402-8cac-b64c5dd0e033/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/9e4f9723-463b-4402-8cac-b64c5dd0e033",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=294",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/9e4f9723-463b-4402-8cac-b64c5dd0e033",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/9e4f9723-463b-4402-8cac-b64c5dd0e033/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/9e4f9723-463b-4402-8cac-b64c5dd0e033",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c294"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/294",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c295",
-          "@type": "sc:Canvas",
-          "label": "291",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/882920bf-a423-4b49-bffa-13076479cbc2/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/882920bf-a423-4b49-bffa-13076479cbc2",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=295",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/882920bf-a423-4b49-bffa-13076479cbc2",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/882920bf-a423-4b49-bffa-13076479cbc2/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/882920bf-a423-4b49-bffa-13076479cbc2",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c295"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/295",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c296",
-          "@type": "sc:Canvas",
-          "label": "292",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/95a77935-e239-4e05-986d-1cde5916de9a/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/95a77935-e239-4e05-986d-1cde5916de9a",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=296",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/95a77935-e239-4e05-986d-1cde5916de9a",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/95a77935-e239-4e05-986d-1cde5916de9a/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/95a77935-e239-4e05-986d-1cde5916de9a",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c296"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/296",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c297",
-          "@type": "sc:Canvas",
-          "label": "293",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/29762523-5e28-4064-9a33-8e61058a4116/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/29762523-5e28-4064-9a33-8e61058a4116",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=297",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/29762523-5e28-4064-9a33-8e61058a4116",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/29762523-5e28-4064-9a33-8e61058a4116/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/29762523-5e28-4064-9a33-8e61058a4116",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c297"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/297",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c298",
-          "@type": "sc:Canvas",
-          "label": "294",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/da8b6c32-fa73-4240-b148-eaebaa41e7cd/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/da8b6c32-fa73-4240-b148-eaebaa41e7cd",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=298",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/da8b6c32-fa73-4240-b148-eaebaa41e7cd",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/da8b6c32-fa73-4240-b148-eaebaa41e7cd/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/da8b6c32-fa73-4240-b148-eaebaa41e7cd",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c298"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/298",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c299",
-          "@type": "sc:Canvas",
-          "label": "295",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/47518576-fe0d-4a6b-a240-0e87f4434bfd/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/47518576-fe0d-4a6b-a240-0e87f4434bfd",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=299",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/47518576-fe0d-4a6b-a240-0e87f4434bfd",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/47518576-fe0d-4a6b-a240-0e87f4434bfd/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/47518576-fe0d-4a6b-a240-0e87f4434bfd",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c299"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/299",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c300",
-          "@type": "sc:Canvas",
-          "label": "296",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/35bec62a-b36e-4390-84c6-30cb80d9eb8e/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/35bec62a-b36e-4390-84c6-30cb80d9eb8e",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=300",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/35bec62a-b36e-4390-84c6-30cb80d9eb8e",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/35bec62a-b36e-4390-84c6-30cb80d9eb8e/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/35bec62a-b36e-4390-84c6-30cb80d9eb8e",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c300"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/300",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c301",
-          "@type": "sc:Canvas",
-          "label": "297",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/8358ef81-c905-4af8-9405-f7b367b301c2/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/8358ef81-c905-4af8-9405-f7b367b301c2",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=301",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/8358ef81-c905-4af8-9405-f7b367b301c2",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/8358ef81-c905-4af8-9405-f7b367b301c2/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/8358ef81-c905-4af8-9405-f7b367b301c2",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c301"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/301",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c302",
-          "@type": "sc:Canvas",
-          "label": "298",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/5bc13831-9274-4d05-a4c3-1f6700a2f470/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/5bc13831-9274-4d05-a4c3-1f6700a2f470",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=302",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/5bc13831-9274-4d05-a4c3-1f6700a2f470",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/5bc13831-9274-4d05-a4c3-1f6700a2f470/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/5bc13831-9274-4d05-a4c3-1f6700a2f470",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c302"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/302",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c303",
-          "@type": "sc:Canvas",
-          "label": "299",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/220e788e-73b6-4e12-9930-112aaf488fe2/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/220e788e-73b6-4e12-9930-112aaf488fe2",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=303",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/220e788e-73b6-4e12-9930-112aaf488fe2",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/220e788e-73b6-4e12-9930-112aaf488fe2/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/220e788e-73b6-4e12-9930-112aaf488fe2",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c303"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/303",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c304",
-          "@type": "sc:Canvas",
-          "label": "300",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/1596f999-724c-4203-a2eb-4fcf589b215c/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/1596f999-724c-4203-a2eb-4fcf589b215c",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=304",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/1596f999-724c-4203-a2eb-4fcf589b215c",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/1596f999-724c-4203-a2eb-4fcf589b215c/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/1596f999-724c-4203-a2eb-4fcf589b215c",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c304"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/304",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c305",
-          "@type": "sc:Canvas",
-          "label": "301",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/31dba2d7-5b49-4bee-b062-28f30d52a13c/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/31dba2d7-5b49-4bee-b062-28f30d52a13c",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=305",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/31dba2d7-5b49-4bee-b062-28f30d52a13c",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/31dba2d7-5b49-4bee-b062-28f30d52a13c/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/31dba2d7-5b49-4bee-b062-28f30d52a13c",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c305"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/305",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c306",
-          "@type": "sc:Canvas",
-          "label": "302",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/4b44d880-13b9-404f-be5d-ea6c9a6e373e/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/4b44d880-13b9-404f-be5d-ea6c9a6e373e",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=306",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/4b44d880-13b9-404f-be5d-ea6c9a6e373e",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/4b44d880-13b9-404f-be5d-ea6c9a6e373e/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/4b44d880-13b9-404f-be5d-ea6c9a6e373e",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c306"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/306",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c307",
-          "@type": "sc:Canvas",
-          "label": "303",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/b1cea6e4-7b1d-49bb-8b0d-6486756a9736/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/b1cea6e4-7b1d-49bb-8b0d-6486756a9736",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=307",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/b1cea6e4-7b1d-49bb-8b0d-6486756a9736",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/b1cea6e4-7b1d-49bb-8b0d-6486756a9736/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/b1cea6e4-7b1d-49bb-8b0d-6486756a9736",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c307"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/307",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c308",
-          "@type": "sc:Canvas",
-          "label": "304",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/b75e43b8-8c20-46fc-8291-baf6e0396c06/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/b75e43b8-8c20-46fc-8291-baf6e0396c06",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=308",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/b75e43b8-8c20-46fc-8291-baf6e0396c06",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/b75e43b8-8c20-46fc-8291-baf6e0396c06/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/b75e43b8-8c20-46fc-8291-baf6e0396c06",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c308"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/308",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c309",
-          "@type": "sc:Canvas",
-          "label": "305",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/5ed435cd-1d76-4883-b97a-2b622c2dd0e1/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/5ed435cd-1d76-4883-b97a-2b622c2dd0e1",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=309",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/5ed435cd-1d76-4883-b97a-2b622c2dd0e1",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/5ed435cd-1d76-4883-b97a-2b622c2dd0e1/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/5ed435cd-1d76-4883-b97a-2b622c2dd0e1",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c309"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/309",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c310",
-          "@type": "sc:Canvas",
-          "label": "306",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/e74d6ba1-d030-4949-9398-f9fe70791fc1/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/e74d6ba1-d030-4949-9398-f9fe70791fc1",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=310",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/e74d6ba1-d030-4949-9398-f9fe70791fc1",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/e74d6ba1-d030-4949-9398-f9fe70791fc1/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/e74d6ba1-d030-4949-9398-f9fe70791fc1",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c310"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/310",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c311",
-          "@type": "sc:Canvas",
-          "label": "307",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/fb89d260-3c48-4fbd-8423-8465ebdef327/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/fb89d260-3c48-4fbd-8423-8465ebdef327",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=311",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/fb89d260-3c48-4fbd-8423-8465ebdef327",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/fb89d260-3c48-4fbd-8423-8465ebdef327/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/fb89d260-3c48-4fbd-8423-8465ebdef327",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c311"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/311",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c312",
-          "@type": "sc:Canvas",
-          "label": "308",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/f0012e61-5a4b-4f27-8bd9-da2ab8cfaa67/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/f0012e61-5a4b-4f27-8bd9-da2ab8cfaa67",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=312",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/f0012e61-5a4b-4f27-8bd9-da2ab8cfaa67",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/f0012e61-5a4b-4f27-8bd9-da2ab8cfaa67/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/f0012e61-5a4b-4f27-8bd9-da2ab8cfaa67",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c312"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/312",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c313",
-          "@type": "sc:Canvas",
-          "label": "309",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/f2e67de3-f229-4354-9fb5-f28343cbc0cf/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/f2e67de3-f229-4354-9fb5-f28343cbc0cf",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=313",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/f2e67de3-f229-4354-9fb5-f28343cbc0cf",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/f2e67de3-f229-4354-9fb5-f28343cbc0cf/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/f2e67de3-f229-4354-9fb5-f28343cbc0cf",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c313"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/313",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c314",
-          "@type": "sc:Canvas",
-          "label": "310",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/a6a05105-7932-4474-b035-e4f6e6311f48/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/a6a05105-7932-4474-b035-e4f6e6311f48",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=314",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/a6a05105-7932-4474-b035-e4f6e6311f48",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/a6a05105-7932-4474-b035-e4f6e6311f48/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/a6a05105-7932-4474-b035-e4f6e6311f48",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c314"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/314",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c315",
-          "@type": "sc:Canvas",
-          "label": "311",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/61dc64ad-c9b7-4984-8584-492225ddd7ab/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/61dc64ad-c9b7-4984-8584-492225ddd7ab",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=315",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/61dc64ad-c9b7-4984-8584-492225ddd7ab",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/61dc64ad-c9b7-4984-8584-492225ddd7ab/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/61dc64ad-c9b7-4984-8584-492225ddd7ab",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c315"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/315",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c316",
-          "@type": "sc:Canvas",
-          "label": "312",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/bdd70d25-0519-4c5c-9498-54dde197abc6/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/bdd70d25-0519-4c5c-9498-54dde197abc6",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=316",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/bdd70d25-0519-4c5c-9498-54dde197abc6",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/bdd70d25-0519-4c5c-9498-54dde197abc6/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/bdd70d25-0519-4c5c-9498-54dde197abc6",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c316"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/316",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c317",
-          "@type": "sc:Canvas",
-          "label": "313",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/5d9bbb64-bc7e-4940-8a58-e4e8e97807bb/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/5d9bbb64-bc7e-4940-8a58-e4e8e97807bb",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=317",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/5d9bbb64-bc7e-4940-8a58-e4e8e97807bb",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/5d9bbb64-bc7e-4940-8a58-e4e8e97807bb/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/5d9bbb64-bc7e-4940-8a58-e4e8e97807bb",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c317"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/317",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c318",
-          "@type": "sc:Canvas",
-          "label": "314",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/21d1fb72-1e1d-4f10-a603-a4c5385b292e/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/21d1fb72-1e1d-4f10-a603-a4c5385b292e",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=318",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/21d1fb72-1e1d-4f10-a603-a4c5385b292e",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/21d1fb72-1e1d-4f10-a603-a4c5385b292e/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/21d1fb72-1e1d-4f10-a603-a4c5385b292e",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c318"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/318",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c319",
-          "@type": "sc:Canvas",
-          "label": "315",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/3889400f-ade1-48bd-891f-b3d71f2f120d/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/3889400f-ade1-48bd-891f-b3d71f2f120d",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=319",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/3889400f-ade1-48bd-891f-b3d71f2f120d",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/3889400f-ade1-48bd-891f-b3d71f2f120d/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/3889400f-ade1-48bd-891f-b3d71f2f120d",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c319"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/319",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c320",
-          "@type": "sc:Canvas",
-          "label": "316",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/feb872fb-bcf6-4cc2-ab5d-c4642355b7f5/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/feb872fb-bcf6-4cc2-ab5d-c4642355b7f5",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=320",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/feb872fb-bcf6-4cc2-ab5d-c4642355b7f5",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/feb872fb-bcf6-4cc2-ab5d-c4642355b7f5/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/feb872fb-bcf6-4cc2-ab5d-c4642355b7f5",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c320"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/320",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c321",
-          "@type": "sc:Canvas",
-          "label": "317",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/48d773db-243a-4472-8544-eeb9c2cd0d86/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/48d773db-243a-4472-8544-eeb9c2cd0d86",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=321",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/48d773db-243a-4472-8544-eeb9c2cd0d86",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/48d773db-243a-4472-8544-eeb9c2cd0d86/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/48d773db-243a-4472-8544-eeb9c2cd0d86",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c321"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/321",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c322",
-          "@type": "sc:Canvas",
-          "label": " - ",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/387f82c4-37d1-4870-b4bb-d528eaec9c78/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/387f82c4-37d1-4870-b4bb-d528eaec9c78",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=322",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/387f82c4-37d1-4870-b4bb-d528eaec9c78",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/387f82c4-37d1-4870-b4bb-d528eaec9c78/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/387f82c4-37d1-4870-b4bb-d528eaec9c78",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c322"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/322",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c323",
-          "@type": "sc:Canvas",
-          "label": " - ",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/6c00a4fb-f757-4a35-9fcc-3dfe4647f68f/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/6c00a4fb-f757-4a35-9fcc-3dfe4647f68f",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=323",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/6c00a4fb-f757-4a35-9fcc-3dfe4647f68f",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/6c00a4fb-f757-4a35-9fcc-3dfe4647f68f/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/6c00a4fb-f757-4a35-9fcc-3dfe4647f68f",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c323"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/323",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c324",
-          "@type": "sc:Canvas",
-          "label": " - ",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/6bc5f9b7-27b2-431d-84d3-22b408af82c6/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/6bc5f9b7-27b2-431d-84d3-22b408af82c6",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=324",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/6bc5f9b7-27b2-431d-84d3-22b408af82c6",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/6bc5f9b7-27b2-431d-84d3-22b408af82c6/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/6bc5f9b7-27b2-431d-84d3-22b408af82c6",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c324"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/324",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c325",
-          "@type": "sc:Canvas",
-          "label": " - ",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/ed76a10b-bffd-450d-b7ea-cee8a38bb3c2/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/ed76a10b-bffd-450d-b7ea-cee8a38bb3c2",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 629,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 246,
-                  "height": 400
-                },
-                {
-                  "width": 629,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=325",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3188,
-          "width": 1959,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/ed76a10b-bffd-450d-b7ea-cee8a38bb3c2",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/ed76a10b-bffd-450d-b7ea-cee8a38bb3c2/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 629,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/ed76a10b-bffd-450d-b7ea-cee8a38bb3c2",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c325"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/325",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c326",
-          "@type": "sc:Canvas",
-          "label": " - ",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/54ba00a3-6161-4df3-8e95-636c158e9dac/full/61,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/54ba00a3-6161-4df3-8e95-636c158e9dac",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 628,
-              "sizes": [
-                {
-                  "width": 61,
-                  "height": 100
-                },
-                {
-                  "width": 123,
-                  "height": 200
-                },
-                {
-                  "width": 245,
-                  "height": 400
-                },
-                {
-                  "width": 628,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=326",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3189,
-          "width": 1957,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/54ba00a3-6161-4df3-8e95-636c158e9dac",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/54ba00a3-6161-4df3-8e95-636c158e9dac/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 628,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/54ba00a3-6161-4df3-8e95-636c158e9dac",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c326"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/326",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c327",
-          "@type": "sc:Canvas",
-          "label": " - ",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/5cb96489-a8e9-41b3-99d8-da5a945e1a0a/full/65,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/5cb96489-a8e9-41b3-99d8-da5a945e1a0a",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 669,
-              "sizes": [
-                {
-                  "width": 65,
-                  "height": 100
-                },
-                {
-                  "width": 131,
-                  "height": 200
-                },
-                {
-                  "width": 261,
-                  "height": 400
-                },
-                {
-                  "width": 669,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=327",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 3206,
-          "width": 2093,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/5cb96489-a8e9-41b3-99d8-da5a945e1a0a",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/5cb96489-a8e9-41b3-99d8-da5a945e1a0a/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 669,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/5cb96489-a8e9-41b3-99d8-da5a945e1a0a",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c327"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/327",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        },
-        {
-          "@id": "http://wellcomelibrary.org/iiif/b18035978/canvas/c1",
-          "@type": "sc:Canvas",
-          "label": " - ",
-          "thumbnail": {
-            "@id": "https://dlcs.io/thumbs/wellcome/1/bc556d06-16f6-4525-b38c-e7203a9188c9/full/68,100/0/default.jpg",
-            "@type": "dctypes:Image",
-            "service": {
-              "@context": "http://iiif.io/api/image/2/context.json",
-              "@id": "https://dlcs.io/thumbs/wellcome/1/bc556d06-16f6-4525-b38c-e7203a9188c9",
-              "protocol": "http://iiif.io/api/image",
-              "height": 1024,
-              "width": 695,
-              "sizes": [
-                {
-                  "width": 68,
-                  "height": 100
-                },
-                {
-                  "width": 136,
-                  "height": 200
-                },
-                {
-                  "width": 272,
-                  "height": 400
-                },
-                {
-                  "width": 695,
-                  "height": 1024
-                }
-              ],
-              "profile": [
-                "http://iiif.io/api/image/2/level0.json"
-              ]
-            }
-          },
-          "seeAlso": {
-            "@id": "http://wellcomelibrary.org/service/alto/b18035978/0?image=1",
-            "format": "text/xml",
-            "profile": "http://www.loc.gov/standards/alto/v3/alto.xsd",
-            "label": "METS-ALTO XML"
-          },
-          "height": 4932,
-          "width": 3348,
-          "images": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/imageanno/bc556d06-16f6-4525-b38c-e7203a9188c9",
-              "@type": "oa:Annotation",
-              "motivation": "sc:painting",
-              "resource": {
-                "@id": "https://dlcs.io/iiif-img/wellcome/1/bc556d06-16f6-4525-b38c-e7203a9188c9/full/!1024,1024/0/default.jpg",
-                "@type": "dctypes:Image",
-                "format": "image/jpeg",
-                "height": 1024,
-                "width": 695,
-                "service": {
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "@id": "https://dlcs.io/iiif-img/wellcome/1/bc556d06-16f6-4525-b38c-e7203a9188c9",
-                  "profile": "http://iiif.io/api/image/2/level1.json"
-                }
-              },
-              "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c1"
-            }
-          ],
-          "otherContent": [
-            {
-              "@id": "http://wellcomelibrary.org/iiif/b18035978/contentAsText/1",
-              "@type": "sc:AnnotationList",
-              "label": "Text of this page"
-            }
-          ]
-        }
-      ]
-    }
-  ],
-  "structures": [
-    {
-      "@id": "http://wellcomelibrary.org/iiif/b18035978/range/r-0",
-      "@type": "sc:Range",
-      "label": "Front Cover",
-      "canvases": [
-        "http://wellcomelibrary.org/iiif/b18035978/canvas/c0"
-      ]
-    },
-    {
-      "@id": "http://wellcomelibrary.org/iiif/b18035978/range/r-2",
-      "@type": "sc:Range",
-      "label": "Title Page",
-      "canvases": [
-        "http://wellcomelibrary.org/iiif/b18035978/canvas/c7"
-      ]
-    },
-    {
-      "@id": "http://wellcomelibrary.org/iiif/b18035978/range/r-3",
-      "@type": "sc:Range",
-      "label": "Table of Contents",
-      "canvases": [
-        "http://wellcomelibrary.org/iiif/b18035978/canvas/c9"
-      ]
-    },
-    {
-      "@id": "http://wellcomelibrary.org/iiif/b18035978/range/r-1",
-      "@type": "sc:Range",
-      "label": "Back Cover",
-      "canvases": [
-        "http://wellcomelibrary.org/iiif/b18035978/canvas/c1"
-      ]
-    }
-  ]
-}
diff --git a/spec/fixtures/searchManifest.noresults.json b/spec/fixtures/searchManifest.noresults.json
deleted file mode 100644
index 656000b74875f793dab149080fd4820bc0369638..0000000000000000000000000000000000000000
--- a/spec/fixtures/searchManifest.noresults.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-  "@context": "http://iiif.io/api/search/0/context.json",
-  "@id": "http://wellcomelibrary.org/annoservices/search/b18035978?q=blah",
-  "@type": "sc:AnnotationList",
-  "within": {
-    "@type": "sc:Layer",
-    "total": 0
-  },
-  "startIndex": 0,
-  "resources": [],
-  "hits": []
-}
diff --git a/spec/fixtures/searchManifest.results.json b/spec/fixtures/searchManifest.results.json
deleted file mode 100644
index 33aae03b6a29287c0f3ceceb1cff3a2296fe8278..0000000000000000000000000000000000000000
--- a/spec/fixtures/searchManifest.results.json
+++ /dev/null
@@ -1,215 +0,0 @@
-{
-  "@context": "http://iiif.io/api/search/0/context.json",
-  "@id": "http://wellcomelibrary.org/annoservices/search/b18035978?q=figures",
-  "@type": "sc:AnnotationList",
-  "within": {
-    "@type": "sc:Layer",
-    "total": 11
-  },
-  "startIndex": 0,
-  "resources": [
-    {
-      "@id": "http://wellcomelibrary.org/iiif/b18035978/annos/searchResults/a25h0r1220,2462,126,44",
-      "@type": "oa:Annotation",
-      "motivation": "sc:painting",
-      "resource": {
-        "@type": "cnt:ContentAsText",
-        "chars": "figures"
-      },
-      "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c25#xywh=1220,2462,126,44"
-    },
-    {
-      "@id": "http://wellcomelibrary.org/iiif/b18035978/annos/searchResults/a26h1r1495,375,150,58",
-      "@type": "oa:Annotation",
-      "motivation": "sc:painting",
-      "resource": {
-        "@type": "cnt:ContentAsText",
-        "chars": "figures"
-      },
-      "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c26#xywh=1495,375,150,58"
-    },
-    {
-      "@id": "http://wellcomelibrary.org/iiif/b18035978/annos/searchResults/a27h2r708,893,145,56",
-      "@type": "oa:Annotation",
-      "motivation": "sc:painting",
-      "resource": {
-        "@type": "cnt:ContentAsText",
-        "chars": "figures"
-      },
-      "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c27#xywh=708,893,145,56"
-    },
-    {
-      "@id": "http://wellcomelibrary.org/iiif/b18035978/annos/searchResults/a29h3r520,370,145,56",
-      "@type": "oa:Annotation",
-      "motivation": "sc:painting",
-      "resource": {
-        "@type": "cnt:ContentAsText",
-        "chars": "figures"
-      },
-      "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c29#xywh=520,370,145,56"
-    },
-    {
-      "@id": "http://wellcomelibrary.org/iiif/b18035978/annos/searchResults/a32h4r1424,1867,148,58",
-      "@type": "oa:Annotation",
-      "motivation": "sc:painting",
-      "resource": {
-        "@type": "cnt:ContentAsText",
-        "chars": "figures"
-      },
-      "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c32#xywh=1424,1867,148,58"
-    },
-    {
-      "@id": "http://wellcomelibrary.org/iiif/b18035978/annos/searchResults/a33h5r316,1061,127,44",
-      "@type": "oa:Annotation",
-      "motivation": "sc:painting",
-      "resource": {
-        "@type": "cnt:ContentAsText",
-        "chars": "figures"
-      },
-      "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c33#xywh=316,1061,127,44"
-    },
-    {
-      "@id": "http://wellcomelibrary.org/iiif/b18035978/annos/searchResults/a48h6r1100,631,160,58",
-      "@type": "oa:Annotation",
-      "motivation": "sc:painting",
-      "resource": {
-        "@type": "cnt:ContentAsText",
-        "chars": "figures,"
-      },
-      "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c48#xywh=1100,631,160,58"
-    },
-    {
-      "@id": "http://wellcomelibrary.org/iiif/b18035978/annos/searchResults/a48h7r1321,2670,128,46",
-      "@type": "oa:Annotation",
-      "motivation": "sc:painting",
-      "resource": {
-        "@type": "cnt:ContentAsText",
-        "chars": "figures"
-      },
-      "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c48#xywh=1321,2670,128,46"
-    },
-    {
-      "@id": "http://wellcomelibrary.org/iiif/b18035978/annos/searchResults/a51h8r512,2025,146,57",
-      "@type": "oa:Annotation",
-      "motivation": "sc:painting",
-      "resource": {
-        "@type": "cnt:ContentAsText",
-        "chars": "figures"
-      },
-      "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c51#xywh=512,2025,146,57"
-    },
-    {
-      "@id": "http://wellcomelibrary.org/iiif/b18035978/annos/searchResults/a55h9r979,383,145,57",
-      "@type": "oa:Annotation",
-      "motivation": "sc:painting",
-      "resource": {
-        "@type": "cnt:ContentAsText",
-        "chars": "figures"
-      },
-      "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c55#xywh=979,383,145,57"
-    },
-    {
-      "@id": "http://wellcomelibrary.org/iiif/b18035978/annos/searchResults/a56h10r1340,2244,128,45",
-      "@type": "oa:Annotation",
-      "motivation": "sc:painting",
-      "resource": {
-        "@type": "cnt:ContentAsText",
-        "chars": "figures"
-      },
-      "on": "http://wellcomelibrary.org/iiif/b18035978/canvas/c56#xywh=1340,2244,128,45"
-    }
-  ],
-  "hits": [
-    {
-      "@type": "search:Hit",
-      "annotations": [
-        "http://wellcomelibrary.org/iiif/b18035978/annos/searchResults/a25h0r1220,2462,126,44"
-      ],
-      "match": "figures",
-      "before": "anted or unplanned.f *Griselda Rowntree to the International Congress on Mental Health, London, 1968, reported in The Times, August 13th, 1968. Other ",
-      "after": " given here come from the Family Plaruiing Association, or the Registrar General's Statistical Reviews. f E.g. A. C. Fraser and P. C. Watson, 'Family "
-    },
-    {
-      "@type": "search:Hit",
-      "annotations": [
-        "http://wellcomelibrary.org/iiif/b18035978/annos/searchResults/a26h1r1495,375,150,58"
-      ],
-      "match": "figures",
-      "before": " just cited found that less than 20 per cent of women having babies in two city hospitals had ever received any expert contraceptive advice. National ",
-      "after": " confirm that this must be a general rule. The Family Planning Association estimate that of the ten million British women of child-bearing age, of who"
-    },
-    {
-      "@type": "search:Hit",
-      "annotations": [
-        "http://wellcomelibrary.org/iiif/b18035978/annos/searchResults/a27h2r708,893,145,56"
-      ],
-      "match": "figures",
-      "before": "to these overall patterns of 'open' birth-control, with their stench of failure and sexual frustration, there are the 'closed' methods enjoyed—as the ",
-      "after": " hint—by the few. These are the effective, sexually silent methods: medical abortion, sterihzation, LU.D.s, the diaphragm and oral contraceptives. I c"
-    },
-    {
-      "@type": "search:Hit",
-      "annotations": [
-        "http://wellcomelibrary.org/iiif/b18035978/annos/searchResults/a29h3r520,370,145,56"
-      ],
-      "match": "figures",
-      "before": "e (Longmans, London, 1965). 24 BIRTH-CONTROL cent), dislike of the results (21 per cent), or 'don't care' (20 per cent) as their reason. Surely, what ",
-      "after": " like these demand is that those who wish to reduce sexual 'immorality' should ask themselves just what they mean by it. Effective contraception has b"
-    },
-    {
-      "@type": "search:Hit",
-      "annotations": [
-        "http://wellcomelibrary.org/iiif/b18035978/annos/searchResults/a32h4r1424,1867,148,58"
-      ],
-      "match": "figures",
-      "before": "traceptive known—because it is the most effective method of preventing pregnancy and therefore the risks of childbirth. Look at the rather surprising ",
-      "after": " shown in Table 1.2, based on the best available data for the failure-rate and death risks of various contraceptives. Dr Malcolm Potts, Medical Secret"
-    },
-    {
-      "@type": "search:Hit",
-      "annotations": [
-        "http://wellcomelibrary.org/iiif/b18035978/annos/searchResults/a33h5r316,1061,127,44"
-      ],
-      "match": "figures",
-      "before": "000,000 women aged 20-34 use the method for a year: this is what happens After D. M. Potts, I.P.P.F. Medical Bulletin (October 1968). Note that these ",
-      "after": " are for Britain, with a low maternal mortality rate. Where death in childbirth is more likely the pill is relatively much safer, and unprotected sex "
-    },
-    {
-      "@type": "search:Hit",
-      "annotations": [
-        "http://wellcomelibrary.org/iiif/b18035978/annos/searchResults/a48h6r1100,631,160,58",
-        "http://wellcomelibrary.org/iiif/b18035978/annos/searchResults/a48h7r1321,2670,128,46"
-      ],
-      "match": "figures, figures",
-      "before": "ortions as births; and in other Soviet bloc countries abortion rates vary between 250 to 600 per 1,000 live births. These seem like staggeringly high ",
-      "after": " such as that 12 per cent of urban women admit to at least one abortion. 44 BIRTH-CONTROL Uppsala, Sweden, tested such a drug—called F6103 —on fifty y"
-    },
-    {
-      "@type": "search:Hit",
-      "annotations": [
-        "http://wellcomelibrary.org/iiif/b18035978/annos/searchResults/a51h8r512,2025,146,57"
-      ],
-      "match": "figures",
-      "before": "y multiply forty times and the area they cover may increase a hundredfold to equal one-fifth of the entire land surface of the planet. Every year the ",
-      "after": " tell the same seemingly relentless story: while the world's ability to produce food and other essentials slowly rises, the amount each person gets sl"
-    },
-    {
-      "@type": "search:Hit",
-      "annotations": [
-        "http://wellcomelibrary.org/iiif/b18035978/annos/searchResults/a55h9r979,383,145,57"
-      ],
-      "match": "figures",
-      "before": "te effects. Most predictions, therefore, are based on constantly revised estimates of what has been happening, and can give only hazy upper and lower ",
-      "after": " for future population size, not which figure is most likely. Some of these estimates are pure guesswork. For example, the official population forecas"
-    },
-    {
-      "@type": "search:Hit",
-      "annotations": [
-        "http://wellcomelibrary.org/iiif/b18035978/annos/searchResults/a56h10r1340,2244,128,45"
-      ],
-      "match": "figures",
-      "before": " was due to imder- estimates by couples who thought they were more subfertile than they actually were. When these are excluded the 'expect' and 'had' ",
-      "after": " were -91 and -92 respectively. If short-tenn predictions can be so accurate, hope for long-term forecasts rises. In fact the G.A.F. projections of Am"
-    }
-  ]
-}
diff --git a/spec/fixtures/simpleStructuresFixtureV1.json b/spec/fixtures/simpleStructuresFixtureV1.json
deleted file mode 100644
index 1d552119b2a845fe5369cc9cfa51761fa9b7d83d..0000000000000000000000000000000000000000
--- a/spec/fixtures/simpleStructuresFixtureV1.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{"structures": [
-    {
-      "@id": "http://www.example.org/iiif/book1/range/r1.json",
-      "@type": "sc:Range",
-      "label": "Introduction",
-      "canvases": [
-        "http://www.example.org/iiif/book1/canvas/p1.json"
-      ]
-    },
-    {
-      "@id": "http://www.example.org/iiif/book1/range/r2.json",
-      "@type": "sc:Range",
-      "label": "Part 1",
-      "within": "http://www.example.org/iiif/book1/range/r1.json",
-      "canvases": [
-        "http://www.example.org/iiif/book1/canvas/p2.json",
-        "http://www.example.org/iiif/book1/canvas/p3.json#xywh=0,0,750,300"
-      ]
-    }
-  ]
-}
diff --git a/spec/fixtures/simpleStructuresFixtureV2.json b/spec/fixtures/simpleStructuresFixtureV2.json
deleted file mode 100644
index ac963677c93f7694ac46eae0d88149552b5fbf01..0000000000000000000000000000000000000000
--- a/spec/fixtures/simpleStructuresFixtureV2.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{"structures": [
-    {
-      "@id": "http://www.example.org/iiif/book1/range/r1.json",
-        "@type":"sc:Range",
-        "label":"Introduction",
-        "ranges": [
-          "http://www.example.org/iiif/book1/range/r2.json"
-        ],
-        "canvases": [
-        	"http://www.example.org/iiif/book1/canvas/p1.json"
-        ]
-    },
-    {
-      "@id": "http://www.example.org/iiif/book1/range/r2.json",
-        "@type":"sc:Range",
-        "label":"Part 1",
-        "canvases": [
-          "http://www.example.org/iiif/book1/canvas/p2.json",
-          "http://www.example.org/iiif/book1/canvas/p3.json#xywh=0,0,750,300"
-        ]
-    }
-]}
diff --git a/spec/fixtures/simpleStructuresFixtureV21.json b/spec/fixtures/simpleStructuresFixtureV21.json
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/spec/javascripts/fixtures/mirador.html b/spec/javascripts/fixtures/mirador.html
deleted file mode 100644
index cecdcf6c594a8c2846ecf7b1495bea6e2d8a962b..0000000000000000000000000000000000000000
--- a/spec/javascripts/fixtures/mirador.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<div id="viewer"></div>
-
-<script type="text/javascript">
-  $(function() {
-    Mirador({
-      id: 'viewer',
-      data: [{
-        "manifestUri": "spec/data/Walters/bd183mz0176/manifest.json",
-        "location": "Stanford University",
-        "title": "MS 5",
-        "widgets": []
-      }]
-    });
-  });
-</script
-
diff --git a/spec/manifests/collection.test.js b/spec/manifests/collection.test.js
deleted file mode 100644
index a548300f38e86b923e45dfa642ac5bfddc81522a..0000000000000000000000000000000000000000
--- a/spec/manifests/collection.test.js
+++ /dev/null
@@ -1,540 +0,0 @@
-describe('Collection', function() {
-  beforeEach(function() {
-    jasmine.getJSONFixtures().fixturesPath = 'spec/fixtures';
-    this.collectionData = getJSONFixture('iiif-universe.json');
-    this.server = sinon.fakeServer.create();
-  });
-
-  afterEach(function() {
-    this.server.restore();
-  });
-
-  describe('init', function () {
-    it('should have expected data constructed from collection content', function(done) {
-      var content = { "@context": "http://www.shared-canvas.org/ns/context.json",
-                      "@type": "sc:Collection",
-                      "@id": "http://collections.example.com/iiif/EX/collection",
-                      "label": "Book 1",
-                      "manifests": []
-                    };
-      var collectionInstance = new Mirador.Collection(null, null, content);
-      setTimeout(function () { 
-        expect(collectionInstance.jsonLd.label).toEqual('Book 1');
-        done(); 
-      }, 0);
-    });
-    it('should have expected data constructed from collection URI', function(done) {
-      var collectionUri = 'path/to/collection.json';
-      var data = this.collectionData;
-
-      this.server.respondWith("GET", "path/to/collection.json",
-                              [ 200,
-                                { "Content-Type": "application/json" },
-                                JSON.stringify(data)
-                              ]
-                             );
-      var collectionInstance = new Mirador.Collection(collectionUri);
-      this.server.respond();
-
-      expect(collectionInstance.jsonLd).toEqual(data);
-      done();
-    });
-  });
-  
-  describe('getVersion for collection', function() {
-    it('should return the correct values for different versions of the collection', function() {
-      var content = { "@context": "http://www.shared-canvas.org/ns/context.json",
-                      "@type": "sc:Collection",
-                      "@id": "http://collections.example.com/iiif/EX/collection",
-                      "label": "Book 1",
-                      "manifests": []
-                    };
-      var collectionInstance = new Mirador.Collection(null, null, content);
-      expect(collectionInstance.getVersion()).toEqual('1');
-
-      content = { "@context": "http://iiif.io/api/presentation/1/context.json",
-                  "@type": "sc:Collection",
-                  "@id": "http://collections.example.com/iiif/EX/collection",
-                  "label": "Book 1",
-                  "manifests": []
-                };
-      collectionInstance = new Mirador.Collection(null, null, content);
-      expect(collectionInstance.getVersion()).toEqual('1');
-      content = { "@context": "http://iiif.io/api/presentation/2/context.json",
-                  "@type": "sc:Collection",
-                  "@id": "http://collections.example.com/iiif/EX/collection",
-                  "label": "Book 1",
-                  "manifests": []
-                };
-      collectionInstance = new Mirador.Collection(null, null, content);
-      expect(collectionInstance.getVersion()).toEqual('2');
-
-      content = { "@context": "http://iiif.io/api/presentation/2.1/context.json",
-                  "@type": "sc:Collection",
-                  "@id": "http://collections.example.com/iiif/EX/collection",
-                  "label": "Book 1",
-                  "manifests": []
-                };
-      collectionInstance = new Mirador.Collection(null, null, content);
-      expect(collectionInstance.getVersion()).toEqual('2.1');
-    });
-  });
-  
-  describe('getManifestUris for collection', function() {
-    it('should return manifest URIs for a collection with a \"manifests\" key', function() {
-      var content = {
-        "@context": "http://iiif.io/api/presentation/2/context.json",
-        "@id": "http://example.org/iiif/collection/top",
-        "@type": "sc:Collection",
-        "label": "Top Level Collection for Example Organization",
-        "collections": [
-          {
-            "@id": "http://example.org/iiif/collection/part2",
-            "@type": "sc:Collection",
-            "label": "Sub Collection 2"
-          }
-        ],
-        "manifests": [
-          {
-            "@id": "http://example.org/iiif/book1/manifest",
-            "@type": "sc:Manifest",
-            "label": "Book 1"
-          },
-          {
-            "@id": "http://example.org/iiif/book2/manifest",
-            "@type": "sc:Manifest",
-            "label": "Book 2"
-          }
-        ],
-      };
-      var collectionInstance = new Mirador.Collection(null, null, content);
-      expect(collectionInstance.getManifestUris()).toEqual([
-        "http://example.org/iiif/book1/manifest", 
-        "http://example.org/iiif/book2/manifest"
-      ]);
-    });
-    it('should return manifest URIs for a collection with a \"members\" key', function() {
-      var content = {
-        "@context": "http://iiif.io/api/presentation/2/context.json",
-        "@id": "http://example.org/iiif/collection/top",
-        "@type": "sc:Collection",
-        "label": "Top Level Collection for Example Organization",
-        "members": [
-          {
-            "@id": "http://example.org/iiif/book1/manifest",
-            "@type": "sc:Manifest",
-            "label": "Book 1"
-          },
-          {
-            "@id": "http://example.org/iiif/collection/part2",
-            "@type": "sc:Collection",
-            "label": "Sub Collection 2"
-          },
-          {
-            "@id": "http://example.org/iiif/book2/manifest",
-            "@type": "sc:Manifest",
-            "label": "Book 2"
-          }
-        ],
-      };
-      var collectionInstance = new Mirador.Collection(null, null, content);
-      expect(collectionInstance.getManifestUris()).toEqual([
-        "http://example.org/iiif/book1/manifest", 
-        "http://example.org/iiif/book2/manifest"
-      ]);
-    });
-    it('should return empty array for a collection without either key', function() {
-      var content = {
-        "@context": "http://iiif.io/api/presentation/2/context.json",
-        "@id": "http://example.org/iiif/collection/top",
-        "@type": "sc:Collection",
-        "label": "Top Level Collection for Example Organization",
-        "collections": [
-          {
-            "@id": "http://example.org/iiif/collection/part2",
-            "@type": "sc:Collection",
-            "label": "Sub Collection 2"
-          }
-        ]
-      };
-      var collectionInstance = new Mirador.Collection(null, null, content);
-      expect(collectionInstance.getManifestUris()).toEqual([]);
-    });
-    it('should return empty array for a collection with a \"members\" key but no manifests in it', function() {
-      var content = {
-        "@context": "http://iiif.io/api/presentation/2/context.json",
-        "@id": "http://example.org/iiif/collection/top",
-        "@type": "sc:Collection",
-        "label": "Top Level Collection for Example Organization",
-        "members": [
-          {
-            "@id": "http://example.org/iiif/collection/part1",
-            "@type": "sc:Collection",
-            "label": "Sub Collection 1"
-          },
-          {
-            "@id": "http://example.org/iiif/collection/part2",
-            "@type": "sc:Collection",
-            "label": "Sub Collection 2"
-          }
-        ]
-      };
-      var collectionInstance = new Mirador.Collection(null, null, content);
-      expect(collectionInstance.getManifestUris()).toEqual([]);
-    });
-  });
-  
-  describe('getManifestBlocks for collection', function() {
-    it('should return manifest blocks for a collection with a \"manifests\" key', function() {
-      var content = {
-        "@context": "http://iiif.io/api/presentation/2/context.json",
-        "@id": "http://example.org/iiif/collection/top",
-        "@type": "sc:Collection",
-        "label": "Top Level Collection for Example Organization",
-        "collections": [
-          {
-            "@id": "http://example.org/iiif/collection/part2",
-            "@type": "sc:Collection",
-            "label": "Sub Collection 2"
-          }
-        ],
-        "manifests": [
-          {
-            "@id": "http://example.org/iiif/book1/manifest",
-            "@type": "sc:Manifest",
-            "label": "Book 1"
-          },
-          {
-            "@id": "http://example.org/iiif/book2/manifest",
-            "@type": "sc:Manifest",
-            "label": "Book 2"
-          }
-        ],
-      };
-      var collectionInstance = new Mirador.Collection(null, null, content);
-      expect(collectionInstance.getManifestBlocks()).toEqual([
-        {
-          "@id": "http://example.org/iiif/book1/manifest",
-          "@type": "sc:Manifest",
-          "label": "Book 1"
-        },
-        {
-          "@id": "http://example.org/iiif/book2/manifest",
-          "@type": "sc:Manifest",
-          "label": "Book 2"
-        }
-      ]);
-    });
-    it('should return manifest blocks for a collection with a \"members\" key', function() {
-      var content = {
-        "@context": "http://iiif.io/api/presentation/2/context.json",
-        "@id": "http://example.org/iiif/collection/top",
-        "@type": "sc:Collection",
-        "label": "Top Level Collection for Example Organization",
-        "members": [
-          {
-            "@id": "http://example.org/iiif/book1/manifest",
-            "@type": "sc:Manifest",
-            "label": "Book 1"
-          },
-          {
-            "@id": "http://example.org/iiif/collection/part2",
-            "@type": "sc:Collection",
-            "label": "Sub Collection 2"
-          },
-          {
-            "@id": "http://example.org/iiif/book2/manifest",
-            "@type": "sc:Manifest",
-            "label": "Book 2"
-          }
-        ],
-      };
-      var collectionInstance = new Mirador.Collection(null, null, content);
-      expect(collectionInstance.getManifestBlocks()).toEqual([
-        {
-          "@id": "http://example.org/iiif/book1/manifest",
-          "@type": "sc:Manifest",
-          "label": "Book 1"
-        },
-        {
-          "@id": "http://example.org/iiif/book2/manifest",
-          "@type": "sc:Manifest",
-          "label": "Book 2"
-        }
-      ]);
-    });
-    it('should return empty array for a collection without either key', function() {
-      var content = {
-        "@context": "http://iiif.io/api/presentation/2/context.json",
-        "@id": "http://example.org/iiif/collection/top",
-        "@type": "sc:Collection",
-        "label": "Top Level Collection for Example Organization",
-        "collections": [
-          {
-            "@id": "http://example.org/iiif/collection/part2",
-            "@type": "sc:Collection",
-            "label": "Sub Collection 2"
-          }
-        ]
-      };
-      var collectionInstance = new Mirador.Collection(null, null, content);
-      expect(collectionInstance.getManifestBlocks()).toEqual([]);
-    });
-    it('should return empty array for a collection with a \"members\" key but no manifests in it', function() {
-      var content = {
-        "@context": "http://iiif.io/api/presentation/2/context.json",
-        "@id": "http://example.org/iiif/collection/top",
-        "@type": "sc:Collection",
-        "label": "Top Level Collection for Example Organization",
-        "members": [
-          {
-            "@id": "http://example.org/iiif/collection/part1",
-            "@type": "sc:Collection",
-            "label": "Sub Collection 1"
-          },
-          {
-            "@id": "http://example.org/iiif/collection/part2",
-            "@type": "sc:Collection",
-            "label": "Sub Collection 2"
-          }
-        ]
-      };
-      var collectionInstance = new Mirador.Collection(null, null, content);
-      expect(collectionInstance.getManifestBlocks()).toEqual([]);
-    });
-  });
-  
-  describe('getCollectionUris for collection', function() {
-    it('should return collection URIs for a collection with a \"collections\" key', function() {
-      var content = {
-        "@context": "http://iiif.io/api/presentation/2/context.json",
-        "@id": "http://example.org/iiif/collection/top",
-        "@type": "sc:Collection",
-        "label": "Top Level Collection for Example Organization",
-        "manifests": [
-          {
-            "@id": "http://example.org/iiif/book1/manifest",
-            "@type": "sc:Manifest",
-            "label": "Book 1"
-          }
-        ],
-        "collections": [
-          {
-            "@id": "http://example.org/iiif/collection/part1",
-            "@type": "sc:Collection",
-            "label": "Sub Collection 1"
-          },
-          {
-            "@id": "http://example.org/iiif/collection/part2",
-            "@type": "sc:Collection",
-            "label": "Sub Collection 2"
-          }
-        ]
-      };
-      var collectionInstance = new Mirador.Collection(null, null, content);
-      expect(collectionInstance.getCollectionUris()).toEqual([
-        "http://example.org/iiif/collection/part1", 
-        "http://example.org/iiif/collection/part2"
-      ]);
-    });
-    it('should return collection URIs for a collection with a \"members\" key', function() {
-      var content = {
-        "@context": "http://iiif.io/api/presentation/2/context.json",
-        "@id": "http://example.org/iiif/collection/top",
-        "@type": "sc:Collection",
-        "label": "Top Level Collection for Example Organization",
-        "members": [
-          {
-            "@id": "http://example.org/iiif/collection/part1",
-            "@type": "sc:Collection",
-            "label": "Sub Collection 1"
-          },
-          {
-            "@id": "http://example.org/iiif/book1/manifest",
-            "@type": "sc:Manifest",
-            "label": "Book 1"
-          },
-          {
-            "@id": "http://example.org/iiif/collection/part2",
-            "@type": "sc:Collection",
-            "label": "Sub Collection 2"
-          }
-        ]
-      };
-      var collectionInstance = new Mirador.Collection(null, null, content);
-      expect(collectionInstance.getCollectionUris()).toEqual([
-        "http://example.org/iiif/collection/part1", 
-        "http://example.org/iiif/collection/part2"
-      ]);
-    });
-    it('should return empty array for a collection without either key', function() {
-      var content = {
-        "@context": "http://iiif.io/api/presentation/2/context.json",
-        "@id": "http://example.org/iiif/collection/top",
-        "@type": "sc:Collection",
-        "label": "Top Level Collection for Example Organization",
-        "manifests": [
-          {
-            "@id": "http://example.org/iiif/book1/manifest",
-            "@type": "sc:Manifest",
-            "label": "Book 1"
-          },
-          {
-            "@id": "http://example.org/iiif/book2/manifest",
-            "@type": "sc:Manifest",
-            "label": "Book 2"
-          }
-        ]
-      };
-      var collectionInstance = new Mirador.Collection(null, null, content);
-      expect(collectionInstance.getCollectionUris()).toEqual([]);
-    });
-    it('should return empty array for a collection with a \"members\" key but no manifests in it', function() {
-      var content = {
-        "@context": "http://iiif.io/api/presentation/2/context.json",
-        "@id": "http://example.org/iiif/collection/top",
-        "@type": "sc:Collection",
-        "label": "Top Level Collection for Example Organization",
-        "members": [
-          {
-            "@id": "http://example.org/iiif/book1/manifest",
-            "@type": "sc:Manifest",
-            "label": "Book 1"
-          },
-          {
-            "@id": "http://example.org/iiif/book2/manifest",
-            "@type": "sc:Manifest",
-            "label": "Book 2"
-          }
-        ]
-      };
-      var collectionInstance = new Mirador.Collection(null, null, content);
-      expect(collectionInstance.getCollectionUris()).toEqual([]);
-    });
-  });
-  
-  describe('getCollectionBlocks for collection', function() {
-    it('should return collection URIs for a collection with a \"collections\" key', function() {
-      var content = {
-        "@context": "http://iiif.io/api/presentation/2/context.json",
-        "@id": "http://example.org/iiif/collection/top",
-        "@type": "sc:Collection",
-        "label": "Top Level Collection for Example Organization",
-        "manifests": [
-          {
-            "@id": "http://example.org/iiif/book1/manifest",
-            "@type": "sc:Manifest",
-            "label": "Book 1"
-          }
-        ],
-        "collections": [
-          {
-            "@id": "http://example.org/iiif/collection/part1",
-            "@type": "sc:Collection",
-            "label": "Sub Collection 1"
-          },
-          {
-            "@id": "http://example.org/iiif/collection/part2",
-            "@type": "sc:Collection",
-            "label": "Sub Collection 2"
-          }
-        ]
-      };
-      var collectionInstance = new Mirador.Collection(null, null, content);
-      expect(collectionInstance.getCollectionBlocks()).toEqual([
-        {
-          "@id": "http://example.org/iiif/collection/part1",
-          "@type": "sc:Collection",
-          "label": "Sub Collection 1"
-        },
-        {
-          "@id": "http://example.org/iiif/collection/part2",
-          "@type": "sc:Collection",
-          "label": "Sub Collection 2"
-        }
-      ]);
-    });
-    it('should return collection URIs for a collection with a \"members\" key', function() {
-      var content = {
-        "@context": "http://iiif.io/api/presentation/2/context.json",
-        "@id": "http://example.org/iiif/collection/top",
-        "@type": "sc:Collection",
-        "label": "Top Level Collection for Example Organization",
-        "members": [
-          {
-            "@id": "http://example.org/iiif/collection/part1",
-            "@type": "sc:Collection",
-            "label": "Sub Collection 1"
-          },
-          {
-            "@id": "http://example.org/iiif/book1/manifest",
-            "@type": "sc:Manifest",
-            "label": "Book 1"
-          },
-          {
-            "@id": "http://example.org/iiif/collection/part2",
-            "@type": "sc:Collection",
-            "label": "Sub Collection 2"
-          }
-        ]
-      };
-      var collectionInstance = new Mirador.Collection(null, null, content);
-      expect(collectionInstance.getCollectionBlocks()).toEqual([
-        {
-          "@id": "http://example.org/iiif/collection/part1",
-          "@type": "sc:Collection",
-          "label": "Sub Collection 1"
-        },
-        {
-          "@id": "http://example.org/iiif/collection/part2",
-          "@type": "sc:Collection",
-          "label": "Sub Collection 2"
-        }
-      ]);
-    });
-    it('should return empty array for a collection without either key', function() {
-      var content = {
-        "@context": "http://iiif.io/api/presentation/2/context.json",
-        "@id": "http://example.org/iiif/collection/top",
-        "@type": "sc:Collection",
-        "label": "Top Level Collection for Example Organization",
-        "manifests": [
-          {
-            "@id": "http://example.org/iiif/book1/manifest",
-            "@type": "sc:Manifest",
-            "label": "Book 1"
-          },
-          {
-            "@id": "http://example.org/iiif/book2/manifest",
-            "@type": "sc:Manifest",
-            "label": "Book 2"
-          }
-        ]
-      };
-      var collectionInstance = new Mirador.Collection(null, null, content);
-      expect(collectionInstance.getCollectionBlocks()).toEqual([]);
-    });
-    it('should return empty array for a collection with a \"members\" key but no manifests in it', function() {
-      var content = {
-        "@context": "http://iiif.io/api/presentation/2/context.json",
-        "@id": "http://example.org/iiif/collection/top",
-        "@type": "sc:Collection",
-        "label": "Top Level Collection for Example Organization",
-        "members": [
-          {
-            "@id": "http://example.org/iiif/book1/manifest",
-            "@type": "sc:Manifest",
-            "label": "Book 1"
-          },
-          {
-            "@id": "http://example.org/iiif/book2/manifest",
-            "@type": "sc:Manifest",
-            "label": "Book 2"
-          }
-        ]
-      };
-      var collectionInstance = new Mirador.Collection(null, null, content);
-      expect(collectionInstance.getCollectionBlocks()).toEqual([]);
-    });
-  });
-});
\ No newline at end of file
diff --git a/spec/manifests/manifest.test.js b/spec/manifests/manifest.test.js
deleted file mode 100644
index 9c39ac7590e2c022215cb7d43f7a79458d7991f3..0000000000000000000000000000000000000000
--- a/spec/manifests/manifest.test.js
+++ /dev/null
@@ -1,377 +0,0 @@
-describe('Manifest', function() {
-  beforeEach(function() {
-    this.server = sinon.fakeServer.create();
-  });
-
-  afterEach(function() {
-    this.server.restore();
-  });
-
-  describe('init', function () {
-    it('should have expected data constructed from manifest content', function(done) {
-      var content = { "@context": "http://www.shared-canvas.org/ns/context.json",
-                      "@type": "sc:Manifest",
-                      "@id": "http://manifests.example.com/iiif/EX/manifest",
-                      "label": "Book 1",
-                      "sequences": [{}]
-                    };
-      var manifestInstance = new Mirador.Manifest(null, null, content);
-
-      setTimeout(function () { 
-        expect(manifestInstance.jsonLd.label).toEqual('Book 1');
-        done(); 
-      }, 0);
-    });
-
-    it('should have expected data constructed from info.json', function(done) {
-      var uri = 'http://example.com/iiif/book1/info.json';
-      var data = {
-        height:4737,
-        width: 3152,
-        '@context': 'http://library.stanford.edu/iiif/image-api/1.1/context.json',
-        '@id': 'http://example.com/iiif/image1',
-        formats: ['jpg', 'png'],
-        profile: 'http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level2'
-      };
-      this.server.respondWith('GET', uri,
-                              [ 200,
-                                { 'Content-Type': 'application/json' },
-                                JSON.stringify(data)
-                              ]
-                             );
-      var manifestInstance = new Mirador.Manifest(uri);
-      this.server.respond();
-      
-      var jsonLd = manifestInstance.jsonLd;
-      var canvas = jsonLd.sequences[0].canvases[0];
-      var image = canvas.images[0];
-      
-      // Attributes passed from info.json
-      
-      expect(canvas.height).toEqual(4737);
-      expect(canvas.width).toEqual(3152);
-      expect(image.resource.height).toEqual(4737);
-      expect(image.resource.width).toEqual(3152);
-      expect(image.resource.service['@id']).toEqual(data['@id']);
-      expect(image.resource.service['@context']).toEqual(data['@context']);
-      expect(image.resource.service.profile).toEqual(data.profile);
-
-      // Attributes built by Manifest code.
-      expect(jsonLd['@type']).toEqual('sc:Manifest');
-      done();
-    });
-    
-    it('should have expected data constructed from manifest URI', function(done) {
-      var manifestUri = 'path/to/manifest.json';
-      var data = {manifest : "here"};
-
-      this.server.respondWith("GET", "path/to/manifest.json",
-                              [ 200,
-                                { "Content-Type": "application/json" },
-                                JSON.stringify(data)
-                              ]
-                             );
-      var manifestInstance = new Mirador.Manifest(manifestUri);
-      this.server.respond();
-
-      expect(manifestInstance.jsonLd).toEqual(data);
-      done();
-    });
-
-    describe('getVersion for manifest', function() {
-      it('should return the correct values for different versions of the manifest', function() {
-        var content = { "@context": "http://www.shared-canvas.org/ns/context.json",
-                        "@type": "sc:Manifest",
-                        "@id": "http://manifests.example.com/iiif/EX/manifest",
-                        "label": "Book 1",
-                        "sequences": [{}]
-                      };
-        var manifestInstance = new Mirador.Manifest(null, null, content);
-        expect(manifestInstance.getVersion()).toEqual('1');
-
-        content = { "@context": "http://iiif.io/api/presentation/1/context.json",
-                    "@type": "sc:Manifest",
-                    "@id": "http://manifests.example.com/iiif/EX/manifest",
-                    "label": "Book 1",
-                    "sequences": [{}]
-                  };
-        manifestInstance = new Mirador.Manifest(null, null, content);
-        expect(manifestInstance.getVersion()).toEqual('1');
-        content = { "@context": "http://iiif.io/api/presentation/2/context.json",
-                    "@type": "sc:Manifest",
-                    "@id": "http://manifests.example.com/iiif/EX/manifest",
-                    "label": "Book 1",
-                    "sequences": [{}]
-                  };
-        manifestInstance = new Mirador.Manifest(null, null, content);
-        expect(manifestInstance.getVersion()).toEqual('2');
-
-        content = { "@context": "http://iiif.io/api/presentation/2.1/context.json",
-                    "@type": "sc:Manifest",
-                    "@id": "http://manifests.example.com/iiif/EX/manifest",
-                    "label": "Book 1",
-                    "sequences": [{}]
-                  };
-        manifestInstance = new Mirador.Manifest(null, null, content);
-        expect(manifestInstance.getVersion()).toEqual('2.1');
-      });
-    });
-    describe('getThumbnailForCanvas', function () {
-      
-      it('when canvas.thumbnail is a string', function () {
-        var thumbnailUrl = 'http://www.example.org/iiif/book1/thumbnail/p1.jpg';
-        var canvas = {
-          thumbnail: thumbnailUrl
-        };
-        var manifestInstance = new Mirador.Manifest(null, null, {});
-        var thumbnail = manifestInstance.getThumbnailForCanvas(canvas);
-        expect(thumbnail).toEqual(thumbnailUrl);
-      });
-      
-      it('when canvas.thumbnail is an object without service', function () {
-        var thumbnailUrl = 'http://www.example.org/iiif/book1/thumbnail/p1.jpg';
-        var canvas = {
-          thumbnail: {
-            '@id': thumbnailUrl
-          }
-        };
-        var manifestInstance = new Mirador.Manifest(null, null, {});
-        var thumbnail = manifestInstance.getThumbnailForCanvas(canvas);
-        expect(thumbnail).toEqual(thumbnailUrl);
-      });
-
-
-      it('when canvas.thumbnail has a level 0 service', function () {
-        var thumbnailUrl = 'http://www.example.org/iiif/book1/thumbnail/p1.jpg';
-        var canvas = {
-          thumbnail: {
-            '@id': thumbnailUrl,
-            service: {
-              '@id': 'http://example.org/images/book1-page1',
-              profile: 'http://iiif.io/api/image/2/level0.json'
-            }
-          }
-        };
-        var manifestInstance = new Mirador.Manifest(null, null, {});
-        var thumbnail = manifestInstance.getThumbnailForCanvas(canvas);
-        expect(thumbnail).toEqual(thumbnailUrl);
-      });
-      
-      
-      it('when canvas.thumbnail has a level 1 or level 2 service', function () {
-        var canvas = {
-          thumbnail: {
-            '@id': 'http://example.org/images/book1-page1/full/80,100/0/default.jpg',
-            service: {
-              '@id': 'http://example.org/images/book1-page1',
-              profile: 'http://iiif.io/api/image/2/level1.json'
-            }
-          }
-        };
-        
-        // Version 1
-        canvas.thumbnail.service['@context'] = 'http://iiif.io/api/image/1/context.json';
-        var manifestInstance = new Mirador.Manifest(null, null, {});
-        var thumbnail = manifestInstance.getThumbnailForCanvas(canvas, 128);
-        expect(thumbnail).toEqual('http://example.org/images/book1-page1/full/128,/0/native.jpg');
-        
-        // Version 2
-        canvas.thumbnail.service['@context'] = 'http://iiif.io/api/image/2/context.json';
-        var manifestInstance = new Mirador.Manifest(null, null, {});
-        var thumbnail = manifestInstance.getThumbnailForCanvas(canvas, 126);
-        expect(thumbnail).toEqual('http://example.org/images/book1-page1/full/126,/0/default.jpg');
-        
-        // No @context
-        delete canvas.thumbnail.service['@context'];
-        var manifestInstance = new Mirador.Manifest(null, null, {});
-        var thumbnail = manifestInstance.getThumbnailForCanvas(canvas, 128);
-        expect(thumbnail).toEqual('http://example.org/images/book1-page1/full/128,/0/native.jpg');
-      });
-
-    });
-    
-    it('when canvas has no thumbnail', function () {
-      var canvas = {
-        images: [
-          {
-            resource: {
-              service: {
-                '@context': 'http://iiif.io/api/image/2/context.json',
-                '@id': 'http://example.org/images/book1-page1'
-              }
-            }
-          }
-        ]
-      };
-      var manifestInstance = new Mirador.Manifest(null, null, {});
-      var thumbnail = manifestInstance.getThumbnailForCanvas(canvas, 124);
-      expect(thumbnail).toEqual('http://example.org/images/book1-page1/full/124,/0/default.jpg');
-
-      // No @context
-      delete canvas.images[0].resource.service['@context'];
-      var manifestInstance = new Mirador.Manifest(null, null, {});
-      var thumbnail = manifestInstance.getThumbnailForCanvas(canvas, 124);
-      expect(thumbnail).toEqual('http://example.org/images/book1-page1/full/124,/0/native.jpg');
-    });
-    
-    it('when canvas has no thumbnail and the image resource has a default', function () {
-      var canvas = {
-        images: [
-          {
-            resource: {
-              default: {
-                service: {
-                  '@context': 'http://iiif.io/api/image/2/context.json',
-                  '@id': 'http://example.org/images/book1-page1'
-                }
-              }
-            }
-          }
-        ]
-      };
-      var manifestInstance = new Mirador.Manifest(null, null, {});
-      var thumbnail = manifestInstance.getThumbnailForCanvas(canvas, 122);
-      expect(thumbnail).toEqual('http://example.org/images/book1-page1/full/122,/0/default.jpg');
-    });
-    
-  });
-  
-  describe('getCanvases', function () {
-    it('should return correct canvases', function (done) {
-      var content = {
-        sequences: [
-          {
-            canvases: [
-              {
-                '@id': 'http://example.org/iiif/book1/canvas/p1'
-              }
-            ]
-          }
-        ]
-      };
-      var manifestInstance = new Mirador.Manifest(null, null, content);
-
-      setTimeout(function () { 
-        expect(manifestInstance.getCanvases()[0]['@id']).toEqual('http://example.org/iiif/book1/canvas/p1');
-        done(); 
-      }, 0);
-    });
-  });
-  
-  describe('getAnnotationsListUrls', function () {
-    it('assuming otherContent has two annotation lists', function (done) {
-      var canvasId = 'http://example.org/iiif/book1/canvas/p1';
-      var listId1 = 'http://example.org/iiif/book1/canvas/p1/list/l1';
-      var listId2 = 'http://example.org/iiif/book1/canvas/p1/list/l2';
-      var content = {
-        sequences: [
-          {
-            canvases: [
-              {
-                '@id': canvasId,
-                otherContent: [
-                  {
-                    "@id": listId1,
-                    "@type": "sc:AnnotationList"
-                  },
-                  {
-                    "@id": listId2,
-                    "@type": "sc:AnnotationList"
-                  }
-                ]
-              }
-            ]
-          }
-        ]
-      };
-      var manifestInstance = new Mirador.Manifest(null, null, content);
-      setTimeout(function () { 
-        var annotationListUrl = manifestInstance.getAnnotationsListUrls(canvasId);
-        expect(annotationListUrl).toEqual([listId1, listId2]);
-        done();
-      }, 0);
-    });
-    
-    it('when canvas does not have otherContent', function (done) {
-      var canvasId = 'http://example.org/iiif/book1/canvas/p1';
-      var content = {
-        sequences: [
-          {
-            canvases: [
-              {
-                '@id': canvasId,
-              }
-            ]
-          }
-        ]
-      };
-      var manifestInstance = new Mirador.Manifest(null, null, content);
-      setTimeout(function () { 
-        var annotationListUrl = manifestInstance.getAnnotationsListUrls(canvasId);
-        expect(annotationListUrl.length).toEqual(0);
-        done();
-      }, 0);
-    });
-  });
-  
-  describe('getStructures', function () {
-    it('should retrieve correct structures', function (done) {
-      var rangeId = 'http://example.org/iiif/book1/range/r1';
-      var content = {
-        structures: [
-          {
-            '@id': rangeId
-          }
-        ]
-      };
-      var manifestInstance = new Mirador.Manifest(null, null, content);
-      setTimeout(function () { 
-        var structures = manifestInstance.getStructures();
-        expect(structures.length).toEqual(1);
-        done();
-      }, 0);
-    });
-  });
-
-  describe('getViewingDirection', function () {
-    it('should retrieve correct viewingDirection', function (done) {
-      var content1 = {
-        "@context": "http://www.shared-canvas.org/ns/context.json",
-        "@type": "sc:Manifest",
-        "@id": "http://manifests.example.com/iiif/EX/manifest",
-        "label": "Book 1",
-        "viewingDirection": "right-to-left",
-        "sequences": [{}]
-      };
-      var content2 = {
-        "@context": "http://www.shared-canvas.org/ns/context.json",
-        "@type": "sc:Manifest",
-        "@id": "http://manifests.example.com/iiif/EX/manifest",
-        "label": "Book 1",
-        "sequences": [{
-          "viewingDirection": 'right-to-left'
-        }]
-      };
-      var content3 = {
-        "@context": "http://www.shared-canvas.org/ns/context.json",
-        "@type": "sc:Manifest",
-        "@id": "http://manifests.example.com/iiif/EX/manifest",
-        "label": "Book 1",
-        "viewingDirection": "left-to-right",
-        "sequences": [{}]
-      };
-      var manifestInstance1 = new Mirador.Manifest(null, null, content1);
-      var manifestInstance2 = new Mirador.Manifest(null, null, content2);
-      var manifestInstance3 = new Mirador.Manifest(null, null, content3);
-      setTimeout(function () {
-        var viewingDirection1 = manifestInstance1.getViewingDirection();
-        var viewingDirection2 = manifestInstance2.getViewingDirection();
-        var viewingDirection3 = manifestInstance3.getViewingDirection();
-        expect(viewingDirection1).toEqual('right-to-left');
-        expect(viewingDirection2).toEqual('right-to-left');
-        expect(viewingDirection3).toEqual('left-to-right');
-        done();
-      }, 0);
-    });
-  });
-});
diff --git a/spec/mirador.test.js b/spec/mirador.test.js
deleted file mode 100644
index 8c62ad78ebc68e9ed690b034bfb51f9738df125c..0000000000000000000000000000000000000000
--- a/spec/mirador.test.js
+++ /dev/null
@@ -1,102 +0,0 @@
-describe('Mirador | mirador.js', function() {
-  function startMirador(done, testContext) {
-    localStorage.clear();
-    var manifestLoadedCount = 0;
-
-    testContext.viewerDiv = jQuery('<div/>');
-    testContext.viewerDiv.attr('id', 'viewer');
-    testContext.viewerDiv.appendTo('body');
-
-    testContext.mirador = Mirador({
-      id: 'viewer',
-      layout: "1x2",
-      buildPath: 'spec/',
-      preserveManifestOrder: true,
-      data: [{
-        "manifestUri": "spec/data/manifest.json",
-        "location": "Stanford University",
-        "title": "MS 5"
-      }, {
-        "manifestUri": "spec/data/manifest2.json",
-        "location": "Stanford University",
-        "title": "Walters"
-      }],
-      language: "de"
-    });
-
-    testContext.mirador.viewer.eventEmitter.subscribe('manifestListItemRendered', function(data) {
-      manifestLoadedCount++;
-      if (manifestLoadedCount === 2) {
-        done();
-      }
-      return;
-    });
-  }
-
-  // Tests for object initialization
-  describe('Initialization', function() {
-    beforeAll(function(done) {
-      startMirador(done, this);
-    });
-    afterAll(function() {
-      jQuery(window).unbind('resize');
-      d3.select(window).on('resize', null);
-      this.viewerDiv.remove();
-      delete this.mirador;
-    });
-
-    it('should apply the correct class to the container', function() {
-      expect(jQuery('#viewer').hasClass('mirador-container')).toBe(true);
-    });
-
-    it('should render manifest list items', function() {
-      console.log(this.mirador.viewer.manifestsPanel.manifestListItems.length)
-      expect(this.mirador.viewer.manifestsPanel.manifestListItems.length).toBe(2);
-    });
-
-    it('should start Mirador as blank workspace', function() {
-      expect(this.mirador.viewer).toBeDefined();
-    });
-
-    it('should set the configured language', function(){
-      expect(i18next.language).toBe('de')
-    });
-
-    it('should select a manifest', function() {
-      expect(this.viewerDiv.find('.addItemLink').first()).toExist();
-      this.viewerDiv.find('.addItemLink').first().click();
-      this.viewerDiv.find('.select-metadata').first().click();
-      expect(this.mirador.viewer.workspace.windows[0].manifest.uri).toBe('spec/data/manifest.json');
-    });
-
-    xit('should open page from thumbnail view', function() {
-      expect(this.viewerDiv.find('.window').first()).toExist();
-      expect(this.viewerDiv.find('.thumbnail-view .thumbnail-image.highlight').first()).toExist();
-      var _this = this,
-          eventId = 'currentCanvasIDUpdated.' + this.mirador.viewer.workspace.windows[0].id;
-      this.mirador.viewer.eventEmitter.subscribe(eventId, function(event, data) {
-        expect(_this.viewerDiv.find('.image-view').first()).toBeVisible();
-        expect(_this.viewerDiv.find('.thumbnail-view').first()).toBeHidden();
-      });
-      this.viewerDiv.find('.thumbnail-view .thumbnail-image.highlight').first().click();
-    });
-
-    it('should replace the window', function() {
-      expect(this.viewerDiv.find('.new-object-option').first()).toExist();
-      this.viewerDiv.find('.new-object-option').first().click();
-      this.viewerDiv.find('.select-metadata').eq(1).click();
-      expect(this.mirador.viewer.workspace.windows[0].manifest.uri).not.toEqual('spec/data/manifest.json');
-    });
-
-    it('should show logo specified in manifest', function(){
-      expect(this.viewerDiv.find(".repo-image>img")[0].getAttribute("src"))
-        .toEqual("https://stacks-test.stanford.edu/image/iiif/ck546xs5106%2Folemiss1/full/300,/0/default.jpg");
-    });
-
-    xit('should change the page on clicking next button', function() {
-      this.viewerDiv.find('.thumbnail-view .thumbnail-image.highlight').first().click();
-      expect(this.viewerDiv.find('.mirador-osd-next').first()).toExist();
-      this.viewerDiv.find('.mirador-osd-next').first().click();
-    });
-  });
-});
diff --git a/spec/utils/dialog-builder.test.js b/spec/utils/dialog-builder.test.js
deleted file mode 100644
index 81f8a90f19ec1f17b69f2403f088fed588725697..0000000000000000000000000000000000000000
--- a/spec/utils/dialog-builder.test.js
+++ /dev/null
@@ -1,38 +0,0 @@
-describe('Dialog Builder', function () {
-
-  beforeEach(function () {
-    // stub bootbox.js ( DialogBuilder is wrapper)
-    bootbox = jasmine.createSpy();
-    var self = this;
-    self.initSpy = jasmine.createSpyObj('initSpy', ['init']);
-    bootbox.confirm = jasmine.createSpy('confirm').and.returnValue(self.initSpy);
-
-    bootbox.dialog = jasmine.createSpy().and.returnValue(self.initSpy);
-
-    bootbox.setDefaults = jasmine.createSpy();
-
-    this.dialogBuilder = new Mirador.DialogBuilder();
-  });
-
-  it('should call setDefaults', function () {
-    expect(bootbox.setDefaults).toHaveBeenCalled();
-  });
-
-  it('should call underlying confirm method', function () {
-    var onConfirm = function () {
-    };
-    this.initSpy.init.calls.reset();
-    this.dialogBuilder.confirm('msg', onConfirm);
-    expect(bootbox.confirm).toHaveBeenCalledWith('msg', onConfirm);
-    expect(this.initSpy.init).toHaveBeenCalled();
-  });
-
-  it('should call underlying dialog method', function () {
-    var opts = {};
-    this.initSpy.init.calls.reset();
-    this.dialogBuilder.dialog(opts);
-    expect(bootbox.dialog).toHaveBeenCalledWith(opts);
-    expect(this.initSpy.init).toHaveBeenCalled();
-  })
-
-});
diff --git a/spec/utils/eventemitter.test.js b/spec/utils/eventemitter.test.js
deleted file mode 100644
index 230e5757ee84439cfb63d087a2b0cd1ce5da737b..0000000000000000000000000000000000000000
--- a/spec/utils/eventemitter.test.js
+++ /dev/null
@@ -1,117 +0,0 @@
-describe('EventEmitter', function () {
-
-  beforeEach(function() {
-    Mirador.EventEmitter.id = 0;
-  });
-
-  it('should initialize itself', function() {
-    var em = new Mirador.EventEmitter();
-    expect(em).toBeTruthy();
-  });
-
-  it('should have an identity andpublish, subscribe, and unsubscribe methods', function() {
-    var em = new Mirador.EventEmitter();
-    expect(typeof em.emitterId).toBe("number");
-    expect(em.emitterId > 0).toBeTruthy();
-    expect(em.publish).toBeTruthy();
-    expect(em.subscribe).toBeTruthy();
-    expect(em.unsubscribe).toBeTruthy();
-  });
-  
-  it('should generate a unique id for each instance', function() {
-    var em1 = new Mirador.EventEmitter();
-    var em2 = new Mirador.EventEmitter();
-    var em3 = new Mirador.EventEmitter();
-    expect(em1.emitterId > 0).toBeTruthy();
-    expect(em1.emitterId < em2.emitterId).toBeTruthy();
-    expect(em2.emitterId < em3.emitterId).toBeTruthy();
-  });
-
-  it('should be able to publish and subscribe/unsubscribe to an event', function() {
-    var em = new Mirador.EventEmitter();
-    var obj = {callback: function() {}};
-    var eventName = "some_mirador_test_event";
-
-    spyOn(obj, 'callback');
-
-    em.subscribe(eventName, obj.callback);
-    em.publish(eventName);
-    expect(obj.callback).toHaveBeenCalled();
-
-    obj.callback.calls.reset();
-
-    em.unsubscribe(eventName, obj.callback);
-    em.publish(eventName);
-    expect(obj.callback).not.toHaveBeenCalled();
-  });
-
-  it('should publish events with the unique ID', function() {
-    var em = new Mirador.EventEmitter();
-    var prefix = em.emitterId.toString() + "::";
-    var eventName = 'foo';
-    var obj = {callback:function() {}};
-
-    spyOn(jQuery, 'subscribe');
-    spyOn(jQuery, 'unsubscribe');
-    spyOn(jQuery, 'publish');
-
-    em.publish(eventName);
-    expect(jQuery.publish).toHaveBeenCalledWith(prefix + eventName);
-
-    em.subscribe(eventName, obj.callback);
-    expect(jQuery.subscribe).toHaveBeenCalledWith(prefix + eventName, obj.callback);
-
-    em.unsubscribe(eventName, obj.callback);
-    expect(jQuery.unsubscribe).toHaveBeenCalledWith(prefix + eventName, obj.callback);
-  });
-
-  it('should log events when debug mode is enabled', function() {
-    var em = new Mirador.EventEmitter({debug: true});
-    var eventName = "foo";
-    spyOn(console, 'log');
-    em.publish(eventName);
-    expect(console.log).toHaveBeenCalled();
-  });
-
-  it('should recognize trace option when logging events', function() {
-    var em = new Mirador.EventEmitter({debug: true, trace: true});
-    spyOn(console, 'trace');
-    em.publish('foo');
-    expect(console.trace).toHaveBeenCalled();
-  });
-
-  it('should recognize exclude patterns when logging events', function() {
-    var em = new Mirador.EventEmitter({debug: true,
-      debugExclude: ['hello'] 
-    });
-    spyOn(console, 'log');
-    em.publish('hello_world');
-    expect(console.log).not.toHaveBeenCalled();
-    em.publish('goodbye_world');
-    expect(console.log).toHaveBeenCalled();
-  });
-
-  it('should log when subscribed handlers are called in debug mode', function() {
-    var em = new Mirador.EventEmitter({debug: true});
-    var handler = jasmine.createSpy('spy');
-    spyOn(console, 'log');
-    em.subscribe('foo', handler);
-    expect(console.log.calls.count()).toEqual(1); // trace from subscribe
-    em.publish('foo');
-    expect(console.log.calls.count()).toEqual(3); // trace from publish and handler
-    expect(handler).toHaveBeenCalled();
-  });
-  
-  it('should unsubscribe correctly when in debug mode', function() {
-    var em = new Mirador.EventEmitter({debug: true});
-    var handler = jasmine.createSpy('spy');
-    spyOn(console, 'log');
-    em.subscribe('foo', handler);
-    em.publish('foo');
-    expect(handler).toHaveBeenCalled();
-    handler.calls.reset();
-    em.unsubscribe('foo', handler);
-    em.publish('foo');
-    expect(handler).not.toHaveBeenCalled();
-  });
-});
\ No newline at end of file
diff --git a/spec/utils/handlebars.test.js b/spec/utils/handlebars.test.js
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/spec/utils/iiif.test.js b/spec/utils/iiif.test.js
deleted file mode 100644
index ee8760c289fbd4f2a81afdb26368bb5ee81af43d..0000000000000000000000000000000000000000
--- a/spec/utils/iiif.test.js
+++ /dev/null
@@ -1,136 +0,0 @@
-describe('Iiif', function () {
-  describe('getImageUrl', function() {
-    it('should return default id for image entries without a service', function() {
-      var sample = {
-        "@id": "http://dms-data.stanford.edu/data/manifests/BnF/jr903ng8662/canvas/canvas-5",
-        "@type": "sc:Canvas",
-        "label": "page de garde recto",
-        "height": "4785",
-        "width": "3760",
-        "images": [
-          {
-            "@id": "http://dms-data.stanford.edu/data/manifests/BnF/jr903ng8662/imageanno/anno-5",
-            "@type": "oa:Annotation",
-            "motivation": "sc:painting",
-            "resource": {
-              "@id": "http://stacks.stanford.edu/image/jr903ng8662/T0000005",
-              "@type": "dctypes:Image",
-              "format": "image/jpeg",
-              "height": "4785",
-              "width": "3760",
-              "default": {
-                "service": {
-                  "@id": "https://stacks.stanford.edu/image/iiif/jr903ng8662%252FT0000005",
-                  "@context": "http://iiif.io/api/image/2/context.json",
-                  "profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1"
-                }
-              }
-            },
-            "on": "http://dms-data.stanford.edu/data/manifests/BnF/jr903ng8662/canvas/canvas-5"
-          }
-        ]
-      };
-      expect(Mirador.Iiif.getImageUrl(sample)).toEqual("https://stacks.stanford.edu/image/iiif/jr903ng8662%252FT0000005");
-    });
-    
-    it('should return IIIF root for image entries with a service', function() {
-      var sample = {
-        "@id": "http://dms-data.stanford.edu/data/manifests/BnF/jr903ng8662/canvas/canvas-5",
-        "@type": "sc:Canvas",
-        "label": "page de garde recto",
-        "height": "4785",
-        "width": "3760",
-        "images": [
-          {
-            "@id": "http://dms-data.stanford.edu/data/manifests/BnF/jr903ng8662/imageanno/anno-5",
-            "@type": "oa:Annotation",
-            "motivation": "sc:painting",
-            "resource": {
-              "@id": "http://stacks.stanford.edu/image/jr903ng8662/T0000005",
-              "@type": "dctypes:Image",
-              "format": "image/jpeg",
-              "height": "4785",
-              "width": "3760",
-              "service": {
-                "@id": "https://stacks.stanford.edu/image/iiif/jr903ng8662%252FT0000005",
-                "@context": "http://iiif.io/api/image/2/context.json",
-                "profile": "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1"
-              }
-            },
-            "on": "http://dms-data.stanford.edu/data/manifests/BnF/jr903ng8662/canvas/canvas-5"
-          }
-        ]
-      };
-      expect(Mirador.Iiif.getImageUrl(sample)).toEqual("https://stacks.stanford.edu/image/iiif/jr903ng8662%252FT0000005");
-    });
-  });
-  
-  describe('getVersionFromContext', function () {
-    it('should handle array contexts', function() {
-      var context = ['http://iiif.io/api/image/2/context.json',
-                     {'someField': 'ns:some-field'}];
-      expect(Mirador.Iiif.getVersionFromContext(context)).toEqual('2.0');
-    });
-    it('should identify 2.0', function() {
-      var context = 'http://iiif.io/api/image/2/context.json';
-      expect(Mirador.Iiif.getVersionFromContext(context)).toEqual('2.0');
-    });
-    it('should identify 1.1', function() {
-      var context = 'http://iiif.io/api/image/1/context.json';
-      expect(Mirador.Iiif.getVersionFromContext(context)).toEqual('1.1');
-    });
-  });
-  
-  describe('getComplianceLevelFromProfile', function () {
-    it('should identify 0 from string', function() {
-      var profile = 'http://iiif.io/api/image/2/level0.json';
-      expect(Mirador.Iiif.getComplianceLevelFromProfile(profile)).toEqual(0);
-    });
-    it('should identify 2 from array', function() {
-      var profile = [
-        "http://iiif.io/api/image/2/level2.json",
-        {
-        "formats" : [ "gif", "pdf" ],
-        "qualities" : [ "color", "gray" ],
-        "supports" : [
-            "canonicalLinkHeader", "rotationArbitrary", "profileLinkHeader", "http://example.com/feature/"
-        ]
-        }
-      ];
-      expect(Mirador.Iiif.getComplianceLevelFromProfile(profile)).toEqual(2);
-    });
-    it('should return -1 for empty profile', function() {
-      var profile = null;
-      expect(Mirador.Iiif.getComplianceLevelFromProfile(profile)).toEqual(-1);
-    });
-    it('should return -1 for unrecognised profile', function() {
-      var profile = "http://library.stanford.edu/iiif/image-api/1.1/compliance.html#level0";
-      expect(Mirador.Iiif.getComplianceLevelFromProfile(profile)).toEqual(-1);
-    });
-  });
-  
-  
-  describe('makeUriWithWidth', function () {
-    it('should return native.jpg URL for IIIF v1.x', function() {
-      expect(Mirador.Iiif.makeUriWithWidth('http://images.waahoo.com/iiif/MYTEST', 512, '1.1')).toEqual('http://images.waahoo.com/iiif/MYTEST/full/512,/0/native.jpg');
-    });
-    it('should return native.jpg URL for IIIF v2.x', function() {
-      expect(Mirador.Iiif.makeUriWithWidth('http://images.waahoo.com/iiif/MYTEST', 512, '2.0')).toEqual('http://images.waahoo.com/iiif/MYTEST/full/512,/0/default.jpg');
-    });
-  });
-  
-  describe('getImageHostUrl', function () {
-    it('should return image_host if it exists', function() {
-      expect(Mirador.Iiif.getImageHostUrl({ image_host: "http://0.0.0.0/abc" })).toEqual("http://0.0.0.0/abc");
-    });
-    it('should return identifier portion if it exists', function() {
-      expect(Mirador.Iiif.getImageHostUrl({ '@id': "http://0.0.0.0/abc/def", identifier: "def" })).toEqual("http://0.0.0.0/abc");
-    });
-    it('should split URL in half if found', function() {
-      expect(Mirador.Iiif.getImageHostUrl({'@id': "http://0.0.0.0/abc/def"})).toEqual("http://0.0.0.0/abc");
-    });
-    it('should return empty string if all attempts fail', function() {
-      expect(Mirador.Iiif.getImageHostUrl({})).toEqual('');
-    });
-  });
-});
diff --git a/spec/utils/jsonBlobApi.test.js b/spec/utils/jsonBlobApi.test.js
deleted file mode 100644
index 8c3e68f690767ee1d8fd9e3f483330cfed06b3d5..0000000000000000000000000000000000000000
--- a/spec/utils/jsonBlobApi.test.js
+++ /dev/null
@@ -1,120 +0,0 @@
-describe('JsonBlobApi', function () {
-  var subject;
-  beforeEach(function() {
-    this.jsonBlobEndpoint = new Mirador.JSONBlobAPI({
-      'ssl': true,
-      'port': '443',
-      'host': 'jsonblob.com'
-    });
-    subject = this.jsonBlobEndpoint;
-  });
-  
-  describe('Initialization', function() {
-    it('should initialize properly under defaults', function() {
-      expect(true).toBe(true); //Force beforeEach() to run
-    });
-  });
-  
-  describe('readSync', function () {
-    var dummyData;
-    beforeEach(function() {
-      dummyData = JSON.stringify({ saveState: "dummy" });
-      spyOn(jQuery, 'ajax').and.callFake(function(settings) {
-        settings.success(dummyData, 'success', null);
-      });
-    });
-    it('should grab the correct blob in HTTPS', function() {
-      expect(subject.readSync('dummyBlobId')).toEqual(dummyData);
-      expect(jQuery.ajax).toHaveBeenCalledWith(jasmine.objectContaining({
-        type: 'GET',
-        url: 'https://jsonblob.com:443/api/jsonBlob/dummyBlobId',
-        contentType: 'application/json; charset=UTF-8',
-        accept: 'application/json',
-        dataType: 'json',
-        async: false,
-        processData: false
-      }));
-    });
-    it('should grab the correct blob in HTTP', function() {
-      subject.options.ssl = false;
-      subject.options.port = null;
-      expect(subject.readSync('dummyBlobId')).toEqual(dummyData);
-      expect(jQuery.ajax).toHaveBeenCalledWith(jasmine.objectContaining({
-        type: 'GET',
-        url: 'http://jsonblob.com:80/api/jsonBlob/dummyBlobId',
-        contentType: 'application/json; charset=UTF-8',
-        accept: 'application/json',
-        dataType: 'json',
-        async: false,
-        processData: false
-      }));
-    });
-    it('should stringify the argument', function() {
-      expect(subject.readSync({ id: 'dummyBlobId' })).toEqual(dummyData);
-      expect(jQuery.ajax).toHaveBeenCalledWith(jasmine.objectContaining({
-        type: 'GET',
-        url: 'https://jsonblob.com:443/api/jsonBlob',
-        contentType: 'application/json; charset=UTF-8',
-        accept: 'application/json',
-        dataType: 'json',
-        data: '{"id":"dummyBlobId"}',
-        async: false,
-        processData: false
-      }));
-    });
-  });
-  
-  describe('save', function () {
-    var dummyData;
-    beforeEach(function() {
-      dummyData = { saveState: "dummy" };
-      spyOn(jQuery, 'ajax').and.callFake(function(settings) {
-        setTimeout(function() {
-          settings.success(dummyData, 'success', {
-            getResponseHeader: jasmine.createSpy('getResponseHeader').and.returnValue('WAAHOOID')
-          });
-        }, 1);
-      });
-    });
-    it('should submit properly in HTTPS', function(done) {
-      var result = subject.save(dummyData),
-          doneCallback = jasmine.createSpy('doneCallback');
-      expect(result).toEqual(jasmine.any(Object));
-      expect(jQuery.ajax).toHaveBeenCalledWith(jasmine.objectContaining({
-        type: 'POST',
-        url: 'https://jsonblob.com:443/api/jsonBlob',
-        contentType: 'application/json; charset=UTF-8',
-        accept: 'application/json',
-        dataType: 'json',
-        data: '{"saveState":"dummy"}',
-        processData: false
-      }));
-      result.done(function(n) {
-        expect(result.state()).toEqual('resolved');
-        expect(n).toEqual('WAAHOOID');
-        done();
-      });
-    });
-    it('should submit properly in HTTP', function(done) {
-      subject.options.ssl = false;
-      subject.options.port = null;
-      var result = subject.save(dummyData),
-          doneCallback = jasmine.createSpy('doneCallback');
-      expect(result).toEqual(jasmine.any(Object));
-      expect(jQuery.ajax).toHaveBeenCalledWith(jasmine.objectContaining({
-        type: 'POST',
-        url: 'http://jsonblob.com:80/api/jsonBlob',
-        contentType: 'application/json; charset=UTF-8',
-        accept: 'application/json',
-        dataType: 'json',
-        data: '{"saveState":"dummy"}',
-        processData: false
-      }));
-      result.done(function(n) {
-        expect(result.state()).toEqual('resolved');
-        expect(n).toEqual('WAAHOOID');
-        done();
-      });
-    });
-  });
-});
diff --git a/spec/utils/jsonLd.test.js b/spec/utils/jsonLd.test.js
deleted file mode 100644
index a030e91313f70d899878a0bc71a5778ea83d193b..0000000000000000000000000000000000000000
--- a/spec/utils/jsonLd.test.js
+++ /dev/null
@@ -1,97 +0,0 @@
-describe('JsonLd', function () {
-  describe('getTextValue', function() {
-    it('should return empty string for undefined', function() {
-      expect(Mirador.JsonLd.getTextValue(null, 'en')).toEqual('');
-      expect(Mirador.JsonLd.getTextValue(null, 'txg')).toEqual('');
-      expect(Mirador.JsonLd.getTextValue(null)).toEqual('');
-    });
-
-    it('should return the same string when given a string', function() {
-      expect(Mirador.JsonLd.getTextValue('waahoo', 'en')).toEqual('waahoo');
-      expect(Mirador.JsonLd.getTextValue('waahoo', 'xto')).toEqual('waahoo');
-      expect(Mirador.JsonLd.getTextValue('waahoo')).toEqual('waahoo');
-    });
-
-    it('should return the localized name when given an array of translations', function() {
-      // Short sample
-      var sample = [
-        {
-          "@value": "Alternate Title",
-          "@language": "en"
-        },
-        {
-          "@value": "Teitl Arall",
-          "@language": "cy-GB"
-        }
-      ];
-      //Should grab specified language
-      expect(Mirador.JsonLd.getTextValue(sample, 'en')).toEqual("Alternate Title");
-      expect(Mirador.JsonLd.getTextValue(sample, 'cy-GB')).toEqual("Teitl Arall");
-      //Should default to the first entry for non-found language
-      expect(Mirador.JsonLd.getTextValue(sample, 'txg')).toEqual("Alternate Title");
-      //Should default to en
-      expect(Mirador.JsonLd.getTextValue(sample)).toEqual("Alternate Title");
-    });
-
-    it('should return "@value" key when given an object', function() {
-      var sample = {
-        "@value": "Super waahoo",
-        "@language": "en"
-      };
-      expect(Mirador.JsonLd.getTextValue(sample, 'en')).toEqual("Super waahoo");
-      expect(Mirador.JsonLd.getTextValue(sample)).toEqual("Super waahoo");
-    });
-
-    it('should return all values when no value has a langue associated', function() {
-      var sample = ['First value',
-                    'Second value'];
-      expect(Mirador.JsonLd.getTextValue(sample)).toEqual('First value<br />Second value');
-    });
-
-    it('should return all values that best match the language preference', function() {
-      var sample = [
-        'This is a value without a language.',
-        {'@value': "This is an American value.",
-         '@language': "en-US"},
-        {'@value': "This ia a British value.",
-         '@language': "en-UK"},
-        'This is another value without a language.',
-        {'@value': "C'est une valeur française.",
-         '@language': "fr"}];
-      i18next.languages = ['en-US', 'en']
-      expect(Mirador.JsonLd.getTextValue(sample)).toEqual("This is an American value.");
-    });
-
-    it('should pick a language if all values have a language but none match the preference', function() {
-      var sample = [
-        {'@value': "This is an American value.",
-         '@language': "en-US"},
-        {'@value': "This is another American value.",
-         '@language': "en-US"},
-        {'@value': "C'est une valeur française.",
-         '@language': "fr"}];
-      window.navigator.languages = ['de-DE', 'de'];
-      expect(Mirador.JsonLd.getTextValue(sample))
-        .toEqual('This is an American value.<br />' +
-                 'This is another American value.');
-    });
-
-    it('should return all values without an associated language if some have one, but none match the preference', function() {
-      var sample = [
-        {'@value': "C'est une valeur française.",
-         '@language': "fr"},
-        'This is a value without a language.',
-        'This is another value without a language.'];
-      window.navigator.languages = ['en-US', 'en'];
-      expect(Mirador.JsonLd.getTextValue(sample))
-        .toEqual('This is a value without a language.<br />' +
-                 'This is another value without a language.');
-    });
-
-    it('should only allow HTML elements permitted by the specification', function() {
-      var withScript = '<span>This <strong>looks</strong> <em>harmless</em>.<script>window.alert("boom!")</script></span>';
-      expect(Mirador.JsonLd.getTextValue(withScript)).toEqual(
-        "<span>This <strong>looks</strong> <em>harmless</em>.</span>");
-    });
-  });
-});
diff --git a/spec/utils/localJsonBlobApi.test.js b/spec/utils/localJsonBlobApi.test.js
deleted file mode 100644
index 4e2bcd4e411ced0370bc9ada4006cf9c4453049e..0000000000000000000000000000000000000000
--- a/spec/utils/localJsonBlobApi.test.js
+++ /dev/null
@@ -1,50 +0,0 @@
-describe('LocalJsonBlobApi', function () {
-    BogusStorage = function() {
-        this.data = {};
-    };
-    BogusStorage.prototype = {
-        setItem: function(k, v) {
-            this.data[k] = v;
-        },
-        getItem: function(k) {
-            return this.data[k];
-        }
-    };
-    
-    
-    var myWindow = {
-        "bogusStorage": new BogusStorage()
-    };
-    
-    var dummyBlobs = {
-        a: {
-            "waahoo": 5
-        },
-        b: {
-            "woohah": "super foobar"
-        }
-    };
-
-    var localBlob;
-    beforeEach(function() {
-        localBlob = new Mirador.LocalJSONBlobAPI({
-            storage: myWindow.bogusStorage
-        });
-    });
-    
-    it('readSync', function () {
-        myWindow.bogusStorage.setItem('ABC', JSON.stringify(dummyBlobs.a));
-        expect(localBlob.readSync('ABC')).toEqual(dummyBlobs.a);
-    });
-    
-    it('save', function () {
-        var promise = null,
-            savedKey = "";
-        (promise = localBlob.save(dummyBlobs.b)).done(function(k) {
-            savedKey = k;
-        });
-        expect(typeof promise).toBe('object');
-        expect(savedKey).not.toEqual("");
-        expect(myWindow.bogusStorage.getItem(savedKey)).toEqual(JSON.stringify(dummyBlobs.b));
-    });
-});
diff --git a/spec/utils/openSeadragon.test.js b/spec/utils/openSeadragon.test.js
deleted file mode 100644
index 7a6ab22abd5eb5d6d1079c50691b667aac3c5e68..0000000000000000000000000000000000000000
--- a/spec/utils/openSeadragon.test.js
+++ /dev/null
@@ -1,18 +0,0 @@
-describe('OpenSeadragon', function () {
-  var subject;
-  
-  beforeEach(function() {
-    jQuery('body').append('<div id="osd"></div>');
-    this.osd = new Mirador.OpenSeadragon({
-      id: 'osd',
-      toolbarID: 'my-osd-toolbar'
-    });
-    subject = this.osd;
-  });
-  
-  describe('Construction', function () {
-    it('should work with default setup', function() {
-      expect(true).toBe(true); //Force beforeEach setup to run
-    });
-  });
-});
diff --git a/spec/utils/saveController.test.js b/spec/utils/saveController.test.js
deleted file mode 100644
index 1ef0a79509f28d31c8032bdc5a0655da5bd128a3..0000000000000000000000000000000000000000
--- a/spec/utils/saveController.test.js
+++ /dev/null
@@ -1,198 +0,0 @@
-describe('SaveController', function () {
-
-  beforeEach(function() {
-    localStorage.clear();
-    this.eventEmitter = new Mirador.EventEmitter();
-    this.config = {
-      id: 'mock_viewer_id',
-      saveSession: false,
-      eventEmitter: this.eventEmitter
-    }; 
-  });
-  
-  describe('Constructor', function () {
-    xit ('should fail gracefully when storage is invalid or unavailable', function () {
-      // When saveSession is true and the storage module fails to initiate,
-      // display proper error message to user and possibly revert to 'no save' mode.
-    });
-  });
-  
-  describe('Sanity check when saveSession == false', function () {
-
-    beforeEach(function () {
-      this.config.saveSession = false;
-      this.saveController = new Mirador.SaveController(this.config);
-    });
-
-    it('should not have this.storageModule', function () {
-      expect(this.saveController.storageModule).toBe(undefined);
-    });
-
-    it ('should respond to published events', function () {
-      // Just making sure bindEvents() is being called.
-      
-      // windowUpdated
-      this.eventEmitter.publish('windowUpdated', {});
-      expect(this.saveController.get('windowObjects', 'currentConfig')).toEqual([{}]);
-    });
-  });
-
-  describe('Sanity check when saveSession == true', function () {
-    
-    beforeEach(function () {
-      this.config.saveSession = true;
-      this.saveController = new Mirador.SaveController(this.config);
-    });
-
-    it('should have _this.storageModule', function () {
-      expect(this.saveController.storageModule).toBeTruthy();
-    });
-
-    it ('should respond to published events', function () {
-      // Just making sure bindEvents() is being called.
-      
-      // windowUpdated
-      this.eventEmitter.publish('windowUpdated', {});
-      expect(this.saveController.get('windowObjects', 'currentConfig')).toEqual([{}]);
-    });
-  });
-  
-  describe('Working with localStorage', function () {
-    xit('should deal with localStorage', function () {
-    });
-  });
-
-  describe('Working with jsonStorageEndpoint', function () {
-
-    beforeEach(function () {
-      window.Mirador.MockJsonStorege = function () {
-        this.readSync = function (blobId) {
-          return {
-            hash_1: { id: 'stored_config_1',
-              windowObjects: []
-            }
-          }[blobId];
-        };
-      };
-      this.config.jsonStorageEndpoint = {
-        'name': 'Mock JSON Storage Endpoint',
-        'module': 'MockJsonStorege'
-      };
-      this.config.saveSession = true;
-      history.replaceState({}, 'History replaced', '/?key=hash_1');
-      
-      this.saveController = new Mirador.SaveController(this.config);
-    });
-    
-    it('should read config from storage', function () {
-      expect(this.saveController.currentConfig.id).toBe('stored_config_1');
-    });
-  });
-  
-  describe('getWindowObjectById', function () {
-
-    beforeEach(function () {
-      this.config.saveSession = false;
-      this.saveController = new Mirador.SaveController(this.config);
-    });
-
-    // TODO porbably should test for different values of saveSession and 
-    // storage engines.
-    it('should retrieve the saved window object', function () {
-      this.config.saveSeesion = false;
-      this.config.windowObjects = [ 
-        { id: 'mock_window_1' },
-        { id: 'mock_window_2' } 
-      ];
-      var saveController = new Mirador.SaveController(this.config);
-      expect(saveController.getWindowObjectById('mock_window_1').id).toBe('mock_window_1');
-      expect(saveController.getWindowObjectById('mock_window_2').id).toBe('mock_window_2');
-    });
-  });
-  
-  describe('Get and set properties', function () {
-    it('should retrieve saved values', function () {
-      var saveController = new Mirador.SaveController(this.config);
-      
-      saveController.set('key_1', 'val_1');
-      saveController.set('key_2', 'val_2', { parent: 'currentConfig'});
-
-      expect(saveController.get('key_1')).toBe('val_1');
-      expect(saveController.get('key_2', 'currentConfig')).toBe('val_2');
-      expect(saveController.getStateProperty('key_2')).toBe('val_2');
-    });
-  });
-  
-  describe('Test Cleaning Up Objects', function () {
-    it('should remove circular references', function () {
-
-      var saveController = new Mirador.SaveController(this.config);
-      
-      var object_a = { valid: 'This is a valid value' };
-      var object_b = { valid: 'This is a valid value', invalid: object_a };
-      object_a.object_b = object_b;
-
-      var cleaned = saveController.cleanup(object_a);
-
-      /**
-        * The original object should be untouched. 
-        */
-      expect(object_a.object_b.invalid).not.toBeUndefined();
-
-      /**
-        * object_a reference in cleaned should be the only 
-        * value missing.
-        */
-      expect(cleaned.valid).toBe('This is a valid value');
-      expect(cleaned.object_b.invalid).toBeUndefined();
-      expect(cleaned.object_b.valid).toBe('This is a valid value');
-    });
-  });
-
-  describe('Event handling', function () {
-    xit('should handle windowUpdated', function () {
-    });
-
-    xit('should handle imageBoundsUpdated', function () {
-    });
-    
-    it('should handle ANNOTATIONS_LIST_UPDATED', function () {
-      var saveController = new Mirador.SaveController(this.config);
-      var windowId = 'mock_window_1';
-      var annotationsList = [
-        { '@id': 'mock_annotation_1' },
-        { '@id': 'mock_annotation_2' }
-      ];
-      this.eventEmitter.publish('ANNOTATIONS_LIST_UPDATED', { windowId: windowId, 
-        annotationsList: annotationsList });
-      expect(saveController.getWindowAnnotationsList(windowId)[0]['@id']).toBe('mock_annotation_1');
-      expect(saveController.getWindowAnnotationsList(windowId)[1]['@id']).toBe('mock_annotation_2');
-    });
-    
-    xit('should handle WINDOW_ELEMENT_UPDATED', function nnn() {
-    });
-    
-    xit('should handle windowSlotAddressUpdated', function () {
-    });
-    
-    xit('should handle manifestQueued', function () {
-    });
-    
-    xit('should handle slotsUpdated', function () {
-    });
-
-    xit('should handle layoutChanged', function () {
-    });
-    
-    xit('should handle windowSlotAdded', function () {
-    });
-    
-    xit('should handle windowsRemoved', function () {
-    });
-    
-    xit('should handle ...etc', function () {
-      // What the heck is this.
-    });
-  });
-  
-});
diff --git a/spec/utils/utils.test.js b/spec/utils/utils.test.js
deleted file mode 100644
index d31c35089ab4768eb4522ca72a1c67a8e574e1ad..0000000000000000000000000000000000000000
--- a/spec/utils/utils.test.js
+++ /dev/null
@@ -1,360 +0,0 @@
-describe('Utils', function() {
-  beforeEach(function() {
-    this.utils = Mirador;
-    this.imagesList = [{
-      '@id':     '1',
-      'title':  '1r',
-      'height': 10,
-      'width':  20
-    }, {
-      '@id':     '2',
-      'title':  '1v',
-      'height': 15,
-      'width':  25
-    }];
-
-    this.imageTitlesAndIds = [{
-      '@id':     '1',
-      'title': '1r'
-    }, {
-      '@id':     '2',
-      'title': '1v'
-    }];
-    this.manifests = {
-      "manifest-1234": {
-        "uri":"http://xyz.edu/data/Manifest.json",
-        "metadata": {
-          "details": {
-            'label': 'Collection 123'
-          }
-        },
-        "sequences": [{
-          "imagesList": this.imagesList
-        }]
-      }
-    };
-  });
-
-  it('should trim trailing whitespaces from a string', function() {
-    expect(this.utils.trimString('  abc ')).toEqual('abc');
-  });
-  
-  it('should find the correct image index by ID', function() {
-    expect(this.utils.getImageIndexById(this.imagesList, '1')).toEqual(0);
-    expect(this.utils.getImageIndexById(this.imagesList, '2')).toEqual(1);
-  });
-  
-  describe('getThumbnailForCanvas', function() {
-    it('should get the thumbnail if found as a string', function() {
-      this.imagesList[0].thumbnail = "http://0.0.0.0/thumbnail.png";
-      expect(this.utils.getThumbnailForCanvas(this.imagesList[0], "20")).toEqual(this.imagesList[0].thumbnail);
-    });
-    it('should get the thumbnail if found as a service', function() {
-      this.imagesList[0].thumbnail = {
-        service: {
-          '@context': "http://iiif.io/api/image/2/context.json",
-          '@id': "http://0.0.0.0/iiif/thumbnail"
-        }
-      };
-      expect(this.utils.getThumbnailForCanvas(this.imagesList[0], "20")).toEqual("http://0.0.0.0/iiif/thumbnail/full/20,/0/default.jpg");
-    });
-    it('should use main image if nothing else is found', function() {
-      this.imagesList[0].images = [{
-        resource: {
-          "service": {
-            '@context': "http://iiif.io/api/image/2/context.json",
-            "@id": "http://0.0.0.0/iiif/thumbnail"
-          }
-        }
-      }];
-      expect(this.utils.getThumbnailForCanvas(this.imagesList[0], "20")).toEqual("http://0.0.0.0/iiif/thumbnail/full/20,/0/default.jpg");
-    });
-  });
-  
-  describe('jQuery.fn.slideFadeToggle()', function() {
-    var elem;
-    beforeEach(function() {
-      elem = document.createElement('div');
-      $('<p>Waahoo</p>').appendTo(elem);
-    });
-    it('should hide a shown element', function(done) {
-      jQuery(elem).slideFadeToggle(10, 'linear', function() {
-        expect(jQuery(this)).not.toBeVisible();
-        done();
-      });
-    });
-  });
-
-  describe('XHR utils', function() {
-    beforeEach(function() {
-      this.server = sinon.fakeServer.create();
-    });
-
-    afterEach(function() {
-      this.server.restore();
-    });
-
-    // it('should return JSON data for a given URL via ajax call', function() {
-    //   var data = { 'a': 'b' },
-    //   error; // undefined
-    //
-    //   this.server.respondWith("GET", "http://manifest/url/success",
-    //                           [200, { "Content-Type": "application/json" },
-    //                             JSON.stringify(data)]);
-    //   this.server.respondWith("GET", "http://manifest/url/failed",
-    //                           [500, {}, '']);
-
-    //   var callback = sinon.spy();
-    //   myLib.getCommentsFor("/manifest/url", callback);
-    //   this.server.respond();
-
-    //   // spyOn(jQuery, 'ajax').and.callFake(function(params) {
-    //   //   if (/success$/.test(params.url)) {
-    //   //     params.success(data);
-    //   //   } else {
-    //   //     params.error(error);
-    //   //   }
-    //   // });
-
-    //   expect(this.utils.getJsonFromUrl('http://manifest/url/success', true)).toEqual(data);
-    //   expect(this.utils.getJsonFromUrl('http://manifest/url/success', false)).toEqual(data);
-    //   expect(this.utils.getJsonFromUrl('http://manifest/url/failed', false)).toEqual(error);
-    // });
-  });
-  
-  describe('isOnScreen', function() {
-    var subject, win, el_offset, el;
-    beforeEach(function() {
-      subject = this.utils;
-      win = {
-        scrollTop: jasmine.createSpy('scrollTop').and.returnValue(320),
-        scrollLeft: jasmine.createSpy('scrollLeft').and.returnValue(48),
-        outerHeight: jasmine.createSpy('outerHeight').and.returnValue(200),
-        outerWidth: jasmine.createSpy('outerWidth').and.returnValue(150)
-      };
-      el_offset = {
-        top: 0,
-        left: 0
-      };
-      el = {
-        offset: jasmine.createSpy().and.callFake(function() {
-          return el_offset;
-        }),
-        height: jasmine.createSpy().and.returnValue(16),
-        width: jasmine.createSpy().and.returnValue(32)
-      };
-      spyOn(window, 'jQuery').and.callFake(function(arg) {
-        if (arg === window) {
-          return win;
-        }
-        else {
-          return el;
-        }
-      });
-    });
-    it('should return true for things on screen', function() {
-      el_offset = { top: 330, left: 60 };
-      expect(subject.isOnScreen('elem')).toBe(true);
-      el_offset = { top: 660, left: 200 };
-      expect(subject.isOnScreen('elem', 2)).toBe(true);
-    });
-    it('should return false for things off screen', function() {
-      jQuery.each([{ top: 0, left: 60 }, { top: 900, left: 60 }, { top: 330, left: 0 }, { top: 650, left: 2000 }], function(k, eo) {
-        el_offset = eo;
-        expect(subject.isOnScreen('elem')).toBe(false);
-      });
-      jQuery.each([{ top: 0, left: 100 }, { top: 1900, left: 100 }, { top: 650, left: 0 }, { top: 330, left: 700 }], function(k, eo) {
-        el_offset = eo;
-        expect(subject.isOnScreen('elem', 2)).toBe(false);
-      });
-    });
-  });
-  
-  describe('getRangeIDByCanvasID', function() {
-    it('should find ranges correctly', function() {
-      var canvasID = 'http://0.0.0.0/iiif/0/canvas',
-          structures = [
-            {
-              '@id': 'http://0.0.0.0/iiif/no1/sequence',
-              canvases: [ 'http://0.0.0.0/iiif/1/canvas', 'http://0.0.0.0/iiif/2/canvas' ]
-            },
-            {
-              '@id': 'http://0.0.0.0/iiif/no2/sequence',
-              canvases: [ ]
-            },
-            {
-              '@id': 'http://0.0.0.0/iiif/yes1/sequence',
-              canvases: [ 'http://0.0.0.0/iiif/0/canvas' ]
-            },
-            {
-              '@id': 'http://0.0.0.0/iiif/yes2/sequence',
-              canvases: [ 'http://0.0.0.0/iiif/1/canvas', 'http://0.0.0.0/iiif/0/canvas' ]
-            },
-          ];
-      expect(this.utils.getRangeIDByCanvasID(structures, canvasID)).toEqual(['http://0.0.0.0/iiif/yes1/sequence', 'http://0.0.0.0/iiif/yes2/sequence']);
-    });
-  });
-
-  describe('createImagePromise', function() {
-
-    it('should load an image if the request is good', function(done) {
-      var dataUri = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7'
-
-      var imagePromise = Mirador.createImagePromise(dataUri);
-
-      imagePromise.done(function(image) {
-        expect(image).toBe(dataUri);
-        console.log(image);
-        done();
-      });
-
-    });
-
-    it('should return an error message to the console if the result is bad', function(done) {
-      var dataUri = 'http://0.0.0.0/invalid.png';
-      spyOn(console, 'log').and.returnValue();
-      var imagePromise = Mirador.createImagePromise(dataUri);
-      imagePromise.fail(function(image) {
-        expect(image).toBe(dataUri);
-        expect(console.log).toHaveBeenCalledWith('image failed to load: http://0.0.0.0/invalid.png');
-        done();
-      });
-    });
-  });
-
-  describe('getImageIndexById', function() {
-    it('should return index of the image with the given id', function() {
-      expect(this.utils.getImageIndexById(this.imagesList, '1')).toBe(0);
-      expect(this.utils.getImageIndexById(this.imagesList, '2')).toBe(1);
-      // TODO: should expect -1 or throw exception instead
-      expect(this.utils.getImageIndexById(this.imagesList, '0')).toBe(0);
-    });
-  });
-
-  describe('getThumbnailForCanvas', function() {
-    it('should get the proper thumbnail for a canvas when thumbnail is given as a string', function() {
-      var stringUrl = 'http://images.example.org/thumbnail/1';
-      var canvas = {
-        '@id': 'http://manifests.example.org/canvas/1',
-        thumbnail: stringUrl
-      };
-      expect(this.utils.getThumbnailForCanvas(canvas, 100)).toEqual(stringUrl);
-    });
-
-    it('should get the proper thumbnail for a canvas when thumbnail is given as a service', function() {
-      var canvas = {
-        '@id': 'http://manifests.example.org/canvas/2',
-        thumbnail: {
-          service: {
-            profile: 'http://iiif.io/api/image/2/level1.json',
-            '@context': 'http://iiif.io/api/image/2/context.json',
-            '@id': 'http://images.example.org/image/1'
-          }
-        }
-      }
-      expect(this.utils.getThumbnailForCanvas(canvas, 100))
-        .toEqual('http://images.example.org/image/1/full/100,/0/default.jpg');
-    });
-  });
-
-  describe('getQueryParams', function() {
-    it('should properly parse a url with query parameters', function() {
-      var queryParams = this.utils.getQueryParams('http://zimeon.github.io/iiif-dragndrop/e-codices-help.html?manifest=http://www.e-codices.unifr.ch/metadata/iiif/kba-0003/manifest.json&canvas=http://www.e-codices.unifr.ch/metadata/iiif/kba-0003/canvas/kba-0003_002r.json');
-      expect(queryParams.manifest).toBe("http://www.e-codices.unifr.ch/metadata/iiif/kba-0003/manifest.json");
-      expect(queryParams.canvas).toBe("http://www.e-codices.unifr.ch/metadata/iiif/kba-0003/canvas/kba-0003_002r.json");
-    });
-    it('should properly parse a url without query parameters', function() {
-      var queryParams = this.utils.getQueryParams('http://www.google.com');
-      expect(queryParams).toEqual({});
-    });
-  });
-  
-  describe('exitFullscreen', function() {
-    beforeEach(function() {
-      delete document.exitFullscreen;
-      delete document.mozCancelFullScreen;
-      delete document.webkitExitFullscreen;
-    });
-    it('should run without prefixes if available', function() {
-      document.exitFullscreen = jasmine.createSpy();
-      this.utils.exitFullscreen();
-      expect(document.exitFullscreen).toHaveBeenCalled();
-    });
-    it('should run with moz prefix as a backup', function() {
-      document.mozCancelFullScreen = jasmine.createSpy();
-      this.utils.exitFullscreen();
-      expect(document.mozCancelFullScreen).toHaveBeenCalled();
-    });
-    it('should run with webkit prefix as a backup', function() {
-      document.webkitExitFullscreen = jasmine.createSpy();
-      this.utils.exitFullscreen();
-      expect(document.webkitExitFullscreen).toHaveBeenCalled();
-    });
-  });
-  
-  describe('enterFullscreen', function() {
-    var subject;
-    beforeEach(function() {
-      subject = this.utils;
-    });
-    it('should run standard requestFullscreen over all others', function() {
-      jQuery.each(['mozRequestFullScreen', 'webkitRequestFullscreen', 'msRequestFullscreen'], function(k, v) {
-        var el = jasmine.createSpyObj('el', ['requestFullscreen', v]);
-        subject.enterFullscreen(el);
-        expect(el.requestFullscreen).toHaveBeenCalled();
-        expect(el[v]).not.toHaveBeenCalled();
-      });
-    });
-    it('should run mozRequestFullScreen if available', function() {
-      var el = jasmine.createSpyObj('el', ['mozRequestFullScreen']);
-      subject.enterFullscreen(el);
-      expect(el.mozRequestFullScreen).toHaveBeenCalled();
-    });
-    it('should run webkitRequestFullscreen if available', function() {
-      var el = jasmine.createSpyObj('el', ['webkitRequestFullscreen']);
-      subject.enterFullscreen(el);
-      expect(el.webkitRequestFullscreen).toHaveBeenCalled();
-    });
-    it('should run msRequestFullscreen if available', function() {
-      var el = jasmine.createSpyObj('el', ['msRequestFullscreen']);
-      subject.enterFullscreen(el);
-      expect(el.msRequestFullscreen).toHaveBeenCalled();
-    });
-  });
-  
-  describe('isFullscreen', function() {
-    var dummyFullscreenElement = {
-      length: 1
-    };
-    beforeEach(function() {
-      spyOn(this.utils, 'fullscreenElement').and.returnValue(dummyFullscreenElement);
-    });
-    it('should detect fullscreen', function() {
-      expect(this.utils.isFullscreen()).toBe(true);
-    });
-    it('should detect non-fullscreen', function() {
-      dummyFullscreenElement.length = 0;
-      expect(this.utils.isFullscreen()).toBe(false);
-    });
-  });
-  
-  describe('fullscreenElement', function() {
-    beforeEach(function() {
-      delete document.fullscreenElement;
-      delete document.mozFullScreenElement;
-      delete document.webkitFullscreenElement;
-    });
-    it('should return document.fullscreenElement if available', function() {
-      document.fullscreenElement = jasmine.createSpyObj('fullscreenElement', ['length']);
-      expect(this.utils.fullscreenElement()).toBe(document.fullscreenElement);
-    });
-    it('should return document.mozFullScreenElement if available', function() {
-      document.mozFullScreenElement = jasmine.createSpyObj('mozFullScreenElement', ['length']);
-      expect(this.utils.fullscreenElement()).toBe(document.mozFullScreenElement);
-    });
-    it('should return document.webkitFullscreenElement if available', function() {
-      document.webkitFullscreenElement = jasmine.createSpyObj('webkitFullscreenElement', ['length']);
-      expect(this.utils.fullscreenElement()).toBe(document.webkitFullscreenElement);
-    });
-  });
-});
diff --git a/spec/viewer.test.js b/spec/viewer.test.js
deleted file mode 100644
index 9ca650060df7ae073f2692d83858d4a81dceab0a..0000000000000000000000000000000000000000
--- a/spec/viewer.test.js
+++ /dev/null
@@ -1,2 +0,0 @@
-describe('Viewer', function() {
-});
diff --git a/spec/viewer/bookmarkPanel.test.js b/spec/viewer/bookmarkPanel.test.js
deleted file mode 100644
index 5282eef01a7624b2e3348e40751c3728662370b0..0000000000000000000000000000000000000000
--- a/spec/viewer/bookmarkPanel.test.js
+++ /dev/null
@@ -1,75 +0,0 @@
-describe('BookmarkPanel', function() {
-  beforeEach(function() {
-    this.eventEmitter = new Mirador.EventEmitter();
-    this.viewerDiv = jQuery('<div>');
-    this.panel = new Mirador.BookmarkPanel({
-      appendTo: this.viewerDiv,
-      state: new Mirador.SaveController(jQuery.extend(true, {}, Mirador.DEFAULT_SETTINGS, {eventEmitter:this.eventEmitter})),
-      eventEmitter: this.eventEmitter
-    });
-  });
-
-  it('should initialize itself', function() {
-    expect(this.panel).toBeDefined();
-    expect(this.panel.storageModule).toBeDefined();
-  });
-
-  it('should listen for actions', function() {
-    spyOn(this.panel, 'onPanelVisible');
-    spyOn(this.panel, 'onConfigUpdated');
-    this.eventEmitter.publish('bookmarkPanelVisible');
-    this.eventEmitter.publish('saveControllerConfigUpdated');
-    expect(this.panel.onPanelVisible).toHaveBeenCalled();
-    expect(this.panel.onConfigUpdated).toHaveBeenCalled();
-  });
-
-  it('should know how to show itself', function() {
-    spyOn(this.panel, 'hide');
-    spyOn(this.panel, 'show');
-
-    this.panel.onPanelVisible(null, true);
-    expect(this.panel.show).toHaveBeenCalled();
-    expect(this.panel.hide).not.toHaveBeenCalled();
-  });
-
-  it('should know how to hide itself', function() {
-    spyOn(this.panel, 'hide');
-    spyOn(this.panel, 'show');
-
-    this.panel.onPanelVisible(null, false);
-    expect(this.panel.show).not.toHaveBeenCalled();
-    expect(this.panel.hide).toHaveBeenCalled();
-  });
-
-  it('should update the share url when the saveController config is updated', function() {
-    var shareUrl,
-        blobId = "123abc",
-        dfd = jQuery.Deferred(),
-        storageModuleMock = {
-          save: function(config) {
-            return dfd.promise();
-          }
-        },
-        urlBar = this.viewerDiv.find('#share-url');
-
-    this.panel.storageModule = storageModuleMock;
-    this.panel.onConfigUpdated();
-    dfd.resolve(blobId).then(function() {
-      shareUrl = urlBar.val();
-      expect(shareUrl).toBeDefined();
-      expect(shareUrl).toContain("?json="+blobId);
-    }); // place the test runs at the end of the promise chain.
-  });
-  
-  it('should show itself', function() {
-    spyOn(jQuery.fn, 'show').and.callThrough();
-    this.panel.show();
-    expect(jQuery.fn.show).toHaveBeenCalled();
-  });
-  
-  it('should hide itself', function() {
-    spyOn(jQuery.fn, 'hide').and.callThrough();
-    this.panel.hide();
-    expect(jQuery.fn.hide).toHaveBeenCalled();
-  });
-});
diff --git a/spec/viewer/collectionTreeManifestsPanel.test.js b/spec/viewer/collectionTreeManifestsPanel.test.js
deleted file mode 100644
index dbc93b247d02ab70d5e05215bedaa4c569127b78..0000000000000000000000000000000000000000
--- a/spec/viewer/collectionTreeManifestsPanel.test.js
+++ /dev/null
@@ -1,501 +0,0 @@
-describe('CollectionTreeManifestsPanel', function() {
-  beforeEach(function() {
-    jasmine.getJSONFixtures().fixturesPath = 'spec/fixtures';
-    this.dummyManifestContent = getJSONFixture('dummyManifest.json');
-    this.viewerDiv = jQuery('<div>');
-    this.eventEmitter = new Mirador.EventEmitter();
-    this.panel = new Mirador.CollectionTreeManifestsPanel({
-      appendTo: this.viewerDiv,
-      state: new Mirador.SaveController({eventEmitter: this.eventEmitter}),
-      eventEmitter: this.eventEmitter
-    })
-  });
-
-  it('should initialize itself', function() {
-    expect(this.panel).toBeDefined();
-  });
-
-  it('should listen for actions', function() {
-    var manifest = new Mirador.Manifest(null, 'Dummy Location', this.dummyManifestContent);
-    var collection = new Mirador.Collection(null, 'Dummy Location', {
-      "@context": "http://iiif.io/api/presentation/2/context.json",
-      "@id": "http://example.org/iiif/collection/top",
-      "@type": "sc:Collection",
-      "label": "Top Level Collection for Example Organization"
-    });
-    spyOn(this.panel, 'onPanelVisible');
-    spyOn(this.panel, 'onManifestReceived');
-    spyOn(this.panel, 'onCollectionReceived');
-    spyOn(this.panel, 'addObjectFromUrl');
-    spyOn(this.panel, 'addCollectionFromUrl');
-    this.eventEmitter.publish('manifestsPanelVisible.set');
-    this.eventEmitter.publish('manifestReceived', manifest);
-    this.eventEmitter.publish('collectionReceived', collection);
-    this.eventEmitter.publish('ADD_OBJECT_FROM_URL', [collection.uri, 'Dummy Location']);
-    this.eventEmitter.publish('ADD_COLLECTION_FROM_URL', [collection.uri, 'Dummy Location']);
-    expect(this.panel.onPanelVisible).toHaveBeenCalled();
-    expect(this.panel.onManifestReceived).toHaveBeenCalled();
-    expect(this.panel.onCollectionReceived).toHaveBeenCalled();
-    expect(this.panel.addObjectFromUrl).toHaveBeenCalled();
-    expect(this.panel.addCollectionFromUrl).toHaveBeenCalled();
-  });
-  
-  it('should bind events', function() {
-    var element = this.panel.element;
-    
-    spyOn(this.panel, 'addObjectUrl');
-    element.find('form#url-load-form').trigger('submit');
-    expect(this.panel.addObjectUrl).toHaveBeenCalled();
-    
-    spyOn(this.panel, 'togglePanel');
-    element.find('.remove-object-option').trigger('click');
-    expect(this.panel.togglePanel).toHaveBeenCalled();
-    
-    spyOn(this.panel, 'filterManifests');
-    element.find('#manifest-search').trigger('keyup');
-    expect(this.panel.filterManifests).toHaveBeenCalled();
-    
-    spyOn(jQuery.Event.prototype, 'preventDefault').and.callThrough();
-    expect(jQuery.Event.prototype.preventDefault).not.toHaveBeenCalled();
-    element.find('#manifest-search-form').submit();
-    expect(jQuery.Event.prototype.preventDefault).toHaveBeenCalled();
-    
-    spyOn(this.panel, 'resizePanel');
-    jQuery(window).trigger('resize');
-    expect(this.panel.resizePanel).toHaveBeenCalled();
-  });
-  
-  ['hide', 'show'].forEach(function(action) {
-    it('should ' + action, function() {
-      spyOn(jQuery.fn, action);
-      this.panel[action]();
-      expect(jQuery.fn[action]).toHaveBeenCalled();
-    });
-  });
-
-  it('should add manifest from url', function() {
-    spyOn(this.eventEmitter, 'publish');
-    var url = "http://example.com/manifest.json";
-    this.panel.addManifestUrl(url);
-    expect(this.eventEmitter.publish).toHaveBeenCalledWith('ADD_MANIFEST_FROM_URL', [url, "(Added from URL)"]);
-  });
-  
-  it('should add object from url', function() {
-    spyOn(this.eventEmitter, 'publish');
-    var url = "http://example.com/manifest.json";
-    this.panel.addObjectUrl(url);
-    expect(this.eventEmitter.publish).toHaveBeenCalledWith('ADD_OBJECT_FROM_URL', [url, "(Added from URL)"]);
-  });
-  
-  it('should toggle load window', function() {
-    spyOn(this.eventEmitter, 'publish');
-    this.panel.togglePanel();
-    expect(this.eventEmitter.publish).toHaveBeenCalledWith('TOGGLE_LOAD_WINDOW');
-  });
-  
-  it('should filter manifests', function() {
-    var manifest = new Mirador.Manifest(null, 'Dummy Location', this.dummyManifestContent);
-    var searchText = this.dummyManifestContent.label
-    var item = null;
-
-    this.panel.onManifestReceived(null, manifest);
-    expect(this.panel.manifestListItems.length).toBe(0);
-    
-    this.panel.expectedThings.push(manifest.uri);
-    this.panel.onManifestReceived(null, manifest);
-    expect(this.panel.manifestListItems.length).toBe(1);
-    
-    item = this.panel.element.find('.items-listing li:first');
-    expect(item.length).toBe(1);
-
-    this.panel.filterManifests(searchText);
-    expect(item.css('display')).not.toBe('none');
-    
-    this.panel.filterManifests("XXX");
-    expect(item.css('display')).toBe('none');
-    
-    this.panel.filterManifests("");
-    expect(item.css('display')).not.toBe('none');
-  });
-  
-  it('should set panel visibility', function() {
-    spyOn(this.panel, 'show');
-    spyOn(this.panel, 'hide');
-
-    this.panel.onPanelVisible(null, true);
-    expect(this.panel.show).toHaveBeenCalled();
-    expect(this.panel.hide).not.toHaveBeenCalled();
-    
-    this.panel.show.calls.reset();
-    this.panel.hide.calls.reset();
-
-    this.panel.onPanelVisible(null, false);
-    expect(this.panel.show).not.toHaveBeenCalled();
-    expect(this.panel.hide).toHaveBeenCalled();
-  });
-  
-  it('should resize', function() {
-    spyOn(this.eventEmitter, 'publish');
-    this.panel.resizePanel();
-    expect(this.eventEmitter.publish).toHaveBeenCalledWith('manifestPanelWidthChanged', this.panel.resultsWidth);
-  });
-  
-  it('should not respond to non-expected manifests', function() {
-    var manifest = new Mirador.Manifest(null, 'Dummy Location', this.dummyManifestContent);
-    expect(this.panel.manifestListItems.length).toBe(0);
-    this.panel.onManifestReceived(null, manifest);
-    expect(this.panel.manifestListItems.length).toBe(0);
-  });
-  
-  it('should receive a new manifest when expected', function() {
-    var manifest = new Mirador.Manifest(null, 'Dummy Location', this.dummyManifestContent);
-    expect(this.panel.manifestListItems.length).toBe(0);
-    this.panel.expectedThings.push(manifest.uri);
-    this.panel.onManifestReceived(null, manifest);
-    expect(this.panel.manifestListItems.length).toBe(1);
-  });
-  
-  it('should receive drops in the My Objects folder', function() {
-    expect(this.panel.userManifests).not.toContain('http://www.example.org/manifest.json');
-    this.eventEmitter.publish('ADD_MANIFEST_FROM_URL', 'http://www.example.org/manifest.json');
-    expect(this.panel.userManifests).toContain('http://www.example.org/manifest.json');
-  });
-
-  it('should clear itself', function() {
-    var manifest = new Mirador.Manifest(null, 'Dummy Location', this.dummyManifestContent);
-    expect(this.panel.manifestListItems.length).toBe(0);
-    this.panel.expectedThings.push(manifest.uri);
-    this.panel.onManifestReceived(null, manifest);
-    expect(this.panel.manifestListItems.length).toBe(1);
-    this.panel.clearManifestItems();
-    expect(this.panel.manifestListItems.length).toBe(0);
-    expect(this.panel.element.find('.items-listing li').length).toBe(0);
-  });
-  
-  describe('Folder changes', function() {
-    beforeEach(function() {
-      this.panel.preloadedManifests = ['http://www.example.org/foo.json', 'http://www.example.org/bar.json'];
-      this.panel.userManifests = ['http://www.example.org/waa.json', 'http://www.example.org/hoo.json'];
-    });
-    
-    it('should cleanly change to preloads', function() {
-      this.panel.changeNode({ id: 'preload' });
-      expect(this.panel.expectedThings).toContain('http://www.example.org/foo.json');
-      expect(this.panel.expectedThings).toContain('http://www.example.org/bar.json');
-      expect(this.panel.expectedThings).not.toContain('http://www.example.org/waa.json');
-      expect(this.panel.expectedThings).not.toContain('http://www.example.org/hoo.json');
-    });
-
-    it('should cleanly change to my objects', function() {
-      this.panel.changeNode({ id: 'user' });
-      expect(this.panel.expectedThings).not.toContain('http://www.example.org/foo.json');
-      expect(this.panel.expectedThings).not.toContain('http://www.example.org/bar.json');
-      expect(this.panel.expectedThings).toContain('http://www.example.org/waa.json');
-      expect(this.panel.expectedThings).toContain('http://www.example.org/hoo.json');
-    });
-    
-    it('should cleanly change to a loaded collection', function() {
-      this.panel.nodeManifests['foo'] = ['http://www.example.org/coo.json'];
-      this.panel.changeNode({ id: 'foo' });
-      expect(this.panel.expectedThings).toContain('http://www.example.org/coo.json');
-    });
-  });
-  
-  describe('Expanding nodes', function() {
-    it('should expand subcollection URLs', function() {
-      spyOn(this.panel, 'updateCollectionFromUrl');
-      this.panel.nodeCollections['abc'] = ['http://www.example.org/foo.json', 'http://www.example.org/bar.json'];
-      this.panel.expandNode({ id: 'abc' });
-      expect(this.panel.updateCollectionFromUrl).toHaveBeenCalledWith('http://www.example.org/foo.json', 'abc');
-      expect(this.panel.updateCollectionFromUrl).toHaveBeenCalledWith('http://www.example.org/bar.json', 'abc');
-    });
-  });
-  
-  describe('Adding manifests from URL', function() {
-    it('should grab cached manifests from the state manager and add it right away', function() {
-      var manifest = new Mirador.Manifest(this.dummyManifestContent['@id'], 'Dummy Location', this.dummyManifestContent);
-      this.panel.eventEmitter.publish('manifestQueued', manifest, '');
-      expect(this.panel.manifestListItems.length).toBe(0);
-      this.panel.addManifestFromUrl(manifest.uri);
-      expect(this.panel.manifestListItems.length).toBe(1);
-    });
-    it('should grab new manifests from the source and not add it just yet', function() {
-      var manifest = new Mirador.Manifest(this.dummyManifestContent['@id'], 'Dummy Location', this.dummyManifestContent);
-      expect(this.panel.manifestListItems.length).toBe(0);
-      this.panel.addManifestFromUrl(manifest.uri);
-      expect(this.panel.manifestListItems.length).toBe(0);
-    });
-  });
-  
-  describe('Adding collections from URL', function() {
-    var dummyCollection;
-    beforeEach(function() {
-      dummyCollection = new Mirador.Collection("http://example.org/iiif/collection/top", 'Dummy Location', {
-        "@context": "http://iiif.io/api/presentation/2/context.json",
-        "@id": "http://example.org/iiif/collection/top",
-        "@type": "sc:Collection",
-        "label": "Top Level Collection for Example Organization",
-        "collections": [
-          {
-            "@id": "http://example.org/iiif/collection/part2",
-            "@type": "sc:Collection",
-            "label": "Sub Collection 2"
-          }
-        ]
-      });
-      spyOn(this.panel, 'addCollectionNode').and.returnValue('qqqq');
-    });
-    it('should grab cached collectionss from the state manager and add it right away', function() {
-      this.panel.eventEmitter.publish('manifestQueued', dummyCollection, '');
-      expect(this.panel.addCollectionNode).not.toHaveBeenCalled();
-      this.panel.addCollectionFromUrl(dummyCollection.uri);
-      expect(this.panel.addCollectionNode).toHaveBeenCalled();
-    });
-    it('should grab new manifests from the source and not add it just yet', function() {
-      expect(this.panel.addCollectionNode).not.toHaveBeenCalled();
-      this.panel.addCollectionFromUrl(dummyCollection.uri);
-      expect(this.panel.addCollectionNode).not.toHaveBeenCalled();
-    });
-    it('should also jump to the node if the jumpToIt parameter is set', function() {
-      spyOn(jQuery.fn, 'jstree');
-      this.panel.eventEmitter.publish('manifestQueued', dummyCollection, '');
-      expect(this.panel.addCollectionNode).not.toHaveBeenCalled();
-      this.panel.addCollectionFromUrl(dummyCollection.uri, null, true);
-      expect(this.panel.addCollectionNode).toHaveBeenCalled();
-      expect(jQuery.fn.jstree).toHaveBeenCalledWith('deselect_all');
-      expect(jQuery.fn.jstree).toHaveBeenCalledWith('select_node', 'qqqq');
-      expect(jQuery.fn.jstree).toHaveBeenCalledWith('open_node', 'qqqq');
-    });
-    it('should add to the top-level only once per URI', function() {
-      this.panel.eventEmitter.publish('manifestQueued', dummyCollection, '');
-      expect(this.panel.addCollectionNode).not.toHaveBeenCalled();
-      this.panel.addCollectionFromUrl(dummyCollection.uri, null);
-      expect(this.panel.addCollectionNode).toHaveBeenCalled();
-      this.panel.addCollectionNode.calls.reset();
-      this.panel.addCollectionFromUrl(dummyCollection.uri, null);
-      expect(this.panel.addCollectionNode).not.toHaveBeenCalled();
-    });
-  });
-  
-  describe('Updating collections from URL', function() {
-    var dummyCollection;
-    beforeEach(function() {
-      dummyCollection = new Mirador.Collection("http://example.org/iiif/collection/top", 'Dummy Location', {
-        "@context": "http://iiif.io/api/presentation/2/context.json",
-        "@id": "http://example.org/iiif/collection/top",
-        "@type": "sc:Collection",
-        "label": "Top Level Collection for Example Organization"
-      });
-      spyOn(this.panel, 'updateCollectionNode');
-    });
-    it('should grab cached collectionss from the state manager and update it right away', function() {
-      this.panel.eventEmitter.publish('manifestQueued', dummyCollection, '');
-      expect(this.panel.updateCollectionNode).not.toHaveBeenCalled();
-      this.panel.updateCollectionFromUrl(dummyCollection.uri);
-      expect(this.panel.updateCollectionNode).toHaveBeenCalled();
-    });
-    it('should grab new manifests from the source and not updated it just yet', function() {
-      expect(this.panel.updateCollectionNode).not.toHaveBeenCalled();
-      this.panel.updateCollectionFromUrl(dummyCollection.uri);
-      expect(this.panel.updateCollectionNode).not.toHaveBeenCalled();
-    });
-  });
-  
-  describe('Receiving good collections', function() {
-    var collection;
-    beforeEach(function() {
-      collection = new Mirador.Collection(null, 'Dummy Location', {
-        "@context": "http://iiif.io/api/presentation/2/context.json",
-        "@id": "http://example.org/iiif/collection/top",
-        "@type": "sc:Collection",
-        "label": "Top Level Collection for Example Organization"
-      });
-      spyOn(this.panel, 'addCollectionNode');
-      spyOn(this.panel, 'updateCollectionNode');
-    });
-    it('should defer if the tree is not ready', function() {
-      this.panel.treeQueue = [];
-      this.panel.eventEmitter.publish('collectionReceived', [collection, collection.uri, null]);
-      expect(this.panel.treeQueue[0].length).toEqual(4);
-      expect(this.panel.addCollectionNode).not.toHaveBeenCalled();
-      expect(this.panel.updateCollectionNode).not.toHaveBeenCalled();
-    });
-    it('should add a new node if no parent node ID is specified', function() {
-      delete this.panel.treeQueue;
-      this.panel.eventEmitter.publish('collectionReceived', [collection, collection.uri, null]);
-      expect(this.panel.addCollectionNode).toHaveBeenCalled();
-      expect(this.panel.updateCollectionNode).not.toHaveBeenCalled();
-    });
-    it('should update under an existing node if a parent node ID is specified', function() {
-      delete this.panel.treeQueue;
-      this.panel.eventEmitter.publish('collectionReceived', [collection, collection.uri, 'dummyNode']);
-      expect(this.panel.addCollectionNode).not.toHaveBeenCalled();
-      expect(this.panel.updateCollectionNode).toHaveBeenCalled();
-    });
-  });
-  
-  describe('Receiving failed collections', function() {
-    beforeEach(function() {
-      spyOn(jQuery.fn, 'jstree');
-    });
-    it('should defer if the tree is not ready', function() {
-      this.panel.treeQueue = [];
-      this.panel.eventEmitter.publish('collectionNotReceived', ['foo', null]);
-      expect(jQuery.fn.jstree).not.toHaveBeenCalled();
-    });
-    it('mark all nodes of this URI as defective', function() {
-      delete this.panel.treeQueue;
-      this.panel.registerNodeIdUriPair('nodeId', 'foo');
-      this.panel.eventEmitter.publish('collectionNotReceived', ['foo', 'nodeId']);
-      expect(jQuery.fn.jstree).toHaveBeenCalledWith('set_icon', 'nodeId', 'fa fa-ban');
-      expect(jQuery.fn.jstree).toHaveBeenCalledWith('disable_node', 'nodeId');
-    });
-  });
-  
-  describe('Registering nodeID-URI pairings', function() {
-    it('should register a URI once successfully', function() {
-      this.panel.registerNodeIdUriPair('nodeId', 'http://www.foo.net/stuff.json');
-      expect(this.panel.nodeIdToUri['nodeId']).toEqual('http://www.foo.net/stuff.json');
-      expect(this.panel.uriToNodeId['http://www.foo.net/stuff.json']).toEqual(['nodeId']);
-    });
-    it('should register a URI twice successfully', function() {
-      this.panel.registerNodeIdUriPair('nodeId', 'http://www.foo.net/stuff.json');
-      this.panel.registerNodeIdUriPair('nodeId2', 'http://www.foo.net/stuff.json');
-      expect(this.panel.nodeIdToUri['nodeId']).toEqual('http://www.foo.net/stuff.json');
-      expect(this.panel.nodeIdToUri['nodeId2']).toEqual('http://www.foo.net/stuff.json');
-      expect(this.panel.uriToNodeId['http://www.foo.net/stuff.json']).toEqual(['nodeId', 'nodeId2']);
-    });
-  });
-  
-  describe('Adding nodes', function() {
-    var collection;
-    beforeEach(function() {
-      collection = new Mirador.Collection("http://example.org/iiif/collection/top", null, {
-        "@context": "http://iiif.io/api/presentation/2/context.json",
-        "@id": "http://example.org/iiif/collection/top",
-        "@type": "sc:Collection",
-        "label": "Top Level Collection for Example Organization",
-        "collections": [
-          {
-            "@id": "http://example.org/iiif/collection/part2",
-            "@type": "sc:Collection",
-            "label": "Sub Collection 2"
-          }
-        ],
-        "manifests": [
-          {
-            "@id": "http://example.org/iiif/book1/manifest",
-            "@type": "sc:Manifest",
-            "label": "Book 1"
-          },
-          {
-            "@id": "http://example.org/iiif/book2/manifest",
-            "@type": "sc:Manifest",
-            "label": "Book 2"
-          }
-        ],
-      });
-    });
-    it('should add unexpanded nodes', function() {
-      var newNodeId = this.panel.addCollectionNode(null, collection, true);
-      expect(newNodeId).not.toBeUndefined();
-      expect(this.panel.nodeCollections[newNodeId]).toEqual(["http://example.org/iiif/collection/part2"]);
-      expect(this.panel.nodeManifests[newNodeId]).toEqual(["http://example.org/iiif/book1/manifest", "http://example.org/iiif/book2/manifest"]);
-      expect(this.panel.nodeChildren[newNodeId]).toEqual([]);
-    });
-    it('should add expanded nodes', function() {
-      var newNodeId = this.panel.addCollectionNode(null, collection);
-      expect(newNodeId).not.toBeUndefined();
-      expect(this.panel.nodeCollections[newNodeId]).toEqual(["http://example.org/iiif/collection/part2"]);
-      expect(this.panel.nodeManifests[newNodeId]).toEqual(["http://example.org/iiif/book1/manifest", "http://example.org/iiif/book2/manifest"]);
-      expect(this.panel.nodeChildren[newNodeId].length).toEqual(1);
-    });
-  });
-  
-  describe('Updating nodes', function() {
-    var collection;
-    beforeEach(function() {
-      spyOn(this.panel, 'addCollectionNode');
-      spyOn(jQuery.fn, 'jstree');
-      collection = new Mirador.Collection("http://example.org/iiif/collection/top", null, {
-        "@context": "http://iiif.io/api/presentation/2/context.json",
-        "@id": "http://example.org/iiif/collection/top",
-        "@type": "sc:Collection",
-        "label": "Top Level Collection for Example Organization",
-        "collections": [
-          {
-            "@id": "http://example.org/iiif/collection/part2",
-            "@type": "sc:Collection",
-            "label": "Sub Collection 2"
-          }
-        ],
-        "manifests": [
-          {
-            "@id": "http://example.org/iiif/book1/manifest",
-            "@type": "sc:Manifest",
-            "label": "Book 1"
-          },
-          {
-            "@id": "http://example.org/iiif/book2/manifest",
-            "@type": "sc:Manifest",
-            "label": "Book 2"
-          }
-        ],
-      });
-    });
-    it('should update information', function() {
-      this.panel.registerNodeIdUriPair('junk', "http://example.org/iiif/collection/supertop");
-      this.panel.nodeCollections['junk'] = "http://example.org/iiif/collection/top";
-      this.panel.registerNodeIdUriPair('abc', "http://example.org/iiif/collection/top");
-      this.panel.nodeChildren['junk'] = ['abc'];
-      this.panel.unexpandedNodes['abc'] = true;
-      
-      this.panel.updateCollectionNode('junk', collection);
-      expect(this.panel.nodeCollections['abc']).toEqual(["http://example.org/iiif/collection/part2"]);
-      expect(this.panel.nodeManifests['abc']).toEqual(["http://example.org/iiif/book1/manifest", "http://example.org/iiif/book2/manifest"]);
-      expect(this.panel.nodeChildren['abc'].length).toEqual(1);
-    });
-  });
-  
-  describe('Adding objects from URL', function() {
-    var manifest, collection, responseValue;
-    beforeEach(function() {
-      manifest = new Mirador.Manifest(this.dummyManifestContent['@id'], 'Dummy Location', this.dummyManifestContent);
-      collection = new Mirador.Collection("http://example.org/iiif/collection/top", 'Dummy Location', {
-        "@context": "http://iiif.io/api/presentation/2/context.json",
-        "@id": "http://example.org/iiif/collection/top",
-        "@type": "sc:Collection",
-        "label": "Top Level Collection for Example Organization"
-      });
-      spyOn(jQuery, 'ajax').and.callFake(function(args) {
-        args.success(responseValue);
-      });
-    });
-    it('should add loaded collections', function() {
-      this.panel.eventEmitter.publish('manifestQueued', collection, '');
-      spyOn(this.panel.eventEmitter, 'publish');
-      this.panel.addObjectFromUrl(collection.uri, "From Foo");
-      expect(this.panel.eventEmitter.publish).toHaveBeenCalledWith('ADD_COLLECTION_FROM_URL', [collection.uri, "From Foo"]);
-    });
-    it('should add loaded manifests', function() {
-      this.panel.eventEmitter.publish('manifestQueued', manifest, '');
-      spyOn(this.panel.eventEmitter, 'publish');
-      this.panel.addObjectFromUrl(manifest.uri, "From Foo");
-      expect(this.panel.eventEmitter.publish).toHaveBeenCalledWith('ADD_MANIFEST_FROM_URL', [manifest.uri, "From Foo"]);
-    });
-    it('should add new collections', function() {
-      spyOn(this.panel.eventEmitter, 'publish');
-      responseValue = collection.jsonLd;
-      this.panel.addObjectFromUrl(collection.uri, "From Foo");
-      expect(this.panel.eventEmitter.publish).toHaveBeenCalledWith('manifestQueued', jasmine.any(Object), '');
-      expect(this.panel.eventEmitter.publish).toHaveBeenCalledWith('ADD_COLLECTION_FROM_URL', [collection.uri, "From Foo"]);
-    });
-    it('should add new manifests', function() {
-      spyOn(this.panel.eventEmitter, 'publish');
-      responseValue = manifest.jsonLd;
-      this.panel.addObjectFromUrl(manifest.uri, "From Foo");
-      expect(this.panel.eventEmitter.publish).toHaveBeenCalledWith('manifestQueued', jasmine.any(Object), '');
-      expect(this.panel.eventEmitter.publish).toHaveBeenCalledWith('ADD_MANIFEST_FROM_URL', [manifest.uri, "From Foo"]);
-    });
-  });
-});
diff --git a/spec/viewer/mainMenu.js b/spec/viewer/mainMenu.js
deleted file mode 100644
index e08e68fe764b003943a303e165cdee3e83cbdbcd..0000000000000000000000000000000000000000
--- a/spec/viewer/mainMenu.js
+++ /dev/null
@@ -1,148 +0,0 @@
-describe('MainMenu', function () {
-
-  describe('default configuration', function() {
-    beforeEach(function() {
-
-      //register Handlebars helper
-      Handlebars.registerHelper('t', function(i18n_key) {
-        var result = i18next.t(i18n_key);
-        return new Handlebars.SafeString(result);
-      });
-
-      var mainMenuSettings = {
-        'buttons' : {
-          'bookmark' : true,
-          'layout' : true,
-          'options' : false,
-          'fullScreenViewer': true
-        }
-      };
-
-      this.eventEmitter = new Mirador.EventEmitter();
-      this.viewerDiv = jQuery('<div>');
-      this.mainMenu = new Mirador.MainMenu({
-        state: new Mirador.SaveController({"mainMenuSettings": mainMenuSettings, eventEmitter:this.eventEmitter}),
-        eventEmitter: this.eventEmitter,
-        appendTo: this.viewerDiv,
-        mainMenuBarCls:             'menu-bar',
-      });
-
-    });
-
-    // Tests rendering
-    it('properly renders the template', function () {
-      expect(this.viewerDiv.find('.bookmark-workspace')).toExist();
-      expect(this.viewerDiv.find('.change-layout')).toExist();
-      expect(this.viewerDiv.find('.fullscreen-viewer')).toExist();
-      expect(this.mainMenu.element).toHaveClass('menu-bar');
-    });
-
-    // Tests events handling
-    var menu_invocations = [
-      {'name': 'bookmark', 'selector': '.bookmark-workspace', 'event': 'TOGGLE_BOOKMARK_PANEL'},
-      {'name': 'layout', 'selector': '.change-layout', 'event': 'TOGGLE_WORKSPACE_PANEL'},
-      {'name': 'fullscreen', 'selector': '.fullscreen-viewer', 'event': 'TOGGLE_FULLSCREEN'}
-    ];
-    menu_invocations.forEach(function(test) {
-      it("can detect clicking " + test.name + " and publishes event", function() {
-        spyOn(this.eventEmitter, 'publish');
-        this.viewerDiv.find(test.selector).trigger('click');
-        expect(this.eventEmitter.publish).toHaveBeenCalledWith(test.event);
-      });
-    });
-
-  });
-
-  describe('toggling behaviour', function() {
-
-    beforeEach(function() {
-      var mainMenuSettings = {
-        'buttons' : {
-          'bookmark' : true,
-          'layout' : false,
-          'options' : false
-        }
-      };
-      this.viewerDiv = jQuery('<div>');
-      this.eventEmitter = new Mirador.EventEmitter();
-      this.mainMenu = new Mirador.MainMenu({
-        state: new Mirador.SaveController({"mainMenuSettings": mainMenuSettings, eventEmitter: this.eventEmitter}),
-        eventEmitter: this.eventEmitter,
-        appendTo: this.viewerDiv,
-        mainMenuBarCls:             'menu-bar',
-      });
-    });
-
-    it("doesn't render useless elements", function () {
-      expect(this.viewerDiv.find('.change-layout')).not.toExist();
-    });
-
-    // test other options?
-
-  });
-
-  describe('user buttons/logo', function () {
-    beforeEach(function () {
-
-      spyOn(console, 'log');
-      var mainMenuSettings = {
-        /* Setup will fail without 'buttons' */
-        'buttons' : {
-          'bookmark' : true,
-          'layout' : false,
-          'options' : false
-        },
-        "userButtons": [
-          /* Ordinary link */
-          { "label": "Link",
-            "attributes": {
-              "href": "http://example.com",
-              "id":   "test-button"
-            }
-          },
-          /* Sublists */
-          {"label": "Sublist",
-           "attributes": {"id": "sublist"},
-           "sublist": [
-             {"label": "One",
-              "attributes": {"id": "sl-one"}},
-             {"label": "Two",
-              "attributes": {"id": "sl-two"}}]
-          }
-        ],
-        "userLogo": {
-          "label": "Logo",
-          "attributes": {"id": "logo"}
-        }
-      };
-
-      this.viewerDiv = jQuery('<div>');
-      this.eventEmitter = new Mirador.EventEmitter();
-      this.mainMenu = new Mirador.MainMenu({
-        state: new Mirador.SaveController({"mainMenuSettings": mainMenuSettings, eventEmitter: this.eventEmitter}),
-        eventEmitter: this.eventEmitter,
-        appendTo:       this.viewerDiv,
-        mainMenuBarCls: 'menu-bar'
-      });
-    });
-
-    it('creates regular buttons', function () {
-      var button = this.viewerDiv.find('ul.user-buttons > li > a#test-button');
-      expect(button).toExist;
-      expect(button.text()).toBe("Link");
-      expect(button.attr('href')).toBe("http://example.com");
-      expect(button.attr('id')).toBe('test-button');
-    });
-
-    it('creates sublists', function () {
-      expect(this.viewerDiv.find('ul.user-buttons > li > #sublist')).toExist();
-      expect(this.viewerDiv.find('ul.user-buttons > li > #sublist + ul > li > #sl-one')).toExist();
-      expect(this.viewerDiv.find('ul.user-buttons > li > #sublist + ul > li > #sl-two')).toExist();
-    });
-
-    it('creates userLogo', function () {
-      expect(this.viewerDiv.find('ul.user-logo > li > a#logo').text()).toBe('Logo');
-    });
-  });
-
-});
diff --git a/spec/viewer/manifestListItem.test.js b/spec/viewer/manifestListItem.test.js
deleted file mode 100644
index 6a00a813c66dfcc347b939ffb91c5c9bafe6bc60..0000000000000000000000000000000000000000
--- a/spec/viewer/manifestListItem.test.js
+++ /dev/null
@@ -1,225 +0,0 @@
-describe('ManifestListItem', function () {
-
-  beforeEach(function() {
-    this.eventEmitter = new Mirador.EventEmitter();
-    jasmine.getJSONFixtures().fixturesPath = 'spec/fixtures';
-    this.dummyManifestContent = getJSONFixture('dummyManifest.json');
-    this.manifest = new Mirador.Manifest(null, 'Dummy Location', this.dummyManifestContent);
-    this.appendTo = jQuery('<ul>'+
-      '<li data-index-number="-1"></li>'+
-      '<li data-index-number="1"></li>'+
-      '<li data-index-number="5"></li>'+
-      '<li data-index-number="8"></li>'+
-      '<li data-index-number="13"></li>'+
-      '<li data-index-number="14"></li>'+
-      '<li data-index-number="16"></li>'+
-      '</ul>');
-  });
-
-  it('insert index 0', function() {
-    var listItem = new Mirador.ManifestListItem({
-      appendTo: this.appendTo,
-      state: new Mirador.SaveController({
-        eventEmitter:this.eventEmitter,
-        preserveManifestOrder: true,
-        data: [
-          { "manifestUri": "http://www.example.org/iiif/book1/manifest"},
-          { "manifestUri": "http://www.example.org/iiif/book2/manifest"},
-          { "manifestUri": "http://www.example.org/iiif/book3/manifest"}
-        ]
-      }),
-      eventEmitter: this.eventEmitter,
-      resultsWidth: 500,
-      manifest: this.manifest
-    });
-
-    var html = jQuery.parseHTML(this.appendTo[0].outerHTML);
-    var testImage = jQuery(html).find('li[data-index-number="0"] img');
-
-    var ids = [];
-    jQuery(html).find('li').each(function(i, el){
-      ids.push(jQuery(this).data('index-number'));
-    });
-
-    expect(ids).toEqual([-1, 0, 1, 5, 8, 13, 14, 16]);
-    expect(testImage).toHaveData('image-id', 'http://www.example.org/iiif/book1/canvas/p1');
-
-  });
-
-  it('insert index 2', function() {
-    var listItem = new Mirador.ManifestListItem({
-      appendTo: this.appendTo,
-      state: new Mirador.SaveController({
-        eventEmitter:this.eventEmitter,
-        preserveManifestOrder: true,
-        data: [
-          { "manifestUri": "http://www.example.org/iiif/book2/manifest"},
-          { "manifestUri": "http://www.example.org/iiif/book3/manifest"},
-          { "manifestUri": "http://www.example.org/iiif/book1/manifest"}
-        ]
-      }),
-      eventEmitter: this.eventEmitter,
-      resultsWidth: 500,
-      manifest: this.manifest
-    });
-
-    var html = jQuery.parseHTML(this.appendTo[0].outerHTML);
-    var testImage = jQuery(html).find('li[data-index-number="2"] img');
-    var ids = [];
-    jQuery(html).find('li').each(function(i, el){
-      ids.push(jQuery(this).data('index-number'));
-    });
-
-    expect(ids).toEqual([-1, 1, 2, 5, 8, 13, 14, 16]);
-    expect(testImage).toHaveData('image-id', 'http://www.example.org/iiif/book1/canvas/p1');
-
-  });
-
-  it('insert index 6', function() {
-    var listItem = new Mirador.ManifestListItem({
-      appendTo: this.appendTo,
-      state: new Mirador.SaveController({
-        eventEmitter:this.eventEmitter,
-        preserveManifestOrder: true,
-        data: [
-          { "manifestUri": "http://www.example.org/iiif/book2/manifest"},
-          { "manifestUri": "http://www.example.org/iiif/book3/manifest"},
-          { "manifestUri": "http://www.example.org/iiif/book4/manifest"},
-          { "manifestUri": "http://www.example.org/iiif/book5/manifest"},
-          { "manifestUri": "http://www.example.org/iiif/book6/manifest"},
-          { "manifestUri": "http://www.example.org/iiif/book7/manifest"},
-          { "manifestUri": "http://www.example.org/iiif/book1/manifest"}
-        ]
-      }),
-      eventEmitter: this.eventEmitter,
-      resultsWidth: 500,
-      manifest: this.manifest
-    });
-
-    var html = jQuery.parseHTML(this.appendTo[0].outerHTML);
-    var testImage = jQuery(html).find('li[data-index-number="6"] img');
-    var ids = [];
-    jQuery(html).find('li').each(function(i, el){
-      ids.push(jQuery(this).data('index-number'));
-    });
-
-    expect(ids).toEqual([-1, 1, 5, 6, 8, 13, 14, 16]);
-    expect(testImage).toHaveData('image-id', 'http://www.example.org/iiif/book1/canvas/p1');
-
-  });
-
-  it('insert index 17', function() {
-    var listItem = new Mirador.ManifestListItem({
-      appendTo: this.appendTo,
-      state: new Mirador.SaveController({
-        eventEmitter:this.eventEmitter,
-        preserveManifestOrder: true,
-        data: [
-          { "manifestUri": "http://www.example.org/iiif/book2/manifest"},
-          { "manifestUri": "http://www.example.org/iiif/book3/manifest"},
-          { "manifestUri": "http://www.example.org/iiif/book4/manifest"},
-          { "manifestUri": "http://www.example.org/iiif/book5/manifest"},
-          { "manifestUri": "http://www.example.org/iiif/book6/manifest"},
-          { "manifestUri": "http://www.example.org/iiif/book7/manifest"},
-          { "manifestUri": "http://www.example.org/iiif/book8/manifest"},
-          { "manifestUri": "http://www.example.org/iiif/book9/manifest"},
-          { "manifestUri": "http://www.example.org/iiif/book10/manifest"},
-          { "manifestUri": "http://www.example.org/iiif/book11/manifest"},
-          { "manifestUri": "http://www.example.org/iiif/book12/manifest"},
-          { "manifestUri": "http://www.example.org/iiif/book13/manifest"},
-          { "manifestUri": "http://www.example.org/iiif/book14/manifest"},
-          { "manifestUri": "http://www.example.org/iiif/book15/manifest"},
-          { "manifestUri": "http://www.example.org/iiif/book16/manifest"},
-          { "manifestUri": "http://www.example.org/iiif/book17/manifest"},
-          { "manifestUri": "http://www.example.org/iiif/book18/manifest"},
-          { "manifestUri": "http://www.example.org/iiif/book1/manifest"}
-        ]
-      }),
-      eventEmitter: this.eventEmitter,
-      resultsWidth: 500,
-      manifest: this.manifest
-    });
-
-    var html = jQuery.parseHTML(this.appendTo[0].outerHTML);
-    var testImage = jQuery(html).find('li[data-index-number="17"] img');
-
-    var ids = [];
-    jQuery(html).find('li').each(function(i, el){
-      ids.push(jQuery(this).data('index-number'));
-    });
-
-    expect(ids).toEqual([-1, 1, 5, 8, 13, 14, 16, 17]);
-    expect(testImage).toHaveData('image-id', 'http://www.example.org/iiif/book1/canvas/p1');
-
-  });
-
-  it('insert another at index -1', function() {
-    var listItem = new Mirador.ManifestListItem({
-      appendTo: this.appendTo,
-      state: new Mirador.SaveController({
-        eventEmitter:this.eventEmitter,
-        preserveManifestOrder: true,
-        data: [
-          { "manifestUri": "http://www.example.org/iiif/book2/manifest"},
-          { "manifestUri": "http://www.example.org/iiif/book3/manifest"}
-        ]
-      }),
-      eventEmitter: this.eventEmitter,
-      resultsWidth: 500,
-      manifest: this.manifest
-    });
-
-    var html = jQuery.parseHTML(this.appendTo[0].outerHTML);
-    var testImage = jQuery(html).find('li[data-index-number="-1"] img');
-
-    expect(testImage).toHaveData('image-id', 'http://www.example.org/iiif/book1/canvas/p1');
-
-  });
-  
-  it('insert at a forced position', function() {
-    var listItem = new Mirador.ManifestListItem({
-      appendTo: this.appendTo,
-      state: new Mirador.SaveController({
-        eventEmitter:this.eventEmitter,
-        preserveManifestOrder: true,
-        data: [
-          { "manifestUri": "http://www.example.org/iiif/book1/manifest"},
-          { "manifestUri": "http://www.example.org/iiif/book2/manifest"},
-          { "manifestUri": "http://www.example.org/iiif/book3/manifest"},
-          { "manifestUri": this.manifest.uri},
-        ]
-      }),
-      eventEmitter: this.eventEmitter,
-      resultsWidth: 500,
-      forcedIndex: 0,
-      manifest: this.manifest
-    });
-
-    var html = jQuery.parseHTML(this.appendTo[0].outerHTML);
-    var testImage = jQuery(html).find('li[data-index-number="0"] img');
-
-    var ids = [];
-    jQuery(html).find('li').each(function(i, el){
-      ids.push(jQuery(this).data('index-number'));
-    });
-
-    expect(ids).toEqual([-1, 0, 1, 5, 8, 13, 14, 16]);
-    expect(testImage).toHaveData('image-id', 'http://www.example.org/iiif/book1/canvas/p1');
-
-  });
-
-  xit('fetchTplData', function () {
-  });
-  xit('render', function () {
-  });
-  xit('listenForActions', function () {
-  });
-  xit('bindEvents', function () {
-  });
-  xit('updateDisplay', function () {
-  });
-  xit('hide', function () {
-  });
-  xit('show', function () {
-  });
-});
diff --git a/spec/viewer/manifestsPanel.test.js b/spec/viewer/manifestsPanel.test.js
deleted file mode 100644
index cee51338b71f36a855ff4f1c705f1f0876f3898e..0000000000000000000000000000000000000000
--- a/spec/viewer/manifestsPanel.test.js
+++ /dev/null
@@ -1,157 +0,0 @@
-describe('ManifestsPanel', function() {
-  beforeEach(function() {
-    jasmine.getJSONFixtures().fixturesPath = 'spec/fixtures';
-    this.dummyManifestContent = getJSONFixture('dummyManifest.json');
-    this.viewerDiv = jQuery('<div>');
-    this.eventEmitter = new Mirador.EventEmitter();
-    this.panel = new Mirador.ManifestsPanel({
-      appendTo: this.viewerDiv,
-      state: new Mirador.SaveController({eventEmitter: this.eventEmitter}),
-      eventEmitter: this.eventEmitter
-    })
-  });
-
-  it('should initialize itself', function() {
-    expect(this.panel).toBeDefined();
-  });
-
-  it('should listen for actions', function() {
-    var manifest = new Mirador.Manifest(null, 'Dummy Location', this.dummyManifestContent);
-    var collection = new Mirador.Collection(null, 'Dummy Location', {
-      "@context": "http://iiif.io/api/presentation/2/context.json",
-      "@id": "http://example.org/iiif/collection/top",
-      "@type": "sc:Collection",
-      "label": "Top Level Collection for Example Organization"
-    });
-    spyOn(this.panel, 'onPanelVisible');
-    spyOn(this.panel, 'onManifestReceived');
-    spyOn(this.panel, 'onCollectionReceived');
-    this.eventEmitter.publish('manifestsPanelVisible.set');
-    this.eventEmitter.publish('manifestReceived', manifest);
-    this.eventEmitter.publish('collectionReceived', collection, "http://example.org/iiif/collection/top")
-    expect(this.panel.onPanelVisible).toHaveBeenCalled();
-    expect(this.panel.onManifestReceived).toHaveBeenCalled();
-    expect(this.panel.onCollectionReceived).toHaveBeenCalled();
-  });
-  
-  it('should bind events', function() {
-    var element = this.panel.element;
-    
-    spyOn(this.panel, 'addManifestUrl');
-    element.find('form#url-load-form').trigger('submit');
-    expect(this.panel.addManifestUrl).toHaveBeenCalled();
-    
-    spyOn(this.panel, 'togglePanel');
-    element.find('.remove-object-option').trigger('click');
-    expect(this.panel.togglePanel).toHaveBeenCalled();
-    
-    spyOn(this.panel, 'filterManifests');
-    element.find('#manifest-search').trigger('keyup');
-    expect(this.panel.filterManifests).toHaveBeenCalled();
-    
-    spyOn(jQuery.Event.prototype, 'preventDefault').and.callThrough();
-    expect(jQuery.Event.prototype.preventDefault).not.toHaveBeenCalled();
-    element.find('#manifest-search-form').submit();
-    expect(jQuery.Event.prototype.preventDefault).toHaveBeenCalled();
-    
-    spyOn(this.panel, 'resizePanel');
-    jQuery(window).trigger('resize');
-    expect(this.panel.resizePanel).toHaveBeenCalled();
-  });
-  
-  ['hide', 'show'].forEach(function(action) {
-    it('should ' + action, function() {
-      spyOn(jQuery.fn, action);
-      this.panel[action]();
-      expect(jQuery.fn[action]).toHaveBeenCalled();
-    });
-  });
-
-  it('should add manifest from url', function() {
-    spyOn(this.eventEmitter, 'publish');
-    var url = "http://example.com/manifest.json";
-    this.panel.addManifestUrl(url);
-    expect(this.eventEmitter.publish).toHaveBeenCalledWith('ADD_MANIFEST_FROM_URL', [url, "(Added from URL)"]);
-  });
-  
-  it('should toggle load window', function() {
-    spyOn(this.eventEmitter, 'publish');
-    this.panel.togglePanel();
-    expect(this.eventEmitter.publish).toHaveBeenCalledWith('TOGGLE_LOAD_WINDOW');
-  });
-  
-  it('should filter manifests', function() {
-    var manifest = new Mirador.Manifest(null, 'Dummy Location', this.dummyManifestContent);
-    var searchText = this.dummyManifestContent.label
-    var item = null;
-
-    this.panel.onManifestReceived(null, manifest);
-    expect(this.panel.manifestListItems.length).toBe(1);
-    
-    item = this.panel.element.find('.items-listing li:first');
-    expect(item.length).toBe(1);
-
-    this.panel.filterManifests(searchText);
-    expect(item.css('display')).not.toBe('none');
-    
-    this.panel.filterManifests("XXX");
-    expect(item.css('display')).toBe('none');
-    
-    this.panel.filterManifests("");
-    expect(item.css('display')).not.toBe('none');
-  });
-  
-  it('should set panel visibility', function() {
-    spyOn(this.panel, 'show');
-    spyOn(this.panel, 'hide');
-
-    this.panel.onPanelVisible(null, true);
-    expect(this.panel.show).toHaveBeenCalled();
-    expect(this.panel.hide).not.toHaveBeenCalled();
-    
-    this.panel.show.calls.reset();
-    this.panel.hide.calls.reset();
-
-    this.panel.onPanelVisible(null, false);
-    expect(this.panel.show).not.toHaveBeenCalled();
-    expect(this.panel.hide).toHaveBeenCalled();
-  });
-  
-  it('should resize', function() {
-    spyOn(this.eventEmitter, 'publish');
-    this.panel.resizePanel();
-    expect(this.eventEmitter.publish).toHaveBeenCalledWith('manifestPanelWidthChanged', this.panel.resultsWidth);
-  });
-  
-  it('should receive a new manifest', function() {
-    var manifest = new Mirador.Manifest(null, 'Dummy Location', this.dummyManifestContent);
-    expect(this.panel.manifestListItems.length).toBe(0);
-    this.panel.onManifestReceived(null, manifest);
-    expect(this.panel.manifestListItems.length).toBe(1);
-  });
-
-  it('should receive a collection and grab its manifests', function() {
-    spyOn(this.eventEmitter, 'publish');
-    var collection = new Mirador.Collection(null, 'Digital Library @ Villanova', {
-      "@context": "http://iiif.io/api/presentation/2/context.json",
-      "@id": "http://example.org/iiif/collection/top",
-      "@type": "sc:Collection",
-      "label": "Top Level Collection for Example Organization",
-      "manifests": [
-        {
-          "label": "The 'Adventurer's Oaths' from the Cardboard Drama of Esmeralda Grande",
-          "@id": "https://digital.library.villanova.edu/Item/vudl:2176/Manifest",
-          "@type": "sc:Manifest"
-        },
-        {
-          "label": "The Adventures of Seumas Beg The Visit From Abroad",
-          "@id": "https://digital.library.villanova.edu/Item/vudl:2112/Manifest",
-          "@type": "sc:Manifest"
-        }
-      ]
-    });
-    this.panel.onCollectionReceived(null, collection);
-    expect(this.eventEmitter.publish).toHaveBeenCalledWith('ADD_MANIFEST_FROM_URL', ["https://digital.library.villanova.edu/Item/vudl:2176/Manifest", "Digital Library @ Villanova"]);
-    expect(this.eventEmitter.publish).toHaveBeenCalledWith('ADD_MANIFEST_FROM_URL', ["https://digital.library.villanova.edu/Item/vudl:2112/Manifest", "Digital Library @ Villanova"]);
-  })
-});
\ No newline at end of file
diff --git a/spec/viewer/workspacePanel.test.js b/spec/viewer/workspacePanel.test.js
deleted file mode 100644
index 5bf2149eeb9a37463e0455ea3b3f1a61bf86cd69..0000000000000000000000000000000000000000
--- a/spec/viewer/workspacePanel.test.js
+++ /dev/null
@@ -1,124 +0,0 @@
-describe('WorkspacePanel', function() {
-  var workspacePanelSettings = {
-    maxColumns: 3,
-    maxRows: 5,
-    buildPath: '/',
-    imagesPath: 'images/'
-  };
-  
-  beforeEach(function() {
-    this.eventEmitter = new Mirador.EventEmitter();
-    this.viewerDiv = jQuery('<div>');
-    this.workspace = {
-      setLayout: jasmine.createSpy()
-    };
-    this.panel = new Mirador.WorkspacePanel({
-      appendTo: this.viewerDiv, 
-      workspace: this.workspace,
-      state: new Mirador.SaveController({"workspacePanelSettings": workspacePanelSettings, eventEmitter: this.eventEmitter}),
-      eventEmitter: this.eventEmitter
-    });
-  });
-
-  it('should render the correct grid size given maxColumns and maxRows', function() {
-    var gridSize = workspacePanelSettings.maxRows * workspacePanelSettings.maxColumns;
-    expect(this.viewerDiv.find('.select-grid .grid-item').length).toBe(gridSize);
-  });
-  
-  it('should listen for actions', function() {
-    spyOn(this.panel, 'onPanelVisible');
-    this.eventEmitter.publish('workspacePanelVisible');
-    expect(this.panel.onPanelVisible).toHaveBeenCalled();
-  });
-  
-  it('can detect layout selected', function() {
-    var gridItem = this.viewerDiv.find('.grid-item').first();
-    var gridString = gridItem.data('gridstring');
-    spyOn(this.panel, 'select');
-    gridItem.trigger('click');
-    expect(this.panel.select).toHaveBeenCalledWith(gridString);
-  });
-  
-  it('can detect layout hover', function() {
-    var gridItem = this.viewerDiv.find('.grid-item').first();
-    var gridString = gridItem.data('gridstring');
-    spyOn(this.panel, 'hover');
-    gridItem.trigger('mouseenter');
-    expect(this.panel.hover).toHaveBeenCalledWith(gridString);
-  });
-
-  it('can detect layout mouseout', function() {
-    var selectGrid = this.viewerDiv.find('.select-grid');
-    spyOn(this.panel, 'reset');
-    selectGrid.trigger('mouseout');
-    expect(this.panel.reset).toHaveBeenCalledWith();
-  });
-  
-  it('can reset itself', function() {
-    var el = this.panel.element;
-    this.panel.reset();
-    expect(el.find('.grid-text').css('display')).toBe('none');
-    expect(el.find('.grid-instructions').css('display')).not.toBe('none');
-    expect(el.find('.grid-item.hovered').length).toBe(0);
-  });
-
-  it('should display the grid selection when a layout is hovered', function() {
-    var rows = 2, cols = 2;
-    var gridString = rows+'x'+cols;
-    var el = this.panel.element;
-    this.panel.hover(gridString);
-    expect(el.find('.grid-instructions').css('display')).toBe('none');
-    expect(el.find('.grid-text').text()).toContain(gridString);
-    expect(el.find('.grid-item.hovered').length).toBe(rows*cols);
-  });
-
-  it('should publish events when a layout is selected', function() {
-    var gridString = '2x2';
-    var layoutDescription = Mirador.layoutDescriptionFromGridString(gridString);
-    spyOn(this.eventEmitter, 'publish');
-    this.panel.select(gridString);
-    expect(this.eventEmitter.publish).toHaveBeenCalledWith('RESET_WORKSPACE_LAYOUT', {layoutDescription: layoutDescription});
-    expect(this.eventEmitter.publish).toHaveBeenCalledWith('TOGGLE_WORKSPACE_PANEL');
-  });
-
-  it('should render the grid', function() {
-    var maxRows = workspacePanelSettings.maxRows;
-    var maxColumns = workspacePanelSettings.maxColumns;
-    var maxGridString = maxRows + 'x' + maxColumns;
-    expect(this.viewerDiv.find('#workspace-select-menu')).toExist();
-    expect(this.viewerDiv.find('.select-grid .grid-row')).toExist();
-    expect(this.viewerDiv.find('.select-grid .grid-row > .grid-item')).toExist();
-    
-    var gridItems = this.viewerDiv.find('.grid-item');
-    expect(gridItems.length).toBe(maxRows * maxColumns);
-    expect(jQuery(gridItems[gridItems.length - 1]).data('gridstring')).toBe(maxGridString);
-  });
-
-  it('should set panel visibility', function() {
-    spyOn(this.panel, 'show');
-    spyOn(this.panel, 'hide');
-
-    this.panel.onPanelVisible(null, true);
-    expect(this.panel.show).toHaveBeenCalled();
-    expect(this.panel.hide).not.toHaveBeenCalled();
-    
-    this.panel.show.calls.reset();
-    this.panel.hide.calls.reset();
-
-    this.panel.onPanelVisible(null, false);
-    expect(this.panel.show).not.toHaveBeenCalled();
-    expect(this.panel.hide).toHaveBeenCalled();
-  });
-
-  ['hide', 'show'].forEach(function(action) {
-    it('should ' + action, function(done) {
-      spyOn(jQuery.fn, action).and.callThrough();
-      this.panel[action]();
-      setTimeout(function() {
-        expect(jQuery.fn[action]).toHaveBeenCalled();
-        done();
-      }, 200);
-    });
-  });
-
-});
diff --git a/spec/widgets/annotationsLayer.test.js b/spec/widgets/annotationsLayer.test.js
deleted file mode 100644
index 98fcdd529e372e26ce96ab33852dee4b178338ae..0000000000000000000000000000000000000000
--- a/spec/widgets/annotationsLayer.test.js
+++ /dev/null
@@ -1,48 +0,0 @@
-describe('AnnotationsLayer', function() {
-
-  beforeEach(function() {
-
-  });
-
-  afterEach(function() {
-
-  });
-
-  xdescribe('Initialization', function() {
-    it('should initialize', function() {
-
-    });
-  });
-
-  xdescribe('listenForActions', function() {
-
-  });
-
-  xdescribe('bindEvents', function() {
-
-  });
-
-  xdescribe('createRenderer', function() {
-
-  });
-
-  xdescribe('updateRenderer', function() {
-
-  });
-
-  xdescribe('modeSwitch', function() {
-
-  });
-
-  xdescribe('enterDisplayAnnotations', function() {
-
-  });
-
-  xdescribe('enterEditAnnotations', function() {
-
-  });
-
-  xdescribe('enterDefault', function() {
-
-  });
-}); 
diff --git a/spec/widgets/annotationsTab.test.js b/spec/widgets/annotationsTab.test.js
deleted file mode 100644
index a00c947fcdd1eb4321494dff97f216554b90644f..0000000000000000000000000000000000000000
--- a/spec/widgets/annotationsTab.test.js
+++ /dev/null
@@ -1,199 +0,0 @@
-describe('AnnotationsTab', function() {
-  var subject;
-
-  beforeEach(function() {
-    jasmine.getJSONFixtures().fixturesPath = 'spec/fixtures';
-    this.fixture = getJSONFixture('Richardson7manifest.json');
-    this.element = document.createElement('div', {
-      class: 'tab-container',
-      id: 'annotationsTab'
-    });
-    this.eventEmitter = new Mirador.EventEmitter();
-    this.manifest = new Mirador.Manifest(
-      this.fixture['@id'], 'IIIF', this.fixture
-    );
-    this.imagesList = this.manifest.getCanvases();
-    this.windowId = '380c9e54-7561-4010-a99f-f132f5dc13fd';
-    this.annotationLists
-    this.annotationsTab = new Mirador.AnnotationsTab({
-      manifest: this.manifest,
-      appendTo: this.element,
-      visible: true,
-      windowId: this.windowId,
-      eventEmitter: this.eventEmitter,
-      imagesList: this.imagesList
-    });
-    subject = this.annotationsTab;
-  });
-
-  afterEach(function() {
-    delete this.annotationssTab;
-  });
-
-  describe('localState', function() {
-    var target_state = {
-      id: 'annotationsTab',
-      visible: true,
-      additional_key: true
-    };
-    it('should return the state as-is when given no arguments', function() {
-      expect(subject.localState()).toEqual(subject.annoTabState);
-      expect(subject.localState()).not.toEqual(target_state);
-   });
-    it('should set and return the new state when given arguments', function() {
-      expect(subject.localState(target_state, true)).toEqual(target_state);
-      expect(subject.localState()).toEqual(target_state);
-    });
-    it('should publish a annotationsTabStateUpdated event on non-initial setup', function() {
-      spyOn(this.eventEmitter, 'publish');
-      expect(subject.localState(target_state, false)).toEqual(target_state);
-      expect(this.eventEmitter.publish).toHaveBeenCalledWith('annotationsTabStateUpdated.' + this.windowId, target_state);
-      expect(subject.localState()).toEqual(target_state);
-    });
-  });
-
-  describe('tabStateUpdated', function() {
-    beforeEach(function() {
-      spyOn(subject.eventEmitter, 'publish');
-    });
-    it('should set visible in the local state', function() {
-      jQuery.each([false, true], function(k, visible) {
-        subject.tabStateUpdated(visible);
-        expect(subject.localState().visible).toEqual(visible);
-        expect(subject.eventEmitter.publish).toHaveBeenCalled();
-      });
-    });
-  });
-
-  describe('annotationListLoaded', function() {
-    beforeEach(function() {
-      subject.state = {
-        getWindowAnnotationsList: jasmine.createSpy('getWindowAnnotationsList').and.returnValue([
-          { endpoint: 'dummy' },
-          { endpoint: 'dummyUrl' },
-          { endpoint: { name: 'endpointName' }}
-        ])
-      };
-    });
-    it('should correctly set local state', function() {
-      subject.annotationListLoaded();
-      expect(subject.localState().annotationLists[0]).toEqual(jasmine.objectContaining({ selected: false }));
-      // expect(subject.localState().annotationLists[1]).toEqual(jasmine.objectContaining({ selected: false }));
-    });
-  });
-
-  describe('List selection', function() {
-    var dummyState;
-    beforeEach(function() {
-      dummyState = {
-        selectedList: null,
-        focusedList: null,
-        annotationLists: [
-          { annotationSource: 'boo', selected: false },
-          { annotationSource: 'hoo', selected: false }
-        ]
-      };
-      spyOn(subject, 'localState').and.callFake(function(arg) {
-        if (!arguments.length) return dummyState; else dummyState=arg;
-      });
-    });
-    it('should deselect a list', function() {
-      dummyState.selectedList = 'boo';
-      dummyState.annotationLists[0].selected = true;
-      subject.deselectList('boo');
-      expect(dummyState.selectedList).toBe(null);
-      expect(dummyState.annotationLists[0].selected).toBe(false);
-      expect(dummyState.annotationLists[1].selected).toBe(false);
-    });
-    it('should select a list', function() {
-      subject.selectList('hoo');
-      expect(dummyState.selectedList).toBe('hoo');
-      expect(dummyState.annotationLists[0].selected).toBe(false);
-      expect(dummyState.annotationLists[1].selected).toBe(true);
-    });
-    it('should focus a list', function() {
-      subject.focusList('hoo');
-      expect(dummyState.focusedList).toBe('hoo');
-      expect(dummyState.annotationLists[0].focused).toBe(false);
-      expect(dummyState.annotationLists[1].focused).toBe(true);
-    });
-  });
-
-  xdescribe('toggle', function() {
-
-  });
-
-  describe('listenForActions', function() {
-    it('should run tabStateUpdated upon getting a tabStateUpdated event', function() {
-      var data = {
-        selectedTabIndex: 0,
-        tabs: [
-          {
-            options: {
-              id: 'annotationsTab'
-            }
-          },
-          {
-            options: {
-              id: 'someOtherTab'
-            }
-          }
-        ]
-      };
-      spyOn(subject, 'tabStateUpdated');
-      subject.eventEmitter.publish('tabStateUpdated.' + this.windowId, data);
-      expect(subject.tabStateUpdated).toHaveBeenCalledWith(true);
-    });
-    it('should rerender upon getting a annotationsTabStateUpdated event', function() {
-      var data = { visible: false };
-      spyOn(subject, 'render');
-      subject.eventEmitter.publish('annotationsTabStateUpdated.' + this.windowId, data);
-      expect(subject.render).toHaveBeenCalledWith(data);
-    })
-    it('should run annotationListLoaded upon getting an annotationListLoaded event', function() {
-      spyOn(subject, 'annotationListLoaded');
-      subject.eventEmitter.publish('annotationListLoaded.' + this.windowId, {});
-      expect(subject.annotationListLoaded).toHaveBeenCalled();
-    });
-    it('should run selectList upon getting a currentCanvasIDUpdated or listSelected event', function() {
-      spyOn(subject, 'selectList');
-      jQuery.each(['currentCanvasIDUpdated.', 'listSelected.'], function(_, ev) {
-        subject.eventEmitter.publish(ev + subject.windowId, {});
-        expect(subject.selectList).toHaveBeenCalled();
-        subject.selectList.calls.reset();
-      });
-    });
-    it('should run deselectList upon getting a listDeselected event', function() {
-      spyOn(subject, 'deselectList');
-      subject.eventEmitter.publish('listDeselected.' + this.windowId, 'sampleListId');
-      expect(subject.deselectList).toHaveBeenCalledWith('sampleListId');
-    });
-  });
-
-  describe('bindEvents', function() {
-    beforeEach(function() {
-      $('<span class="annotationListItem">waahoo1</span>').data('id', 'glub1').appendTo(subject.element);
-      $('<span class="annotationListItem">waahoo2</span>').data('id', 'glub2').appendTo(subject.element);
-      spyOn(this.eventEmitter, 'publish');
-      subject.bindEvents();
-    });
-    // it('should deselect a selected item when re-clicked', function() {
-    //   subject.localState({ selectedList: 'glub1' });
-    //   subject.element.find('.annotationListItem').first().click();
-    //   expect(this.eventEmitter.publish).toHaveBeenCalledWith('listDeselected.' + this.windowId, 'glub1');
-    // });
-    // it('should select an unselected item when clicked', function() {
-    //   subject.localState({ selectedList: 'glub2' });
-    //   subject.element.find('.annotationListItem').first().click();
-    //   expect(this.eventEmitter.publish).toHaveBeenCalledWith('listSelected.' + this.windowId, 'glub1');
-    // });
-  });
-
-  describe('render', function() {
-    it('should hide itself if not visible', function() {
-      spyOn(jQuery.fn, 'hide');
-      subject.render({ visible: false });
-      expect(subject.element.hide).toHaveBeenCalled();
-    });
-  });
-});
diff --git a/spec/widgets/bookView.test.js b/spec/widgets/bookView.test.js
deleted file mode 100644
index 3e4026e3dc3572b689ec6ca17e184c07192a0336..0000000000000000000000000000000000000000
--- a/spec/widgets/bookView.test.js
+++ /dev/null
@@ -1,588 +0,0 @@
-describe('BookView', function() {
-  var subject;
-  var viewportBounds = new OpenSeadragon.Rect(
-    -0.03149220690309984,
-    -1.1102230246251565e-16,
-    1.0629844138061997,
-    1.3985897967648282,
-    0
-  );
-  var imageBounds = new OpenSeadragon.Rect(
-    -75.92771084337372,
-    -2.6767477123712524e-13,
-    2562.8554216867474,
-    3372.000000000001,
-    0
-  );
-  beforeEach(function() {
-    jasmine.getJSONFixtures().fixturesPath = 'spec/fixtures';
-    this.viewContainer = document.createElement('div', {
-      class: 'view-container'
-    });
-    this.fixture = getJSONFixture('Richardson7manifest.json');
-    this.manifest = new Mirador.Manifest(
-      this.fixture['@id'], 'IIIF', this.fixture
-    );
-    this.appendTo = this.viewContainer;
-    this.eventEmitter = new Mirador.EventEmitter;
-    this.imagesList = this.manifest.getCanvases();
-    this.canvasControls = jQuery.extend(
-      true, {}, Mirador.DEFAULT_SETTINGS.windowSettings.canvasControls
-    );
-    this.state = state = new Mirador.SaveController(jQuery.extend(
-      true, {}, Mirador.DEFAULT_SETTINGS, {eventEmitter: this.eventEmitter}
-    ));
-    this.windowId = '380c9e54-7561-4010-a99f-f132f5dc13fd';
-    this.bookView = new Mirador.BookView({
-      manifest: this.manifest,
-      appendTo: this.appendTo,
-      windowId: this.windowId,
-      eventEmitter: this.eventEmitter,
-      imagesList: this.imagesList,
-      state: this.state,
-      bottomPanelAvailable: true,
-      annoEndpointAvailable: true,
-      canvasControls: this.canvasControls,
-      annotationState: this.canvasControls.annotations.annotationState
-    });
-    subject = this.bookView;
-  });
-
-  afterEach(function() {
-    delete this.bookView;
-  });
-
-  describe('Initialization', function() {
-    it('should initialize', function() {
-      expect(true).toBe(true); //Force beforeEach() to run
-    });
-    it('should initialize with a specified canvas ID', function() {
-      this.bookView = new Mirador.BookView({
-        manifest: this.manifest,
-        appendTo: this.appendTo,
-        windowId: this.windowId,
-        eventEmitter: this.eventEmitter,
-        imagesList: this.imagesList,
-        state: this.state,
-        bottomPanelAvailable: true,
-        annoEndpointAvailable: true,
-        canvasControls: this.canvasControls,
-        annotationState: this.canvasControls.annotations.annotationState,
-        canvasID: this.imagesList[2]['@id']
-      });
-      subject = this.bookView;
-      expect(subject.currentImgIndex).toEqual(2);
-    });
-    it('should initialize with null osdOptions', function() {
-      this.bookView = new Mirador.BookView({
-        manifest: this.manifest,
-        appendTo: this.appendTo,
-        windowId: this.windowId,
-        eventEmitter: this.eventEmitter,
-        imagesList: this.imagesList,
-        state: this.state,
-        bottomPanelAvailable: true,
-        annoEndpointAvailable: true,
-        canvasControls: this.canvasControls,
-        annotationState: this.canvasControls.annotations.annotationState,
-        canvasID: this.imagesList[2]['@id'],
-        osdOptions: null
-      });
-      subject = this.bookView;
-      expect(subject.currentImgIndex).toEqual(2);
-    });
-    it('should initialize with bottom panel disabled', function() {
-      spyOn(this.eventEmitter, 'publish');
-      this.bookView = new Mirador.BookView({
-        manifest: this.manifest,
-        appendTo: this.appendTo,
-        windowId: this.windowId,
-        eventEmitter: this.eventEmitter,
-        imagesList: this.imagesList,
-        state: this.state,
-        bottomPanelAvailable: false,
-        annoEndpointAvailable: false,
-        canvasControls: this.canvasControls,
-        annotationState: this.canvasControls.annotations.annotationState
-      });
-      subject = this.bookView;
-      expect(this.eventEmitter.publish).toHaveBeenCalledWith('SET_BOTTOM_PANEL_VISIBILITY.' + this.windowId, false);
-    });
-  });
-
-  describe('listenForActions', function() {
-    describe('Bottom panel', function() {
-      var dodger_bottom_panel, dodger_zoom, arrow_next, arrow_prev;
-      beforeEach(function() {
-        dodger_bottom_panel = subject.element.find('.mirador-osd-toggle-bottom-panel');
-        dodger_zoom = subject.element.find('.mirador-pan-zoom-controls');
-        arrow_next = subject.element.find('.mirador-osd-next');
-        arrow_prev = subject.element.find('.mirador-osd-previous');
-      });
-      it('should adjust canvas controls to accommodate bottom panel height', function() {
-        subject.eventEmitter.publish('bottomPanelSet.' + this.windowId, true);
-        expect(dodger_bottom_panel).toHaveClass('bottom-panel-open');
-        expect(dodger_zoom).toHaveClass('bottom-panel-open');
-        expect(arrow_next).toHaveClass('bottom-panel-open');
-        expect(arrow_prev).toHaveClass('bottom-panel-open');
-      });
-      it('should adjust canvas controls to accommodate the absence of the bottom panel', function() {
-        subject.eventEmitter.publish('bottomPanelSet.' + this.windowId, false);
-        expect(dodger_bottom_panel).not.toHaveClass('bottom-panel-open');
-        expect(dodger_zoom).not.toHaveClass('bottom-panel-open');
-        expect(arrow_next).not.toHaveClass('bottom-panel-open');
-        expect(arrow_prev).not.toHaveClass('bottom-panel-open');
-      });
-    });
-    describe('fitBounds', function() {
-      beforeEach(function() {
-        subject.osd = {
-          viewport: {
-            imageToViewportRectangle: jasmine.createSpy('imageToViewportRectangle').and.returnValue(new OpenSeadragon.Rect(1, 2, 640, 480, 0)),
-            fitBoundsWithConstraints: jasmine.createSpy('fitBoundsWithConstraints')
-          }
-        };
-      });
-      it('should call fitBoundsWithConstraints', function() {
-        subject.eventEmitter.publish('fitBounds.' + this.windowId, imageBounds);
-        expect(subject.osd.viewport.fitBoundsWithConstraints).toHaveBeenCalled();
-      });
-    });
-    describe('Changing canvases', function() {
-      var navs;
-      beforeEach(function() {
-        navs = {
-          prev: subject.element.find('.mirador-osd-previous'),
-          next: subject.element.find('.mirador-osd-next')
-        }
-        spyOn(subject.element, 'find').and.callFake(function(sel) {
-          switch (sel) {
-            case '.mirador-osd-previous': return navs.prev;
-            case '.mirador-osd-next': return navs.next;
-          }
-        });
-        for (k in navs) {
-          spyOn(navs[k], 'show');
-          spyOn(navs[k], 'hide');
-        }
-      });
-      it('should hide the previous button upon going to the first canvas', function() {
-        subject.eventEmitter.publish('currentCanvasIDUpdated.' + this.windowId, this.imagesList[0]['@id']);
-        expect(navs.prev.hide).toHaveBeenCalled();
-        expect(navs.prev.show).not.toHaveBeenCalled();
-        expect(navs.next.hide).not.toHaveBeenCalled();
-        expect(navs.next.show).toHaveBeenCalled();
-      });
-      it('should hide the next button upon going to the last canvas', function() {
-        subject.eventEmitter.publish('currentCanvasIDUpdated.' + this.windowId, this.imagesList[this.imagesList.length-1]['@id']);
-        expect(navs.prev.hide).not.toHaveBeenCalled();
-        expect(navs.prev.show).toHaveBeenCalled();
-        expect(navs.next.hide).toHaveBeenCalled();
-        expect(navs.next.show).not.toHaveBeenCalled();
-      });
-      it('should show both buttons upon going to any middle canvas', function() {
-        subject.eventEmitter.publish('currentCanvasIDUpdated.' + this.windowId, this.imagesList[1]['@id']);
-        expect(navs.prev.hide).not.toHaveBeenCalled();
-        expect(navs.prev.show).toHaveBeenCalled();
-        expect(navs.next.hide).not.toHaveBeenCalled();
-        expect(navs.next.show).toHaveBeenCalled();
-      });
-    });
-  });
-
-  describe('bindEvents', function() {
-    it('should respond to clicks on next', function() {
-      spyOn(subject, 'next');
-      subject.element.find('.mirador-osd-next').click();
-      expect(subject.next).toHaveBeenCalled();
-    });
-    
-    it('should respond to clicks on previous', function() {
-      spyOn(subject, 'previous');
-      subject.element.find('.mirador-osd-previous').click();
-      expect(subject.previous).toHaveBeenCalled();
-    });
-    
-    it('should respond to clicks on home', function() {
-      subject.osd = {
-        viewport: {
-          goHome: jasmine.createSpy()
-        }
-      };
-      subject.element.find('.mirador-osd-go-home').click();
-      expect(subject.osd.viewport.goHome).toHaveBeenCalled();
-    });
-    
-    it('should toggle bottom panel', function() {
-      spyOn(subject.eventEmitter, 'publish');
-      subject.element.find('.mirador-osd-toggle-bottom-panel').click();
-      expect(subject.eventEmitter.publish).toHaveBeenCalledWith('TOGGLE_BOTTOM_PANEL_VISIBILITY.' + this.windowId);
-    });
-    
-    describe('direction buttons', function() {
-      var panPoint = new OpenSeadragon.Point(1, 2);
-      beforeEach(function() {
-        spyOn(subject, 'getPanByValue').and.returnValue(panPoint);
-        subject.osd = {
-          viewport: jasmine.createSpyObj('viewport', ['panBy', 'applyConstraints'])
-        };
-      });
-      it('should respond to clicks on up', function() {
-        subject.element.find('.mirador-osd-up').click();
-        expect(subject.osd.viewport.panBy).toHaveBeenCalledWith(new OpenSeadragon.Point(0, -2));
-      });
-      it('should respond to clicks on down', function() {
-        subject.element.find('.mirador-osd-down').click();
-        expect(subject.osd.viewport.panBy).toHaveBeenCalledWith(new OpenSeadragon.Point(0, 2));
-      });
-      it('should respond to clicks on left', function() {
-        subject.element.find('.mirador-osd-left').click();
-        expect(subject.osd.viewport.panBy).toHaveBeenCalledWith(new OpenSeadragon.Point(-1, 0));
-      });
-      it('should respond to clicks on right', function() {
-        subject.element.find('.mirador-osd-right').click();
-        expect(subject.osd.viewport.panBy).toHaveBeenCalledWith(new OpenSeadragon.Point(1, 0));
-      });
-    });
-    
-    describe('zoom buttons', function() {
-      beforeEach(function() {
-        subject.osd = {
-          zoomPerClick: 2,
-          viewport: jasmine.createSpyObj('viewport', ['zoomBy', 'applyConstraints'])
-        };
-      });
-      it('should respond to clicks on zoom in', function() {
-        subject.element.find('.mirador-osd-zoom-in').click();
-        expect(subject.osd.viewport.zoomBy).toHaveBeenCalledWith(2);
-      });
-      it('should respond to clicks on zoom out', function() {
-        subject.element.find('.mirador-osd-zoom-out').click();
-        expect(subject.osd.viewport.zoomBy).toHaveBeenCalledWith(1/2);
-      });
-    });
-  });
-
-  describe('getPanByValue', function() {
-    var viewportBounds = {
-      degrees: 0,
-      height: 1.3985897967648282,
-      width: 1.0629844138061997,
-      x: -0.03149220690309984,
-      y: -1.1102230246251565e-16
-    };
-    beforeEach(function() {
-      subject.osd = {
-        viewport: {
-          getBounds: function(b) {
-            return viewportBounds;
-          }
-        }
-      }
-    });
-    it('should return half height and width', function() {
-      expect(subject.getPanByValue().x).toBeCloseTo(viewportBounds.width/2 , 2);
-      expect(subject.getPanByValue().y).toBeCloseTo(viewportBounds.height/2 , 2);
-    });
-  });
-
-  describe('setBounds', function() {
-    var viewportBounds = {
-      degrees: 0,
-      height: 1.3985897967648282,
-      width: 1.0629844138061997,
-      x: -0.03149220690309984,
-      y: -1.1102230246251565e-16
-    };
-    var imageBounds = {
-      degrees: 0,
-      height: 3372.000000000001,
-      width: 2562.8554216867474,
-      x: -75.92771084337372,
-      y: -2.6767477123712524e-13
-    };
-    beforeEach(function() {
-      subject.osdOptions = {
-        osdBounds: {
-          degrees: 0,
-          height: 1,
-          width: 1,
-          x: -0.5,
-          y: -0.5
-        }
-      };
-      subject.osd = {
-        viewport: {
-          getBounds: function(b) {
-            return viewportBounds;
-          },
-          viewportToImageRectangle: function(ob) {
-            return imageBounds;
-          }
-        }
-      };
-      spyOn(subject.eventEmitter, 'publish').and.callThrough();
-    });
-    it('should update osdOptions and the viewport', function() {
-      subject.setBounds();
-      expect(subject.eventEmitter.publish).toHaveBeenCalled();
-    });
-  });
-
-  describe('toggle', function() {
-    beforeEach(function() {
-      spyOn(subject, 'show');
-      spyOn(subject, 'hide');
-    });
-    it('should call show for true', function() {
-      subject.toggle(true);
-      expect(subject.show).toHaveBeenCalled();
-      expect(subject.hide).not.toHaveBeenCalled();
-    });
-    it('should call hide for false', function() {
-      subject.toggle(false);
-      expect(subject.show).not.toHaveBeenCalled();
-      expect(subject.hide).toHaveBeenCalled();
-    });
-  });
-
-  describe('hide', function() {
-    beforeEach(function() {
-      spyOn(jQuery.prototype, 'hide').and.stub();
-    });
-    it('should hide', function() {
-      subject.hide();
-      expect(jQuery.prototype.hide).toHaveBeenCalled();
-    });
-  });
-
-  describe('show', function() {
-    beforeEach(function() {
-      spyOn(jQuery.prototype, 'show').and.stub();
-    });
-    it('should hide', function() {
-      subject.show();
-      expect(jQuery.prototype.show).toHaveBeenCalled();
-    });
-  });
-
-  describe('adjustWidth', function() {
-    beforeEach(function() {
-      spyOn(subject.eventEmitter, 'publish').and.callThrough();
-    });
-    it('should publish REMOVE_CLASS event when hasClass is true', function() {
-      subject.adjustWidth('xekko', true);
-      expect(subject.eventEmitter.publish).toHaveBeenCalledWith('REMOVE_CLASS.'+this.windowId, 'xekko');
-    });
-    it('should publish ADD_CLASS event when hasClass is false', function() {
-      subject.adjustWidth('xekko', false);
-      expect(subject.eventEmitter.publish).toHaveBeenCalledWith('ADD_CLASS.'+this.windowId, 'xekko');
-    });
-  });
-  
-  describe('adjustHeight', function() {
-    it('should remove class when hasClass is true', function() {
-      subject.element.addClass('xekko');
-      subject.adjustHeight('xekko', true);
-      expect(subject.element.hasClass('xekko')).toBe(false);
-    });
-    it('should add class when hasClass is false', function() {
-      subject.element.removeClass('xekko');
-      subject.adjustHeight('xekko', false);
-      expect(subject.element.hasClass('xekko')).toBe(true);
-    });
-  });
-
-  describe('updateImage', function() {
-    beforeEach(function() {
-      subject.canvasId = this.imagesList[0]['@id'];
-      spyOn(subject.eventEmitter, 'publish');
-    });
-    describe('Different from original', function() {
-      beforeEach(function() {
-        subject.osd = {
-          close: function() {}
-        };
-        spyOn(subject.osd, 'close');
-        subject.updateImage(this.imagesList[1]['@id']);
-      });
-      it('should fire event', function() {
-        expect(subject.eventEmitter.publish).toHaveBeenCalled();
-      });
-      it('should close Openseadragon', function() {
-        expect(subject.osd.close).toHaveBeenCalled();
-      });
-    });
-    describe('Same as original', function() {
-      beforeEach(function() {
-        subject.osd = {
-          close: function() {}
-        };
-        spyOn(subject.osd, 'close');
-        subject.updateImage(this.imagesList[0]['@id']);
-      });
-      it('should fire event', function() {
-        expect(subject.eventEmitter.publish).toHaveBeenCalled();
-      });
-    });
-  });
-
-  // TODO: Fix openseadragon crash
-  xdescribe('createOpenSeadragonInstance', function() {
-
-  });
-
-  describe('next', function() {
-    beforeEach(function() {
-      spyOn(this.eventEmitter, 'publish').and.callThrough();
-    });
-    it('should move one canvas forward on non-last canvases', function() {
-      subject.currentImgIndex = 0;
-      subject.next();
-      expect(this.eventEmitter.publish).toHaveBeenCalledWith('SET_CURRENT_CANVAS_ID.' + this.windowId, this.imagesList[1]['@id']);
-    });
-    it('should stay on last canvas', function() {
-      subject.currentImgIndex = this.imagesList.length-1;
-      subject.next();
-      expect(this.eventEmitter.publish).not.toHaveBeenCalled();
-    });
-  });
-
-  describe('previous', function() {
-    beforeEach(function() {
-      spyOn(this.eventEmitter, 'publish').and.callThrough();
-    });
-    it('should move one canvas back on non-first canvases', function() {
-      subject.currentImgIndex = 1;
-      subject.previous();
-      expect(this.eventEmitter.publish).toHaveBeenCalledWith('SET_CURRENT_CANVAS_ID.' + this.windowId, this.imagesList[0]['@id']);
-    });
-    it('should stay on first canvas', function() {
-      subject.currentImgIndex = 0;
-      subject.previous();
-      expect(this.eventEmitter.publish).not.toHaveBeenCalled();
-    });
-  });
-
-  describe('addLayer', function() {
-    var dummyTileSource = [
-      {height: 2000, width: 1000},
-      {height: 100, width: 200}
-    ];
-    beforeEach(function() {
-      subject.osd = jasmine.createSpyObj('osd', ['addTiledImage']);
-    });
-    it('adds the right layers', function() {
-      subject.addLayer(dummyTileSource, 2);
-      expect(subject.osd.addTiledImage).toHaveBeenCalledWith({
-        tileSource: {height: 2000, width: 1000},
-        opacity: 1,
-        x: 1.01,
-        y: 0,
-        width: 1
-      });
-      expect(subject.osd.addTiledImage).toHaveBeenCalledWith({
-        tileSource: {height: 100, width: 200},
-        opacity: 1,
-        x: 1.01,
-        y: 0,
-        width: 4
-      });
-    });
-  });
-
-  describe('getStitchList', function() {
-    it('should return a single entry for individual viewing hint', function() {
-      subject.currentImgIndex = 4;
-      subject.viewingHint = 'individuals';
-      subject.currentImg = this.imagesList[subject.currentImgIndex];
-      expect(subject.getStitchList()).toEqual([this.imagesList[4]]);
-    });
-    describe('Even pages', function() {
-      beforeEach(function() {
-        subject.currentImgIndex = 4;
-        subject.viewingHint = 'paged';
-        subject.currentImg = this.imagesList[subject.currentImgIndex];
-      });
-      it('stitches left-to-right', function() {
-        subject.viewingDirection = 'left-to-right';
-        expect(subject.getStitchList()).toEqual([this.imagesList[3], this.imagesList[4]]);
-      });
-      it('stitches right-to-left', function() {
-        subject.viewingDirection = 'right-to-left';
-        expect(subject.getStitchList()).toEqual([this.imagesList[3], this.imagesList[4]]);
-      });
-      it('stitches top-down', function() {
-        subject.viewingDirection = 'top-to-bottom';
-        expect(subject.getStitchList()).toEqual([this.imagesList[3], this.imagesList[4]]);
-      });
-      it('stitches bottom-up', function() {
-        subject.viewingDirection = 'bottom-to-top';
-        expect(subject.getStitchList()).toEqual([this.imagesList[4], this.imagesList[3]]);
-      });
-    });
-    describe('Odd pages', function() {
-      beforeEach(function() {
-        subject.currentImgIndex = 5;
-        subject.viewingHint = 'paged';
-        subject.currentImg = this.imagesList[subject.currentImgIndex];
-      });
-      it('stitches left-to-right', function() {
-        subject.viewingDirection = 'left-to-right';
-        expect(subject.getStitchList()).toEqual([this.imagesList[5], this.imagesList[6]]);
-      });
-      it('stitches right-to-left', function() {
-        subject.viewingDirection = 'right-to-left';
-        expect(subject.getStitchList()).toEqual([this.imagesList[5], this.imagesList[6]]);
-      });
-      it('stitches top-down', function() {
-        subject.viewingDirection = 'top-to-bottom';
-        expect(subject.getStitchList()).toEqual([this.imagesList[5], this.imagesList[6]]);
-      });
-      it('stitches bottom-up', function() {
-        subject.viewingDirection = 'bottom-to-top';
-        expect(subject.getStitchList()).toEqual([this.imagesList[6], this.imagesList[5]]);
-      });
-    });
-
-    describe('Order of imagesList', function() {
-      it('should be reversed for r-t-l sequences and manifests', function() {
-
-        this.fixture.viewingDirection = "right-to-left";
-        var manifest = new Mirador.Manifest(
-          this.fixture['@id'], 'IIIF', this.fixture
-        ),
-            imagesList = manifest.getCanvases(),
-            imagesListLtr = imagesList.concat(),
-            imagesListRtl = imagesList.concat();
-        imagesListRtl.reverse();
-        var bookView = new Mirador.BookView({
-          manifest: manifest,
-          appendTo: this.appendTo,
-          windowId: this.windowId,
-          eventEmitter: this.eventEmitter,
-          imagesList: imagesList,
-          imagesListLtr: imagesListLtr,
-          imagesListRtl: imagesListRtl,
-          state: this.state,
-          bottomPanelAvailable: true,
-          annoEndpointAvailable: true,
-          canvasControls: this.canvasControls,
-          annotationState: this.canvasControls.annotations.annotationState
-        });
-        expect(imagesList[imagesList.length - 1]).toBe(bookView.imagesListRtl[0]);
-      });
-    });
-    // TODO: Fill this in once implemented
-    describe('Continuous viewing hint', function() {
-      beforeEach(function() {
-        subject.currentImgIndex = 4;
-        subject.viewingHint = 'continuous';
-        subject.currentImg = this.imagesList[subject.currentImgIndex];
-      });
-      xit('needs real tests', function() {
-        expect(subject.getStitchList()).not.toThrowError();
-      });
-    });
-  });
-}); 
diff --git a/spec/widgets/contextControls.test.js b/spec/widgets/contextControls.test.js
deleted file mode 100644
index 1d7b1cb7a97f322f38c4bd9a80088b7ac82282f5..0000000000000000000000000000000000000000
--- a/spec/widgets/contextControls.test.js
+++ /dev/null
@@ -1,130 +0,0 @@
-describe('ContextControls', function() {
-
-  beforeEach(function() {
-
-  });
-
-  afterEach(function() {
-
-  });
-
-  xdescribe('Initialization', function() {
-    it('should initialize', function() {
-
-    });
-  });
-
-  xdescribe('show', function() {
-
-  });
-
-  xdescribe('hide', function() {
-
-  });
-
-  xdescribe('bindEvents', function() {
-
-  });
-
-  describe('Manipulation Controls', function() {
-    beforeAll(function(){
-      this.container = jQuery('<div><div class="mirador-manipulation-controls"></div></div>');
-      this.eventEmitter = new Mirador.EventEmitter;
-      this.state = state = new Mirador.SaveController(jQuery.extend(
-        true, {}, Mirador.DEFAULT_SETTINGS, {eventEmitter: this.eventEmitter}
-      ));
-      this.canvasControls = {
-        "annotations" : {
-          "annotationLayer" : true,
-          "annotationCreation" : true,
-          "annotationState" : 'annoOff',
-          "annotationRefresh" : false
-        },
-        "imageManipulation" : {
-          "manipulationLayer" : true,
-          "controls" : {
-            "rotate" : true,
-            "brightness" : true,
-            "contrast" : true,
-            "saturate" : true,
-            "grayscale" : true,
-            "invert" : true,
-            "mirror" : true
-          }
-        }
-      };
-      jasmine.getFixtures().set(this.container);
-    });
-    it('should add manipulation controls', function() {
-      spyOn(Mirador.ContextControls.prototype,'init');
-      var contextControls = new Mirador.ContextControls({
-        container:this.container,
-        availableAnnotationStylePickers:['StrokeType'],
-        canvasControls: this.canvasControls
-      });
-      expect(contextControls.init).toHaveBeenCalled();
-      // expect(contextControls.manipulationTemplate).toHaveBeenCalled();
-    });
-    it('shows configured tools', function() {
-      subject = new Mirador.ContextControls({
-        container: this.container,
-        availableAnnotationStylePickers:['StrokeType'],
-        canvasControls: this.canvasControls,
-        state: this.state
-      });
-      subject.manipulationShow();
-      var availableClasses = [
-        '.mirador-osd-rotate-right', '.mirador-osd-rotate-left',
-        '.mirador-osd-brightness', '.mirador-osd-contrast',
-        '.mirador-osd-saturation', '.mirador-osd-grayscale',
-        '.mirador-osd-invert', '.mirador-osd-mirror'
-      ];
-      availableClasses.forEach(function(class_selector) {
-        // I could not get jasmine-jquery to work here. So going at it the old
-        // fashioned way
-        expect(subject.container.find(class_selector).length).toBe(1)
-      });
-      
-    });
-  });
-
-  describe('AnnotationStylePickers', function() {
-
-    beforeAll(function(){
-      this.container = jQuery('<div><div class="mirador-osd-annotation-controls"></div></div>');
-      jasmine.getFixtures().set(this.container);
-    });
-
-    it('should add stroke picker',function(){
-      spyOn(Mirador.ContextControls.prototype,'addStrokeStylePicker');
-      var canvasControls = {
-        "annotations" : {
-          "annotationLayer" : true,
-          "annotationCreation" : true,
-          "annotationState" : 'annoOff',
-          "annotationRefresh" : false
-        },
-        "imageManipulation" : {
-          "manipulationLayer" : true,
-          "controls" : {
-            "rotate" : true,
-            "brightness" : true,
-            "contrast" : true,
-            "saturate" : true,
-            "grayscale" : true,
-            "invert" : true
-          }
-        }
-      };
-      var contextControls = new Mirador.ContextControls({
-        container:this.container,
-        availableAnnotationStylePickers:['StrokeType'],
-        canvasControls: canvasControls
-      });
-
-      expect(contextControls.addStrokeStylePicker).toHaveBeenCalled();
-    });
-
-  });
-
-});
diff --git a/spec/widgets/hud.test.js b/spec/widgets/hud.test.js
deleted file mode 100644
index 02f2a1a760c544895deb3e0d2f97ebf6c3e2bc0b..0000000000000000000000000000000000000000
--- a/spec/widgets/hud.test.js
+++ /dev/null
@@ -1,24 +0,0 @@
-describe('Hud', function() {
-
-  beforeEach(function() {
-
-  });
-
-  afterEach(function() {
-
-  });
-
-  xdescribe('Initialization', function() {
-    it('should initialize', function() {
-
-    });
-  });
-
-  xdescribe('bindEvents', function() {
-
-  });
-
-  xdescribe('createStateMachine', function() {
-
-  });
-}); 
diff --git a/spec/widgets/imageView.test.js b/spec/widgets/imageView.test.js
deleted file mode 100644
index 81ec322b8029166f38de2322e96bee50148a97b2..0000000000000000000000000000000000000000
--- a/spec/widgets/imageView.test.js
+++ /dev/null
@@ -1,709 +0,0 @@
-describe('ImageView', function() {
-  var subject;
-  var viewportBounds = new OpenSeadragon.Rect(
-    -0.03149220690309984,
-    -1.1102230246251565e-16,
-    1.0629844138061997,
-    1.3985897967648282,
-    0
-  );
-  var imageBounds = new OpenSeadragon.Rect(
-    -75.92771084337372,
-    -2.6767477123712524e-13,
-    2562.8554216867474,
-    3372.000000000001,
-    0
-  );
-
-  beforeEach(function() {
-    jasmine.getJSONFixtures().fixturesPath = 'spec/fixtures';
-    // WARNING: Need to stub to stop OpenSeadragon from crashing PhantomJS
-    // If you can make this not happen, remove this line and test the method
-    spyOn(Mirador.ImageView.prototype, 'initialiseImageCanvas');
-    this.viewContainer = document.createElement('div', {
-      class: 'view-container'
-    });
-    this.fixture = getJSONFixture('Richardson7manifest.json');
-    this.manifest = new Mirador.Manifest(
-      this.fixture['@id'], 'IIIF', this.fixture
-    );
-    this.appendTo = this.viewContainer;
-    this.eventEmitter = new Mirador.EventEmitter;
-    this.imagesList = this.manifest.getCanvases();
-    this.canvasControls = jQuery.extend(
-      true, {}, Mirador.DEFAULT_SETTINGS.windowSettings.canvasControls
-    );
-    this.state = state = new Mirador.SaveController(jQuery.extend(
-      true, {}, Mirador.DEFAULT_SETTINGS, {eventEmitter: this.eventEmitter}
-    ));
-    this.windowId = '380c9e54-7561-4010-a99f-f132f5dc13fd';
-    this.imageView = new Mirador.ImageView({
-      manifest: this.manifest,
-      appendTo: this.appendTo,
-      windowId: this.windowId,
-      eventEmitter: this.eventEmitter,
-      imagesList: this.imagesList,
-      state: this.state,
-      bottomPanelAvailable: true,
-      annoEndpointAvailable: true,
-      canvasControls: this.canvasControls,
-      annotationState: this.canvasControls.annotations.annotationState,
-      canvases: {
-        'https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981094.json': {
-          getVisibleImages: function() { return []; },
-          getBounds: function() {
-            return {
-              'x': 800,
-              'y': 600,
-              'width': 800,
-              'height': 600
-            };
-          },
-          show: function() {
-          }
-        },
-        'https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981096.json': {
-          getVisibleImages: function() { return []; },
-          getBounds: function() {
-            return {
-              'x': 800,
-              'y': 600,
-              'width': 800,
-              'height': 600
-            };
-          },
-          show: function() {
-          }
-        }
-      }
-    });
-    subject = this.imageView;
-  });
-
-  afterEach(function() {
-    delete this.imageView;
-  });
-  // TODO: Fill in tests for what needs initializing
-  describe('Initialization', function() {
-    it('should initialize with above defaults', function() {
-      expect(true).toBe(true); //Force beforeEach() to run
-    });
-    it('should initialize with a specified canvasID', function() {
-      this.imageView = new Mirador.ImageView({
-        manifest: this.manifest,
-        appendTo: this.appendTo,
-        windowId: this.windowId,
-        eventEmitter: this.eventEmitter,
-        imagesList: this.imagesList,
-        canvasID: this.imagesList[1]['@id'],
-        state: this.state,
-        bottomPanelAvailable: true,
-        annoEndpointAvailable: false,
-        canvasControls: this.canvasControls,
-        annotationState: this.canvasControls.annotations.annotationState
-      });
-      subject = this.imageView;
-      expect(subject.currentImgIndex).toEqual(1);
-    });
-    it('should initialize with null osdOptions', function() {
-      this.imageView = new Mirador.ImageView({
-        manifest: this.manifest,
-        appendTo: this.appendTo,
-        windowId: this.windowId,
-        eventEmitter: this.eventEmitter,
-        imagesList: this.imagesList,
-        canvasID: this.imagesList[1]['@id'],
-        osdOptions: null,
-        state: this.state,
-        bottomPanelAvailable: true,
-        annoEndpointAvailable: false,
-        canvasControls: this.canvasControls,
-        annotationState: this.canvasControls.annotations.annotationState
-      });
-      subject = this.imageView;
-      expect(subject.currentImgIndex).toEqual(1);
-    });
-    it('should initialize with null osdOptions', function() {
-      spyOn(this.eventEmitter, 'publish');
-      this.imageView = new Mirador.ImageView({
-        manifest: this.manifest,
-        appendTo: this.appendTo,
-        windowId: this.windowId,
-        eventEmitter: this.eventEmitter,
-        imagesList: this.imagesList,
-        osdOptions: null,
-        state: this.state,
-        bottomPanelAvailable: false,
-        annoEndpointAvailable: false,
-        canvasControls: this.canvasControls,
-        annotationState: this.canvasControls.annotations.annotationState
-      });
-      subject = this.imageView;
-      expect(this.eventEmitter.publish).toHaveBeenCalledWith('SET_BOTTOM_PANEL_VISIBILITY.' + this.windowId, false);
-    });
-  });
-
-  describe('listenForActions', function() {
-    describe('Bottom panel', function() {
-      var dodger_bottom_panel, dodger_zoom, arrow_next, arrow_prev;
-      beforeEach(function() {
-        dodger_bottom_panel = subject.element.find('.mirador-osd-toggle-bottom-panel');
-        dodger_zoom = subject.element.find('.mirador-pan-zoom-controls');
-        arrow_next = subject.element.find('.mirador-osd-next');
-        arrow_prev = subject.element.find('.mirador-osd-previous');
-      });
-      it('should adjust canvas controls to accommodate bottom panel height', function() {
-        subject.eventEmitter.publish('bottomPanelSet.' + this.windowId, true);
-        expect(dodger_bottom_panel).toHaveClass('bottom-panel-open');
-        expect(dodger_zoom).toHaveClass('bottom-panel-open');
-        expect(arrow_next).toHaveClass('bottom-panel-open');
-        expect(arrow_prev).toHaveClass('bottom-panel-open');
-      });
-      it('should adjust canvas controls to accommodate the absence of the bottom panel', function() {
-        subject.eventEmitter.publish('bottomPanelSet.' + this.windowId, false);
-        expect(dodger_bottom_panel).not.toHaveClass('bottom-panel-open');
-        expect(dodger_zoom).not.toHaveClass('bottom-panel-open');
-        expect(arrow_next).not.toHaveClass('bottom-panel-open');
-        expect(arrow_prev).not.toHaveClass('bottom-panel-open');
-      });
-    });
-    xdescribe('InitialiseImageCanvas', function() {
-      console.info(Object.keys(subject.osd));
-      console.info(subject.osd.world.items.length);
-      expect(subject.osd.world.items.length>1).toBe(true);
-    });
-    describe('fitBounds', function() {
-      beforeEach(function() {
-        subject.osd = {
-          viewport: {
-            imageToViewportRectangle: jasmine.createSpy('imageToViewportRectangle').and.returnValue(new OpenSeadragon.Rect(1, 2, 640, 480, 0)),
-            fitBoundsWithConstraints: jasmine.createSpy('fitBoundsWithConstraints')
-          }
-        };
-      });
-      it('should call fitBoundsWithConstraints', function() {
-        subject.eventEmitter.publish('fitBounds.' + this.windowId, imageBounds);
-        expect(subject.osd.viewport.fitBoundsWithConstraints).toHaveBeenCalled();
-      });
-    });
-    describe('Changing canvases', function() {
-      var navs;
-      beforeEach(function() {
-        navs = {
-          prev: subject.element.find('.mirador-osd-previous'),
-          next: subject.element.find('.mirador-osd-next')
-        }
-        spyOn(subject.element, 'find').and.callFake(function(sel) {
-          switch (sel) {
-            case '.mirador-osd-previous': return navs.prev;
-            case '.mirador-osd-next': return navs.next;
-          }
-        });
-        for (k in navs) {
-          spyOn(navs[k], 'show');
-          spyOn(navs[k], 'hide');
-        }
-      });
-      it('should hide the previous button upon going to the first canvas', function() {
-        subject.eventEmitter.publish('currentCanvasIDUpdated.' + this.windowId, this.imagesList[0]['@id']);
-        expect(navs.prev.hide).toHaveBeenCalled();
-        expect(navs.prev.show).not.toHaveBeenCalled();
-        expect(navs.next.hide).not.toHaveBeenCalled();
-        expect(navs.next.show).toHaveBeenCalled();
-      });
-      it('should hide the next button upon going to the last canvas', function() {
-        subject.eventEmitter.publish('currentCanvasIDUpdated.' + this.windowId, this.imagesList[this.imagesList.length-1]['@id']);
-        expect(navs.prev.hide).not.toHaveBeenCalled();
-        expect(navs.prev.show).toHaveBeenCalled();
-        expect(navs.next.hide).toHaveBeenCalled();
-        expect(navs.next.show).not.toHaveBeenCalled();
-      });
-      it('should show both buttons upon going to any middle canvas', function() {
-        subject.eventEmitter.publish('currentCanvasIDUpdated.' + this.windowId, this.imagesList[1]['@id']);
-        expect(navs.prev.hide).not.toHaveBeenCalled();
-        expect(navs.prev.show).toHaveBeenCalled();
-        expect(navs.next.hide).not.toHaveBeenCalled();
-        expect(navs.next.show).toHaveBeenCalled();
-      });
-    });
-    describe('HUD_* events', function() {
-      var dummyElement;
-      beforeEach(function() {
-        subject.element.append('<div class="hudelement qblok"></div>');
-        dummyElement = subject.element.find('.hudelement');
-        spyOn(subject.element, 'find').and.callFake(function() {
-          return dummyElement;
-        });
-        spyOn(dummyElement, 'removeClass').and.callThrough();
-        spyOn(dummyElement, 'addClass').and.callThrough();
-        spyOn(dummyElement, 'fadeIn');
-        spyOn(dummyElement, 'fadeOut').and.callThrough();
-      });
-      it('responds to HUD_REMOVE_CLASS', function() {
-        subject.eventEmitter.publish('HUD_REMOVE_CLASS.' + this.windowId, ['.hudelement', 'qblok']);
-        expect(subject.element.find).toHaveBeenCalledWith('.hudelement');
-        expect(dummyElement.removeClass).toHaveBeenCalledWith('qblok');
-        expect(dummyElement.is('.qblok')).toBe(false);
-      });
-      it('responds to HUD_ADD_CLASS', function() {
-        subject.eventEmitter.publish('HUD_ADD_CLASS.' + this.windowId, ['.hudelement', 'qblok2']);
-        expect(subject.element.find).toHaveBeenCalledWith('.hudelement');
-        expect(dummyElement.addClass).toHaveBeenCalledWith('qblok2');
-        expect(dummyElement.is('.qblok2')).toBe(true);
-      });
-      it('responds to HUD_FADE_IN', function() {
-        subject.eventEmitter.publish('HUD_FADE_IN.' + this.windowId, ['.hudelement', 583]);
-        expect(subject.element.find).toHaveBeenCalledWith('.hudelement');
-        expect(dummyElement.fadeIn).toHaveBeenCalledWith(583);
-      });
-      it('responds to HUD_FADE_OUT', function(done) {
-        subject.eventEmitter.publish('HUD_FADE_OUT.' + this.windowId, ['.hudelement', 1, done]);
-        expect(subject.element.find).toHaveBeenCalledWith('.hudelement');
-        expect(dummyElement.fadeOut).toHaveBeenCalledWith(1, done);
-      });
-    });
-    describe('Cursor events', function() {
-      beforeEach(function() {
-        subject.osd = {
-          canvas: '<canvas></canvas>'
-        };
-        spyOn(jQuery.fn, 'css');
-      });
-      describe('SET_STATE_MACHINE_POINTER', function() {
-        beforeEach(function() {
-          spyOn(subject.hud.annoState, 'startup');
-          spyOn(subject.hud.annoState, 'displayOn');
-          spyOn(subject.hud.annoState, 'choosePointer');
-        });
-        it('responds when annotation state is none', function() {
-          subject.hud.annoState.current = 'none';
-          subject.eventEmitter.publish('SET_STATE_MACHINE_POINTER.' + this.windowId);
-          expect(subject.hud.annoState.startup).toHaveBeenCalled();
-        });
-        it('responds when annotation state is off', function() {
-          subject.hud.annoState.current = 'off';
-          subject.eventEmitter.publish('SET_STATE_MACHINE_POINTER.' + this.windowId);
-          expect(subject.hud.annoState.displayOn).toHaveBeenCalled();
-        });
-        it('responds when annotation state is on', function() {
-          subject.hud.annoState.current = 'on';
-          subject.eventEmitter.publish('SET_STATE_MACHINE_POINTER.' + this.windowId);
-          expect(subject.hud.annoState.choosePointer).toHaveBeenCalled();
-        });
-      });
-      it('responds to DEFAULT_CURSOR', function() {
-        subject.eventEmitter.publish('DEFAULT_CURSOR.' + this.windowId);
-        expect(jQuery)
-        expect(jQuery.fn.css).toHaveBeenCalledWith('cursor', 'default');
-      });
-      it('responds to CROSSHAIR_CURSOR', function() {
-        subject.eventEmitter.publish('CROSSHAIR_CURSOR.' + this.windowId);
-        expect(jQuery.fn.css).toHaveBeenCalledWith('cursor', 'crosshair');
-      });
-      it('responds to POINTER_CURSOR', function() {
-        subject.eventEmitter.publish('POINTER_CURSOR.' + this.windowId);
-        expect(jQuery.fn.css).toHaveBeenCalledWith('cursor', 'pointer');
-      });
-    });
-  });
-
-  describe('bindEvents', function() {
-    it('should respond to clicks on next', function() {
-      spyOn(subject, 'next');
-      subject.element.find('.mirador-osd-next').click();
-      expect(subject.next).toHaveBeenCalled();
-    });
-
-    it('should respond to clicks on previous', function() {
-      spyOn(subject, 'previous');
-      subject.element.find('.mirador-osd-previous').click();
-      expect(subject.previous).toHaveBeenCalled();
-    });
-
-    it('should respond to clicks on rotate right', function() {
-      subject.osd = {
-        viewport: {
-          getRotation: jasmine.createSpy().and.returnValue(90),
-          setRotation: jasmine.createSpy()
-        }
-      };
-      subject.element.find('.mirador-osd-rotate-right').click();
-      expect(subject.osd.viewport.setRotation).toHaveBeenCalledWith(180);
-    });
-
-    it('should respond to clicks on rotate left', function() {
-      subject.osd = {
-        viewport: {
-          getRotation: jasmine.createSpy().and.returnValue(270),
-          setRotation: jasmine.createSpy()
-        }
-      };
-      subject.element.find('.mirador-osd-rotate-left').click();
-      expect(subject.osd.viewport.setRotation).toHaveBeenCalledWith(180);
-    });
-
-    it('should respond to clicks on home', function() {
-      subject.osd = {
-        viewport: {
-          goHome: jasmine.createSpy()
-        }
-      };
-      subject.element.find('.mirador-osd-go-home').click();
-      expect(subject.osd.viewport.goHome).toHaveBeenCalled();
-    });
-
-    it('should toggle bottom panel', function() {
-      spyOn(subject.eventEmitter, 'publish');
-      subject.element.find('.mirador-osd-toggle-bottom-panel').click();
-      expect(subject.eventEmitter.publish).toHaveBeenCalledWith('TOGGLE_BOTTOM_PANEL_VISIBILITY.' + this.windowId);
-    });
-
-    describe('direction buttons', function() {
-      var panPoint = new OpenSeadragon.Point(1, 2);
-      beforeEach(function() {
-        spyOn(subject, 'getPanByValue').and.returnValue(panPoint);
-        subject.osd = {
-          viewport: jasmine.createSpyObj('viewport', ['panBy', 'applyConstraints'])
-        };
-      });
-      it('should respond to clicks on up', function() {
-        subject.element.find('.mirador-osd-up').click();
-        expect(subject.osd.viewport.panBy).toHaveBeenCalledWith(new OpenSeadragon.Point(0, -2));
-      });
-      it('should respond to clicks on down', function() {
-        subject.element.find('.mirador-osd-down').click();
-        expect(subject.osd.viewport.panBy).toHaveBeenCalledWith(new OpenSeadragon.Point(0, 2));
-      });
-      it('should respond to clicks on left', function() {
-        subject.element.find('.mirador-osd-left').click();
-        expect(subject.osd.viewport.panBy).toHaveBeenCalledWith(new OpenSeadragon.Point(-1, 0));
-      });
-      it('should respond to clicks on right', function() {
-        subject.element.find('.mirador-osd-right').click();
-        expect(subject.osd.viewport.panBy).toHaveBeenCalledWith(new OpenSeadragon.Point(1, 0));
-      });
-    });
-
-    describe('zoom buttons', function() {
-      beforeEach(function() {
-        subject.osd = {
-          zoomPerClick: 2,
-          viewport: jasmine.createSpyObj('viewport', ['zoomBy', 'applyConstraints'])
-        };
-      });
-      it('should respond to clicks on zoom in', function() {
-        subject.element.find('.mirador-osd-zoom-in').click();
-        expect(subject.osd.viewport.zoomBy).toHaveBeenCalledWith(2);
-      });
-      it('should respond to clicks on zoom out', function() {
-        subject.element.find('.mirador-osd-zoom-out').click();
-        expect(subject.osd.viewport.zoomBy).toHaveBeenCalledWith(1/2);
-      });
-    });
-
-    describe('annotation layer toggle', function() {
-      beforeEach(function() {
-        spyOn(subject.hud.annoState, 'startup');
-        spyOn(subject.hud.annoState, 'displayOn');
-        spyOn(subject.hud.annoState, 'displayOff');
-      });
-      it('should start when annotation state is none', function() {
-        subject.hud.annoState.current = 'none';
-        subject.element.find('.mirador-osd-annotations-layer').click();
-        expect(subject.hud.annoState.startup).toHaveBeenCalled();
-      });
-      it('should display on when annotation state is off', function() {
-        subject.hud.annoState.current = 'off';
-        subject.element.find('.mirador-osd-annotations-layer').click();
-        expect(subject.hud.annoState.displayOn).toHaveBeenCalled();
-      });
-      it('should display off when annotation state is on', function() {
-        subject.hud.annoState.current = 'on';
-        subject.element.find('.mirador-osd-annotations-layer').click();
-        expect(subject.hud.annoState.displayOff).toHaveBeenCalled();
-      });
-    });
-
-    describe('manipulation toggle', function() {
-      beforeEach(function() {
-        spyOn(subject.hud.manipulationState, 'startup');
-        spyOn(subject.hud.manipulationState, 'displayOn');
-        spyOn(subject.hud.manipulationState, 'displayOff');
-      });
-      it('should start when manipulation state is none', function() {
-        subject.hud.manipulationState.current = 'none';
-        subject.element.find('.mirador-manipulation-toggle').click();
-        expect(subject.hud.manipulationState.startup).toHaveBeenCalled();
-      });
-      it('should display on when manipulation state is off', function() {
-        subject.hud.manipulationState.current = 'manipulationOff';
-        subject.element.find('.mirador-manipulation-toggle').click();
-        expect(subject.hud.manipulationState.displayOn).toHaveBeenCalled();
-      });
-      it('should display off when manipulation state is on', function() {
-        subject.hud.manipulationState.current = 'manipulationOn';
-        subject.element.find('.mirador-manipulation-toggle').click();
-        expect(subject.hud.manipulationState.displayOff).toHaveBeenCalled();
-      });
-    });
-
-    // TODO: Find way to test annotation and manipulation tools without
-    // "displayOn inappropriate in current state pointer" error
-  });
-  describe('Order of imagesList', function() {
-    it('should be reversed for r-t-l sequences and manifests', function() {
-
-      this.fixture.viewingDirection = "right-to-left";
-      var manifest = new Mirador.Manifest(
-        this.fixture['@id'], 'IIIF', this.fixture
-      ),
-          imagesList = manifest.getCanvases(),
-          imagesListLtr = imagesList.concat(),
-          imagesListRtl = imagesList.concat();
-      imagesListRtl.reverse();
-      var imageView = new Mirador.ImageView({
-        manifest: manifest,
-        appendTo: this.appendTo,
-        windowId: this.windowId,
-        eventEmitter: this.eventEmitter,
-        imagesList: imagesList,
-        imagesListLtr: imagesListLtr,
-        imagesListRtl: imagesListRtl,
-        state: this.state,
-        bottomPanelAvailable: true,
-        annoEndpointAvailable: true,
-        canvasControls: this.canvasControls,
-        annotationState: this.canvasControls.annotations.annotationState
-      });
-      expect(imagesList[imagesList.length - 1]).toBe(imageView.imagesListRtl[0]);
-    });
-  });
-
-  describe('getPanByValue', function() {
-    beforeEach(function() {
-      subject.osd = {
-        viewport: {
-          getBounds: function(b) {
-            return viewportBounds;
-          }
-        }
-      };
-    });
-    it('should return half height and width', function() {
-      expect(subject.getPanByValue().x).toBeCloseTo(viewportBounds.width/2 , 2);
-      expect(subject.getPanByValue().y).toBeCloseTo(viewportBounds.height/2 , 2);
-    });
-  });
-
-  describe('setBounds', function() {
-    beforeEach(function() {
-      subject.osdOptions = {
-        osdBounds: {
-          degrees: 0,
-          height: 1,
-          width: 1,
-          x: -0.5,
-          y: -0.5
-        }
-      };
-      subject.osd = {
-        viewport: {
-          getBounds: function(b) {
-            return viewportBounds;
-          },
-          viewportToImageRectangle: function(ob) {
-            return imageBounds;
-          }
-        }
-      };
-      spyOn(subject.eventEmitter, 'publish').and.callThrough();
-    });
-    it('should update osdOptions and the viewport', function() {
-      subject.setBounds();
-      expect(subject.eventEmitter.publish).toHaveBeenCalled();
-    });
-  });
-
-  describe('toggle', function() {
-    beforeEach(function() {
-      spyOn(subject, 'show');
-      spyOn(subject, 'hide');
-    });
-    it('should call show for true', function() {
-      subject.toggle(true);
-      expect(subject.show).toHaveBeenCalled();
-      expect(subject.hide).not.toHaveBeenCalled();
-    });
-    it('should call hide for false', function() {
-      subject.toggle(false);
-      expect(subject.show).not.toHaveBeenCalled();
-      expect(subject.hide).toHaveBeenCalled();
-    });
-  });
-
-  describe('hide', function() {
-    beforeEach(function() {
-      spyOn(jQuery.prototype, 'hide').and.stub();
-    });
-    it('should hide', function() {
-      subject.hide();
-      expect(jQuery.prototype.hide).toHaveBeenCalled();
-    });
-  });
-
-  describe('show', function() {
-    beforeEach(function() {
-      spyOn(jQuery.prototype, 'show').and.stub();
-    });
-    it('should show', function() {
-      subject.show();
-      expect(jQuery.prototype.show).toHaveBeenCalled();
-    });
-  });
-
-  describe('adjustWidth', function() {
-    beforeEach(function() {
-      spyOn(subject.eventEmitter, 'publish').and.callThrough();
-    });
-    it('should publish REMOVE_CLASS event when hasClass is true', function() {
-      subject.adjustWidth('xekko', true);
-      expect(subject.eventEmitter.publish).toHaveBeenCalledWith('REMOVE_CLASS.'+this.windowId, 'xekko');
-    });
-    it('should publish ADD_CLASS event when hasClass is false', function() {
-      subject.adjustWidth('xekko', false);
-      expect(subject.eventEmitter.publish).toHaveBeenCalledWith('ADD_CLASS.'+this.windowId, 'xekko');
-    });
-  });
-
-  describe('adjustHeight', function() {
-    it('should remove class when hasClass is true', function() {
-      subject.element.addClass('xekko');
-      subject.adjustHeight('xekko', true);
-      expect(subject.element.hasClass('xekko')).toBe(false);
-    });
-    it('should add class when hasClass is false', function() {
-      subject.element.removeClass('xekko');
-      subject.adjustHeight('xekko', false);
-      expect(subject.element.hasClass('xekko')).toBe(true);
-    });
-  });
-
-  // WARNING: This method has been spied out to stop PhantomJS from crashing.
-  xdescribe('initialiseImageCanvas', function() {
-  });
-
-  describe('addAnnotationsLayer', function() {
-    beforeEach(function() {
-      spyOn(Mirador, 'AnnotationsLayer').and.stub();
-    });
-    it('should attempt to create AnnotationsLayer', function() {
-      subject.addAnnotationsLayer(subject.element);
-      expect(Mirador.AnnotationsLayer).toHaveBeenCalled();
-    });
-  });
-
-  describe('updateImage', function() {
-    beforeEach(function() {
-      var oldCanvasID = this.imagesList[0]['@id'];
-      subject.canvasID = oldCanvasID;
-      spyOn(subject.eventEmitter, 'publish');
-    });
-    describe('Different from original', function() {
-      beforeEach(function() {
-        subject.osd = {
-          viewport: {
-            imageToViewportRectangle: jasmine.createSpy('imageToViewportRectangle').and.returnValue(new OpenSeadragon.Rect(1, 2, 640, 480, 0)),
-            fitBoundsWithConstraints: jasmine.createSpy('fitBoundsWithConstraints'),
-            fitBounds: jasmine.createSpy('fitBoundsWithConstraints')
-          }
-        };
-        subject.updateImage(this.imagesList[1]['@id']);
-      });
-      it('should change the canvasID on the object', function() {
-        expect(subject.canvasID).not.toEqual(this.imagesList[0]['@id']);
-        expect(subject.canvasID).toEqual(this.imagesList[1]['@id']);
-      });
-      it('should fire event', function() {
-        expect(subject.eventEmitter.publish).toHaveBeenCalled();
-      });
-    });
-    describe('Same as original', function() {
-      beforeEach(function() {
-        subject.osd = {
-          close: function() {}
-        };
-        spyOn(subject.osd, 'close');
-        subject.updateImage(subject.canvasID);
-      });
-      it('should fire event', function() {
-        expect(subject.eventEmitter.publish).toHaveBeenCalled();
-      });
-    });
-  });
-
-  describe('next', function() {
-    beforeEach(function() {
-      spyOn(this.eventEmitter, 'publish').and.callThrough();
-    });
-    it('should move one canvas forward on non-last canvases', function() {
-      subject.currentImgIndex = 0;
-      subject.next();
-      expect(this.eventEmitter.publish).toHaveBeenCalledWith('SET_CURRENT_CANVAS_ID.' + this.windowId, this.imagesList[1]['@id']);
-    });
-    it('should stay on last canvas', function() {
-      subject.currentImgIndex = this.imagesList.length-1;
-      subject.next();
-      expect(this.eventEmitter.publish).not.toHaveBeenCalled();
-    });
-  });
-
-  describe('previous', function() {
-    beforeEach(function() {
-      spyOn(this.eventEmitter, 'publish').and.callThrough();
-    });
-    it('should move one canvas back on non-first canvases', function() {
-      subject.currentImgIndex = 1;
-      subject.previous();
-      expect(this.eventEmitter.publish).toHaveBeenCalledWith('SET_CURRENT_CANVAS_ID.' + this.windowId, this.imagesList[0]['@id']);
-    });
-    it('should stay on first canvas', function() {
-      subject.currentImgIndex = 0;
-      subject.previous();
-      expect(this.eventEmitter.publish).not.toHaveBeenCalled();
-    });
-  });
-
-  describe('manipulation tools', function() {
-    describe('mirror', function() {
-      beforeEach(function() {
-        var allCanvasControls = jQuery.extend(
-          true, {}, Mirador.DEFAULT_SETTINGS.windowSettings.canvasControls, {
-            'imageManipulation': { 'controls': { 'mirror': true } }
-          }
-        );
-        subject = new Mirador.ImageView(
-          jQuery.extend(true, subject, {canvasControls: allCanvasControls })
-        );
-        subject.osd = {
-          canvas: '<canvas></canvas>'
-        };
-      });
-      it('when clicked, fires enableManipulation, mirror', function() {
-        spyOn(subject.eventEmitter, 'publish');
-        subject.element.find('.mirador-osd-mirror').click();
-        expect(subject.eventEmitter.publish).toHaveBeenCalledWith('enableManipulation', 'mirror');
-      });
-      it('when clicked, adds mirador-mirror class', function() {
-        spyOn(jQuery.fn, 'addClass');
-        subject.element.find('.mirador-osd-mirror').click();
-        expect(jQuery.fn.addClass).toHaveBeenCalledWith('mirador-mirror');
-      });
-      it('when clicked again, removes mirador-mirror class', function() {
-        spyOn(jQuery.fn, 'removeClass');
-        subject.element.find('.mirador-osd-mirror').click();
-        subject.element.find('.mirador-osd-mirror').click();
-        expect(jQuery.fn.removeClass).toHaveBeenCalledWith('mirador-mirror');
-      });
-    });
-  });
-});
diff --git a/spec/widgets/layersTab.test.js b/spec/widgets/layersTab.test.js
deleted file mode 100644
index 58183daafcc63d844faeecd31c8b3c8bab62326d..0000000000000000000000000000000000000000
--- a/spec/widgets/layersTab.test.js
+++ /dev/null
@@ -1,346 +0,0 @@
-describe('LayersTab', function() {
-  var subject;
-
-  beforeEach(function() {
-    jasmine.getJSONFixtures().fixturesPath = 'spec/fixtures';
-    this.fixture = getJSONFixture('Richardson7manifest.json');
-    this.element = jQuery('<div class="tab-container" id="layersTab"></div>');
-    this.eventEmitter = new Mirador.EventEmitter();
-    this.manifest = new Mirador.Manifest(
-      this.fixture['@id'], 'IIIF', this.fixture
-    );
-    this.imagesList = this.manifest.getCanvases();
-    this.windowId = '380c9e54-7561-4010-a99f-f132f5dc13fd';
-    this.layersTab = new Mirador.LayersTab({
-      manifest: this.manifest,
-      appendTo: this.element,
-      visible: true,
-      windowId: this.windowId,
-      eventEmitter: this.eventEmitter,
-      imagesList: this.imagesList,
-      canvases: {
-        'https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981094.json': {
-          getVisibleImages: function() { return []; },
-          label: 'f. 033v - 034',
-          getBounds: function() {
-            return {
-              'x': 800,
-              'y': 600,
-              'width': 800,
-              'height': 600
-            };
-          },
-          show: function() {
-          },
-          images: [
-            {
-              id:1,
-              url: 'aurl',
-              getOpacity: function() {
-                return 0.3;
-              },
-              getVisible: function() {
-                return true;
-              },
-              getStatus: function() {
-                return 'drawn';
-              }
-            },
-            {id:2,
-              url: 'aurl',
-             getOpacity: function() {
-               return 1;
-             },
-             getVisible: function() {
-               return false;
-             },
-             getStatus: function() {
-               return 'requested';
-             }
-            }
-          ]
-        },
-        'https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981096.json': {
-          getVisibleImages: function() { return []; },
-          getBounds: function() {
-            return {
-              'x': 800,
-              'y': 600,
-              'width': 800,
-              'height': 600
-            };
-          },
-          show: function() {
-          },
-          images: [
-            {
-              url: 'aurl',
-              getOpacity: function() {
-                return 0.3;
-              },
-              getVisible: function() {
-                return 'true';
-              },
-              getStatus: function() {
-                return 'drawn';
-              }
-            },
-            {url: 'aurl',
-             getOpacity: function() {
-               return 1;
-             },
-             getVisible: function() {
-               return 'true';
-             },
-             getStatus: function() {
-               return 'requested';
-             }
-            }
-          ]
-        }
-      },
-      canvasID: 'https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981094.json'
-    });
-    subject = this.layersTab;
-  });
-
-  afterEach(function() {
-    delete this.layersTab;
-  });
-
-  describe('Initialization', function() {
-    it('should initialize', function() {
-      expect(true).toBe(true); //Force beforeEach() setup to run
-    });
-  });
-
-  describe('localState', function() {
-    var target_state = {
-      id: 'layersTab',
-      visible: true,
-      additional_key: true
-    };
-    it('should return the state as-is when given no arguments', function() {
-      expect(subject.localState()).toEqual(subject.layerTabState);
-      expect(subject.localState()).not.toEqual(target_state);
-    });
-    it('should set and return the new state when given arguments', function() {
-      expect(subject.localState(target_state, true)).toEqual(target_state);
-      expect(subject.localState()).toEqual(target_state);
-    });
-    it('should publish a layersTabStateUpdated event on non-initial setup', function() {
-      spyOn(this.eventEmitter, 'publish');
-      expect(subject.localState(target_state, false)).toEqual(target_state);
-      expect(this.eventEmitter.publish).toHaveBeenCalledWith('layersTabStateUpdated.' + this.windowId, target_state);
-      expect(subject.localState()).toEqual(target_state);
-    });
-  });
-
-  describe('tabStateUpdated', function() {
-    beforeEach(function() {
-      spyOn(subject.eventEmitter, 'publish').and.callThrough();
-    });
-    it('should set visible in the local state', function() {
-      jQuery.each([false, true], function(k, visible) {
-        subject.tabStateUpdated(visible);
-        expect(subject.localState().visible).toEqual(visible);
-        expect(subject.eventEmitter.publish).toHaveBeenCalled();
-      });
-    });
-  });
-
-  describe('listenForActions', function() {
-    it('should run layersTabStateUpdated upon getting a layersTabStateUpdated event', function() {
-      var data = {
-        selectedTabIndex: 0,
-        tabs: [
-          {
-            options: {
-              id: 'layersTab'
-            }
-          },
-          {
-            options: {
-              id: 'someOtherTab'
-            }
-          }
-        ],
-        layersTab: true
-      };
-      spyOn(subject, 'tabStateUpdated');
-      subject.eventEmitter.publish('tabStateUpdated.' + this.windowId, data);
-      expect(subject.tabStateUpdated).toHaveBeenCalledWith(true);
-    });
-    it('should rerender upon getting a layerTabStateUpdated event', function() {
-      var data = { visible: false };
-      spyOn(subject, 'render');
-      subject.eventEmitter.publish('layersTabStateUpdated.' + this.windowId, data);
-      expect(subject.render).toHaveBeenCalledWith(data);
-    });
-  });
-
-  describe('event callbacks', function() {
-    it('canvasIdUpdated', function() {
-      var mockCanvasId = 'https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981096.json';
-
-      expect(subject.localState().canvasID).toEqual('https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981094.json');
-      subject.canvasIdUpdated({}, mockCanvasId); // blank object represents event.
-      expect(subject.localState().canvasID).toEqual(mockCanvasId);
-    });
-
-    it('updateImageResourceStatus should show the resource status rendered appropriately', function() {
-      var mockImageResourceObject1 = {
-        id:2,
-        url: 'aurl',
-        getOpacity: function() {
-          return 1;
-        },
-        getVisible: function() {
-          return false;
-        },
-        getStatus: function() {
-          return 'loaded';
-        }
-      };
-      var mockImageResourceObject2 = {
-        id:2,
-        url: 'aurl',
-        getOpacity: function() {
-          return 1;
-        },
-        getVisible: function() {
-          return false;
-        },
-        getStatus: function() {
-          return 'requested';
-        }
-      };
-      var mockImageResourceObject3 = {
-        id:2,
-        url: 'aurl',
-        getOpacity: function() {
-          return 1;
-        },
-        getVisible: function() {
-          return false;
-        },
-        getStatus: function() {
-          return 'initialized';
-        }
-      };
-      var mockImageResourceObject4 = {
-        id:2,
-        url: 'aurl',
-        getOpacity: function() {
-          return 1;
-        },
-        getVisible: function() {
-          return false;
-        },
-        getStatus: function() {
-          return 'drawn';
-        }
-      };
-      expect(this.element.find('.layers-list-item').last()).toHaveClass('requested');
-      subject.updateImageResourceStatus({}, mockImageResourceObject1);
-      expect(this.element.find('.layers-list-item').last()).toHaveClass('loaded');
-
-      expect(this.element.find('.layers-list-item').last()).toHaveClass('loaded');
-      subject.updateImageResourceStatus({}, mockImageResourceObject2);
-      expect(this.element.find('.layers-list-item').last()).toHaveClass('requested');
-
-      expect(this.element.find('.layers-list-item').last()).toHaveClass('requested');
-      subject.updateImageResourceStatus({}, mockImageResourceObject3);
-      expect(this.element.find('.layers-list-item').last()).toHaveClass('initialized');
-
-      expect(this.element.find('.layers-list-item').last()).toHaveClass('initialized');
-      subject.updateImageResourceStatus({}, mockImageResourceObject4);
-      expect(this.element.find('.layers-list-item').last()).toHaveClass('drawn');
-    });
-
-    it('hideImageResource should set the visibility of the image resource to false', function() {
-      var mockImageResourceObject = {
-        id:1,
-        url: 'aurl',
-        getOpacity: function() {
-          return 0.3;
-        },
-        getVisible: function() {
-          return 'false';
-        },
-        getStatus: function() {
-          return 'drawn';
-        }
-      };
-      expect(this.element.find('.layers-listing li').first().find('.visibility-toggle')[0].checked).toBe(true);
-      subject.hideImageResource({}, mockImageResourceObject); // empty object mocks event object in callback
-      expect(this.element.find('.layers-listing li').first().find('.visibility-toggle')[0].checked).toBe(false);
-    });
-
-    it('showImageResource should set the visibility of the image resource to true', function() {
-      var mockImageResourceObject = {
-        id:2,
-        url: 'aurl',
-        getOpacity: function() {
-          return 0.3;
-        },
-        getVisible: function() {
-          return 'true';
-        },
-        getStatus: function() {
-          return 'drawn';
-        }
-      };
-      expect(this.element.find('.layers-listing li').last().find('.visibility-toggle')[0].checked).toBe(false);
-      expect(this.element.find('.layers-listing li').last().find('.opacity-label')).toHaveClass('disabled');
-      console.info(this.element.find('.layers-listing li').last().find('.opacity-label'));
-      subject.showImageResource({}, mockImageResourceObject); // empty object mocks event object in callback
-      expect(this.element.find('.layers-listing li').last().find('.opacity-label')).not.toHaveClass('disabled');
-      expect(this.element.find('.layers-listing li').last().find('.visibility-toggle')[0].checked).toBe(true);
-    });
-
-    it('updateImageResourceOpacity should adjust the value of the slider bar', function() {
-      var mockImageResourceObject = {
-        id:2,
-        url: 'aurl',
-        getOpacity: function() {
-          return 0.9;
-        },
-        getVisible: function() {
-          return 'true';
-        },
-        getStatus: function() {
-          return 'drawn';
-        }
-      };
-
-      expect(this.element.find('.layers-listing li').last().find('.opacity-slider').val()).toEqual('100');
-      subject.updateImageResourceOpacity({}, mockImageResourceObject); // empty object mocks event object in callback
-      expect(this.element.find('.layers-listing li').last().find('.opacity-slider').val()).toEqual('90');
-    });
-
-    it('imageFocusUpdated should display the disabled message and not the default template', function() {
-      expect(subject.localState().active).toBe(true);
-      subject.imageFocusUpdated('ThumbnailsView');
-      expect(subject.localState().active).toBe(false);
-      subject.imageFocusUpdated('ImageView');
-      expect(subject.localState().active).toBe(true);
-      subject.imageFocusUpdated('ScrollView');
-      expect(subject.localState().active).toBe(false);
-    });
-
-  });
-
-  describe('render', function() {
-    it('should hide itself if not visible', function() {
-      spyOn(jQuery.fn, 'hide');
-      subject.render({
-        canvasID: 'https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5981094.json',
-        active: true,
-        visible: false
-      });
-      expect(subject.element.hide).toHaveBeenCalled();
-      expect(this.element.find('.layers-listing').children().length).toEqual(2);
-    });
-  });
-});
diff --git a/spec/widgets/metadataView.test.js b/spec/widgets/metadataView.test.js
deleted file mode 100644
index 8cbe9d2a5ff65ff9541890251caef438c993d6e6..0000000000000000000000000000000000000000
--- a/spec/widgets/metadataView.test.js
+++ /dev/null
@@ -1,245 +0,0 @@
-describe('MetadataView', function() {
-  var subject;
-  beforeEach(function() {
-    jasmine.getJSONFixtures().fixturesPath = 'spec/fixtures';
-    this.fixture = getJSONFixture('metadataFixture.json');
-    this.manifest = new Mirador.Manifest(
-      this.fixture['@id'], 'IIIF', this.fixture
-    );
-    $('body').append('<div id="metadata-view-container"></div>');
-    this.sandbox = jQuery('#metadata-view-container');
-    this.windowId = '380c9e54-7561-4010-a99f-f132f5dc13fd';
-    this.canvasID = 'https://iiif.lib.harvard.edu/manifests/drs:5981093/canvas/canvas-5981522.json';
-    this.metadataView = new Mirador.MetadataView({
-      manifest: this.manifest,
-      appendTo: this.sandbox,
-      windowId: this.windowId,
-      canvasID: this.canvasID
-    });
-    subject = this.metadataView;
-  });
-
-  afterEach(function() {
-    delete this.metadataView;
-    this.sandbox.remove();
-    $('body').html('');
-  });
-
-  describe('Initialization', function() {
-    it('should initialize', function() {
-      expect(true).toBe(true); //Force beforeEach() setup to run
-    });
-  });
-
-  describe('stringifyObject', function() {
-    it('should stringify regular expressions', function() {
-      expect(subject.stringifyObject(/\w\S*/g)).toEqual('/\\w\\S*/');
-    });
-    it('should stringify arrays', function() {
-      expect(subject.stringifyObject(['a', 'b', 'c'])).toEqual('[ a, b, c ]');
-    });
-    it('should stringify objects', function() {
-      expect(subject.stringifyObject({ a: 3, b: 'waahoo'})).toEqual('<div style="margin-left:0px">a: 3<br/>b: waahoo</div>');
-      expect(subject.stringifyObject({ a: 3, b: { c: 'waahoo' }})).toEqual('<div style="margin-left:0px">a: 3<br/>b: <div style="margin-left:15px">c: waahoo</div></div>');
-    });
-    it('should return strings as-is', function() {
-      expect(subject.stringifyObject('abc')).toEqual('abc');
-    });
-  });
-
-  describe('stringifyRelated', function() {
-    it('should handle arrays of strings', function() {
-      expect(subject.stringifyRelated([
-        'http://projectmirador.org',
-        '',
-        'http://iiif.io',
-        'http://github.com/iiif'
-      ])).toEqual(
-        '<a href="http://projectmirador.org" target="_blank">http://projectmirador.org</a>' +
-        '<br/><a href="http://iiif.io" target="_blank">http://iiif.io</a>' +
-        '<br/><a href="http://github.com/iiif" target="_blank">http://github.com/iiif</a>'
-      );
-    });
-    it('should handle objects', function() {
-      expect(subject.stringifyRelated({
-        '@id': 'http://projectmirador.org',
-        label: 'Project Mirador',
-        format: 'text/html'
-      })).toEqual('<a href="http://projectmirador.org"  target="_blank">Project Mirador</a> ');
-      expect(subject.stringifyRelated({
-        '@id': 'http://projectmirador.org/logo.png',
-        format: 'image/png'
-      })).toEqual('<a href="http://projectmirador.org/logo.png"  target="_blank">http://projectmirador.org/logo.png</a> (image/png)');
-    });
-    it('should handle strings', function() {
-      expect(subject.stringifyRelated('This should not be changed.')).toEqual('This should not be changed.');
-    });
-    it('should handle strings with links', function() {
-      expect(subject.stringifyRelated('See us at http://projectmirador.org for more examples!')).toEqual('See us at <a href="http://projectmirador.org" target="_blank">http://projectmirador.org</a> for more examples!');
-    });
-  });
-
-  describe('getMetadataDetails', function() {
-    it('should grab English details', function() {
-      expect(subject.getMetadataDetails(this.manifest.jsonLd)).toEqual([
-        { label: 'label', value: '<b></b>' },
-        { label: 'description', value: '' },
-        { label: 'Single', value: 'default' },
-        { label: 'Multiple with default', value: 'English' },
-        { label: 'Multiple without default', value: 'English' },
-        { label: 'Single HTML with invalid elements', value: "<span>test bad</span>" },
-        { label: 'Single HTML with valid elements', value: "<span><b>bold</b><i>italic</i><br /><a href=\"http://iiif.io/\" target=\"_blank\"><img src=\"http://iiif.io/img/logo-iiif-34x30.png\" /></a></span>" },
-        { label: 'Single text with single URL', value: "There's an URL: http://example.com" },
-        { label: 'Single text with multiple URLs', value: "There's an URL: http://example.com and here's another: http://foobar.org" },
-        { label: "Single text with single URL already wrapped in an anchor tag, but without target blank", value: "There's an URL: <a href=\"http://example.com\">foobar</a>" }
-      ]);
-    });
-  });
-
-  describe('getMetadataRights', function() {
-    it('should grab rights when present', function() {
-      expect(subject.getMetadataRights({
-        license: 'CC-BY-ND 2.0',
-        attribution: 'Oodlepods Fellowship International'
-      })).toEqual([
-        { identifier: 'license', label: 'license', value: 'CC-BY-ND 2.0' },
-        { identifier: 'attribution', label: 'attribution', value: 'Oodlepods Fellowship International' }
-      ]);
-    });
-    it('should default to blanks when not present', function() {
-      expect(subject.getMetadataRights(this.manifest.jsonLd)).toEqual([
-        { identifier: 'license', label: 'license', value: '' },
-        { identifier: 'attribution', label: 'attribution', value: '' }
-      ]);
-    });
-  });
-
-  describe('getMetadataLinks', function() {
-    it('should always display the manifest id', function() {
-      expect(subject.getMetadataLinks(this.manifest.jsonLd)[2].value).toContain('http://www.example.org/iiif/book1/manifest');
-    });
-    it('should grab metadata links when present', function() {
-      expect(subject.getMetadataLinks({
-        related: "http://news.example.net",
-        seeAlso: "http://oodlepods.example.net",
-        '@id': "http://www.example.org/iiif/book1/manifest",
-        within: "Oodlepods Monthly Issue #6"
-      })).toEqual([
-        { identifier: 'related', label: 'related', value: '<a href="http://news.example.net" target="_blank">http://news.example.net</a>' },
-        { identifier: 'seeAlso', label: 'seeAlso', value: '<a href="http://oodlepods.example.net" target="_blank">http://oodlepods.example.net</a>' },
-        { identifier: 'manifest', label: 'manifest', value: '<a href="http://www.example.org/iiif/book1/manifest" target="_blank">http://www.example.org/iiif/book1/manifest</a>'},
-        { identifier: 'within', label: 'within', value: 'Oodlepods Monthly Issue #6' }
-      ]);
-    });
-    it('should default to blanks when not present', function() {
-      expect(subject.getMetadataLinks(this.manifest.jsonLd)).toEqual([
-        { identifier: 'related', label: 'related', value: '' },
-        { identifier: 'seeAlso', label: 'seeAlso', value: '' },
-        { identifier: 'manifest', label: 'manifest', value: '<a href="http://www.example.org/iiif/book1/manifest" target="_blank">http://www.example.org/iiif/book1/manifest</a>'},
-        { identifier: 'within', label: 'within', value: '' }
-      ]);
-    });
-  });
-
-  describe('extractLabelFromAttribute', function() {
-    it('Converts attributes', function() {
-      expect(subject.extractLabelFromAttribute('super   WaahooLabelFromAttr')).toEqual('super WaahooLabelFromAttr');
-    });
-  });
-
-  xdescribe('bindEvents', function() {
-
-  });
-
-  describe('toggle', function() {
-    beforeEach(function() {
-      spyOn(subject, 'show');
-      spyOn(subject, 'hide');
-    });
-    it('should call show for true', function() {
-      subject.toggle(true);
-      expect(subject.show).toHaveBeenCalled();
-      expect(subject.hide).not.toHaveBeenCalled();
-    });
-    it('should call hide for false', function() {
-      subject.toggle(false);
-      expect(subject.show).not.toHaveBeenCalled();
-      expect(subject.hide).toHaveBeenCalled();
-    });
-  });
-
-  describe('show', function() {
-    it('should show the metadataView', function () {
-      spyOn(jQuery.fn, 'show');
-      subject.show();
-      expect(jQuery.fn.show).toHaveBeenCalled();
-    });
-    it('should show at the parent level if embedded', function() {
-      var dummyParent = document.createElement('span');
-      subject.panel = { panel: "fake" };
-      spyOn(subject.element, 'parent').and.returnValue(dummyParent);
-      spyOn(jQuery.fn, 'show');
-      subject.show();
-      expect(jQuery.fn.show).toHaveBeenCalled();
-    });
-  });
-
-  describe('hide', function() {
-    it('should hide the metadataView', function () {
-      spyOn(jQuery.fn, 'hide');
-      subject.hide();
-      expect(jQuery.fn.hide).toHaveBeenCalled();
-    });
-    it('should hide at the parent level if embedded', function() {
-      var dummyParent = document.createElement('span');
-      subject.panel = { panel: "fake" };
-      spyOn(subject.element, 'parent').and.returnValue(dummyParent);
-      spyOn(jQuery.fn, 'hide');
-      subject.hide();
-      expect(jQuery.fn.hide).toHaveBeenCalled();
-    });
-  });
-
-  describe('addLinksToUris', function() {
-    it('should replace URIs with links', function() {
-      expect(subject.addLinksToUris('See us at http://projectmirador.org for more examples!')).toEqual('See us at <a href="http://projectmirador.org" target="_blank">http://projectmirador.org</a> for more examples!');
-    });
-    it('should leave other things alone', function() {
-      expect(subject.addLinksToUris('This should not be changed.')).toEqual('This should not be changed.');
-    });
-  });
-
-  describe('renderWithin', function() {
-    it('should render simple strings as-is', function() {
-      var within = "http://example.com";
-      expect(Mirador.MetadataView.prototype.getWithin(within)).toBe(within);
-    });
-
-    it('should render a collection object without a label', function() {
-      var within = {'@id': 'http://example.com', '@type': 'sc:Collection'};
-      expect(Mirador.MetadataView.prototype.getWithin(within)).toBe(
-        '<a href="http://example.com" target="_blank">http://example.com</a>');
-    });
-
-    it('should render a collection object with a label', function() {
-      var within = {'@id': 'http://example.com', '@type': 'sc:Collection', 'label': 'foobar'};
-      expect(Mirador.MetadataView.prototype.getWithin(within)).toBe(
-        '<a href="http://example.com" target="_blank">foobar</a>');
-    });
-
-    it('should render a list of collection objects', function() {
-      var within = [
-        {'@id': 'http://example.com', '@type': 'sc:Collection', 'label': 'foobar'},
-        {'@id': 'http://foo.org', '@type': 'sc:Collection', 'label': 'barfoo'}];
-      expect(Mirador.MetadataView.prototype.getWithin(within)).toBe(
-        '<a href="http://example.com" target="_blank">foobar</a><br/>' +
-        '<a href="http://foo.org" target="_blank">barfoo</a>');
-    });
-
-    it('should render a list of strings <br/>-concatenated', function() {
-      var within = ['http://example.com/foo', 'http://example.com/bar'];
-      expect(Mirador.MetadataView.prototype.getWithin(within)).toBe(
-        'http://example.com/foo<br/>http://example.com/bar');
-    });
-  });
-});
diff --git a/spec/widgets/scrollView.test.js b/spec/widgets/scrollView.test.js
deleted file mode 100644
index fa6feb4ff275d1c998536452c89c4b22474492b1..0000000000000000000000000000000000000000
--- a/spec/widgets/scrollView.test.js
+++ /dev/null
@@ -1,55 +0,0 @@
-describe('ScrollView', function() {
-  var subject;
-  beforeEach(function() {
-    jasmine.getJSONFixtures().fixturesPath = 'spec/fixtures';
-    this.viewContainer = document.createElement('div', {
-      class: 'view-container'
-    });
-    this.fixture = getJSONFixture('Richardson7manifest.json');
-    this.manifest = new Mirador.Manifest(
-      this.fixture['@id'], 'IIIF', this.fixture
-    );
-    this.appendTo = this.viewContainer;
-    this.eventEmitter = new Mirador.EventEmitter;
-    this.imagesList = this.manifest.getCanvases();
-    this.canvasControls = jQuery.extend(
-      true, {}, Mirador.DEFAULT_SETTINGS.windowSettings.canvasControls
-    );
-    this.state = state = new Mirador.SaveController(jQuery.extend(
-      true, {}, Mirador.DEFAULT_SETTINGS, {eventEmitter: this.eventEmitter}
-    ));
-    this.windowId = '380c9e54-7561-4010-a99f-f132f5dc13fd';
-    this.scrollView = new Mirador.ScrollView({
-      manifest: this.manifest,
-      appendTo: this.appendTo,
-      windowId: this.windowId,
-      eventEmitter: this.eventEmitter,
-      imagesList: this.imagesList,
-      imagesListLtr: this.imagesList.concat(),
-      state: this.state,
-      vDirectionStatus: 'rtl',
-      bottomPanelAvailable: true,
-      annoEndpointAvailable: false,
-      canvasControls: this.canvasControls,
-      annotationState: this.canvasControls.annotations.annotationState,
-      thumbInfo: {listingCssCls: 'scroll-listing-thumbs', thumbnailCls: 'scroll-view'}
-    });
-    subject = this.scrollView;
-  });
-
-  afterEach(function() {
-    delete this.scrollView;
-  });
-
-  describe('Initialization', function() {
-    it('should initialize', function() {
-      expect(jQuery(subject.appendTo).find('.scroll-view')).toExist();
-    });
-  });
-
-  describe('Right to Left scrollview', function() {
-    it('should have the correct CSS Class applied', function() {
-      expect(jQuery(subject.appendTo).find('.scroll-view')).toHaveClass('v-direction-rtl');
-    });
-  });
-});
diff --git a/spec/widgets/searchWithin.test.js b/spec/widgets/searchWithin.test.js
deleted file mode 100644
index 3b546edee6d8729912cf902d4a220a84ff25b8f2..0000000000000000000000000000000000000000
--- a/spec/widgets/searchWithin.test.js
+++ /dev/null
@@ -1,176 +0,0 @@
-
-describe('Search tab', function() {
-  beforeEach(function(){
-    var _this = this;
-
-    jasmine.getJSONFixtures().fixturesPath = 'spec/fixtures';
-
-    this.searchURI = "/search?q="
-    this.eventEmitter = new Mirador.EventEmitter();
-    this.jsonLd = getJSONFixture('searchManifest.json');
-    this.results = getJSONFixture('searchManifest.results.json');
-    this.manifest = new Mirador.Manifest(null, null, this.jsonLd);
-    this.jsonLdNoSearch = getJSONFixture('BNF-condorcet-florus-dispersus-manifest.json');
-    this.noResults = getJSONFixture('searchManifest.noresults.json');
-    this.manifestNoSearch = new Mirador.Manifest(null, null, this.jsonLdNoSearch);
-    this.sandbox = sandbox();
-    this.windowId = '380c9e54-7561-4010-a99f-f132f5dc13fd';
-    this.createSearchTab = function(manifest) {
-      return new Mirador.SearchTab({
-        manifest: manifest,
-        appendTo: _this.sandbox,
-        windowId: this.windowId,
-        canvasID: 1234,
-        eventEmitter: _this.eventEmitter
-      });
-    }
-  });
-
-  afterEach(function() {
-  });
-
-  describe('on instantiation', function(){
-    it('should instantiate a search tab object', function() {
-      expect(this.createSearchTab.bind(this.createSearchTab, this.manifest)).not.toThrow();
-    });
-  });
-
-  describe('on initialization', function(){
-    it('should render a search tab', function() {
-      this.createSearchTab(this.manifest);
-      expect(this.sandbox.find('.search-results')).toExist();
-    });
-
-    it('should render a search form', function() {
-      this.createSearchTab(this.manifest);
-      expect(this.sandbox.find('#search-within-form')).toExist();
-    });
-
-    it('should render a search tab when there is not such service in the manifest', function() {
-      this.createSearchTab(this.manifestNoSearch);
-      expect(this.sandbox.find('.search-results')).toExist();
-    });
-
-    it('should not render a search form when there is not such service in the manifest', function() {
-      this.createSearchTab(this.manifestNoSearch);
-      expect(this.sandbox.find('#search-within-form')).not.toExist();
-    });
-
-    it('should allow to search text', function() {
-      this.createSearchTab(this.manifest);
-      var _this = this,
-          searchForm = this.sandbox.find('#search-within-form'),
-          searchInput = this.sandbox.find('#search-within-form input.js-query');
-      expect(searchInput).toExist();
-      searchInput.val('found');
-      expect(searchForm.trigger.bind(searchForm, 'submit')).not.toThrow();
-    });
-  });
-
-  describe('on search', function(){
-    beforeEach(function() {
-      this.createSearchTab(this.manifest);
-      this.server = sinon.fakeServer.create();
-      this.server.respondImmediately = true;
-      this.server.respondWith("GET", this.searchURI + "found", [
-        200,
-        { 'Content-Type': 'application/json' },
-        JSON.stringify(this.results)
-      ]);
-      this.server.respondWith("GET", this.searchURI + "notfound", [
-        200,
-        { 'Content-Type': 'application/json' },
-        JSON.stringify(this.noResults)
-      ]);
-    });
-
-    afterEach(function() {
-      this.server.restore();
-    });
-
-    it('should show results after searching for some text', function() {
-      this.sandbox.find('#search-within-form input.js-query').val('found');
-      this.sandbox.find('#search-within-form').trigger('submit');
-      expect(this.sandbox.find('.search-result')).toExist();
-    });
-
-    it('should not show results when no results are found', function() {
-      this.sandbox.find('#search-within-form input.js-query').val('notfound');
-      this.sandbox.find('#search-within-form').trigger('submit');
-      expect(this.sandbox.find('.search-result')).not.toExist();
-    });
-
-    it('should allow clicking on results after searching for some text', function() {
-      this.sandbox.find('#search-within-form input.js-query').val('found');
-      this.sandbox.find('#search-within-form').trigger('submit');
-      var hit = this.sandbox.find('.result-paragraph').first();
-      expect(hit.trigger.bind(hit, 'click')).not.toThrow();
-    });
-
-    it('should navigate to a specific canvas and bounds after clicking on a search result', function() {
-      spyOn(this.eventEmitter, 'publish').and.callThrough();
-      this.sandbox.find('#search-within-form input.js-query').val('found');
-      this.sandbox.find('#search-within-form').trigger('submit');
-      var hit = this.sandbox.find('.result-paragraph').first(),
-          canvasID = hit.attr('data-canvasid'),
-          coordinates = hit.attr('data-coordinates'),
-          xywh = coordinates && coordinates.split('=')[1].split(',').map(Number),
-          bounds = xywh && {x: xywh[0], y: xywh[1], width: xywh[2], height: xywh[3]};
-      hit.trigger('click');
-      expect(this.eventEmitter.publish).toHaveBeenCalledWith('SET_CURRENT_CANVAS_ID.' + this.windowId, {
-        "canvasID": canvasID,
-        "bounds": bounds
-      });
-    });
-
-    it('should show annotations when a search result is linked to more than one', function() {
-      this.sandbox.find('#search-within-form input.js-query').val('found');
-      this.sandbox.find('#search-within-form').trigger('submit');
-      expect(this.sandbox.find('.search-annotation').first()).toExist();
-    });
-
-    it('should allow clicking on annotations when a search result is linked to more than one', function() {
-      this.sandbox.find('#search-within-form input.js-query').val('found');
-      this.sandbox.find('#search-within-form').trigger('submit');
-      var anno = this.sandbox.find('.search-annotation').first();
-      expect(anno).toExist();
-      expect(anno.trigger.bind(anno, 'click')).not.toThrow();
-    });
-
-    it('should navigate to a specific bounds and canvas after clicking on an search result linked annotation', function() {
-      spyOn(this.eventEmitter, 'publish').and.callThrough();
-      this.sandbox.find('#search-within-form input.js-query').val('found');
-      this.sandbox.find('#search-within-form').trigger('submit');
-      var anno = this.sandbox.find('.search-annotation').first(),
-          canvasID = anno.attr('data-canvasid'),
-          coordinates = anno.attr('data-coordinates'),
-          xywh = coordinates && coordinates.split('=')[1].split(',').map(Number),
-          bounds = xywh && {x: xywh[0], y: xywh[1], width: xywh[2], height: xywh[3]};
-      anno.trigger('click');
-      expect(this.eventEmitter.publish).toHaveBeenCalledWith('SET_CURRENT_CANVAS_ID.' + this.windowId, {
-        "canvasID": canvasID,
-        "bounds": bounds
-      });
-    });
-
-    it('should not change canvas after clicking on a second annotation linked to a search result', function() {
-      this.sandbox.find('#search-within-form input.js-query').val('found');
-      this.sandbox.find('#search-within-form').trigger('submit');
-      var anno1 = this.sandbox.find('.search-annotation').first(),
-          anno2 = this.sandbox.find('.search-annotation:nth-child(2)').first(),
-          canvasID1 = anno2.attr('data-canvasid'),
-          canvasID2 = anno2.attr('data-canvasid'),
-          coordinates = anno2.attr('data-coordinates'),
-          xywh = coordinates && coordinates.split('=')[1].split(',').map(Number),
-          bounds = xywh && {x: xywh[0], y: xywh[1], width: xywh[2], height: xywh[3]};
-      anno1.trigger('click');
-      spyOn(this.eventEmitter, 'publish').and.callThrough();
-      anno2.trigger('click');
-      expect(canvasID1).toBe(canvasID2);
-      expect(this.eventEmitter.publish).toHaveBeenCalledWith('SET_CURRENT_CANVAS_ID.' + this.windowId, {
-        "canvasID": canvasID2,
-        "bounds": bounds
-      });
-    });
-  });
-});
diff --git a/spec/widgets/sidePanel.test.js b/spec/widgets/sidePanel.test.js
deleted file mode 100644
index 1acc3aab45684d49b3f7f355438b21c4bf801116..0000000000000000000000000000000000000000
--- a/spec/widgets/sidePanel.test.js
+++ /dev/null
@@ -1,187 +0,0 @@
-describe('SidePanel', function() {
-
-  function createSidePanel(sidePanelOptions) {
-    sidePanelOptions = sidePanelOptions || {};
-
-    var eventEmitter = new Mirador.EventEmitter();
-    var state = new Mirador.SaveController(jQuery.extend(
-      true, {}, Mirador.DEFAULT_SETTINGS, {eventEmitter: eventEmitter}
-    ));
-
-    jasmine.getJSONFixtures().fixturesPath = 'spec/fixtures';
-    var fixture = getJSONFixture('BNF-condorcet-florus-dispersus-manifest.json');
-    var manifest = new Mirador.Manifest(fixture['@id'], 'IIIF', fixture);
-    var canvasID = manifest.getCanvases()[0]['@id'];
-    var appendTo = jQuery('<div class="sidePanel"></div>');
-
-    var config = jQuery.extend(true, {
-      windowId: '380c9e54-7561-4010-a99f-f132f5dc13fd',
-      state: state,
-      eventEmitter: eventEmitter,
-      appendTo: appendTo,
-      manifest: manifest,
-      canvasID: canvasID,
-      layersTabAvailable: false,
-      tocTabAvailable: false,
-      searchTabAvailable: false,
-      annotationsTabAvailable: false,
-      hasStructures: false
-    }, sidePanelOptions);
-
-    return new Mirador.SidePanel(config);
-  }
-
-  describe('Methods using fixed configuration', function() {
-    beforeEach(function() {
-      spyOn(Mirador, 'TableOfContents').and.callThrough();
-      spyOn(Mirador, 'SearchTab').and.callThrough();
-      spyOn(Mirador, 'LayersTab').and.callThrough();
-      spyOn(Mirador, 'AnnotationsTab').and.callThrough();
-      this.sidePanel = createSidePanel();
-    });
-
-    afterEach(function() {
-      delete this.sidePanel;
-    });
-
-    describe('Initialization', function() {
-      it('should initialize', function() {
-        expect(this.sidePanel instanceof Mirador.SidePanel).toBeTruthy();
-        expect(this.sidePanel.appendTo).toBeTruthy();
-      });
-    });
-
-    describe('loadSidePanelComponents', function() {
-      describe('should show all unavailable by default', function() {
-        this.sidePanel = createSidePanel();
-        it('should show toc is not available', function(){
-          expect(Mirador.TableOfContents).not.toHaveBeenCalled();
-        });
-        it('should show searchTab is not available', function(){
-          expect(Mirador.SearchTab).not.toHaveBeenCalled();
-        });
-        it('should show layerTab is not available', function(){
-          expect(Mirador.LayersTab).not.toHaveBeenCalled();
-        });
-      });
-
-      describe('Initialization', function() {
-        it('should initialize', function() {
-          expect(true).toBe(true); //Force beforeEach() setup to run
-          expect(this.sidePanel instanceof Mirador.SidePanel).toBeTruthy();
-          expect(this.sidePanel.appendTo).toBeTruthy();
-        });
-      });
-
-      describe('update', function() {
-        it('should make panels unavailable or available', function() {
-          this.sidePanel.update('search', false);
-          expect(this.sidePanel.panelState.tabs[2].options.available).toBe(false);
-          this.sidePanel.update('search', true);
-          expect(this.sidePanel.panelState.tabs[2].options.available).toBe(true);
-        });
-      });
-
-      describe('updateState', function() {
-        var target_state;
-        beforeEach(function() {
-          target_state = {};
-          jQuery.extend(target_state, this.sidePanel.panelState, {
-            additional_key: true
-          });
-        });
-        it('should return the state as-is when given no arguments', function() {
-          expect(this.sidePanel.updateState()).toEqual(this.sidePanel.panelState);
-          expect(this.sidePanel.updateState()).not.toEqual(target_state);
-        });
-        it('should set and return the new state when given arguments', function() {
-          expect(this.sidePanel.updateState(target_state, true)).toEqual(target_state);
-          expect(this.sidePanel.updateState()).toEqual(target_state);
-        });
-        it('should publish a annotationsTabStateUpdated event on non-initial setup', function() {
-          spyOn(this.sidePanel.eventEmitter, 'publish');
-          expect(this.sidePanel.updateState(target_state, false)).toEqual(target_state);
-          expect(this.sidePanel.eventEmitter.publish).toHaveBeenCalledWith('sidePanelStateUpdated.' + this.sidePanel.windowId, target_state);
-          expect(this.sidePanel.updateState()).toEqual(target_state);
-        });
-      });
-
-      describe('panelToggled', function() {
-        it('should turn open on and off', function() {
-          this.sidePanel.panelToggled();
-          expect(this.sidePanel.panelState.open).toBeFalsy();
-          this.sidePanel.panelToggled();
-          expect(this.sidePanel.panelState.open).toBeTruthy();
-        });
-      });
-
-      describe('listenForActions', function() {
-        it('should re-render upon a sidePanelStateUpdated event', function() {
-          spyOn(this.sidePanel, 'render');
-          this.sidePanel.eventEmitter.publish('sidePanelStateUpdated.'+this.sidePanel.windowId, {data:'waahoo'});
-          expect(this.sidePanel.render).toHaveBeenCalledWith({data:'waahoo'});
-        });
-        it('should toggle upon a sidePanelToggled event', function() {
-          spyOn(this.sidePanel, 'panelToggled');
-          this.sidePanel.eventEmitter.publish('sidePanelToggled.'+this.sidePanel.windowId);
-          expect(this.sidePanel.panelToggled).toHaveBeenCalled();
-        });
-        it('should update canvas ID upon a currentCanvasIDUpdated event', function() {
-          this.sidePanel.eventEmitter.publish('currentCanvasIDUpdated.'+this.sidePanel.windowId, 'newcanvas');
-          expect(this.sidePanel.canvasID).toEqual('newcanvas');
-        });
-      });
-
-    });
-
-  });
-
-  describe('loadSidePanelComponents with varying configurations', function() {
-    afterEach(function(){
-      delete this.sidePanel;
-    });
-
-    describe('should initialise all tabs if they are configured to be available', function() {
-      beforeEach(function() {
-        spyOn(Mirador, 'TableOfContents');
-        spyOn(Mirador, 'SearchTab');
-        spyOn(Mirador, 'LayersTab');
-        this.sidePanel = createSidePanel({
-          layersTabAvailable: true,
-          tocTabAvailable: true,
-          searchTabAvailable: true
-        });
-      });
-      it('should initialise Toc', function(){
-        expect(Mirador.TableOfContents).toHaveBeenCalled();
-      });
-      it('should initialise SearchTab', function(){
-        expect(Mirador.SearchTab).toHaveBeenCalled();
-      });
-      it('should initialise LayersTab', function(){
-        expect(Mirador.LayersTab).toHaveBeenCalled();
-      });
-      describe('toggle', function() {
-        beforeEach(function() {
-          spyOn(jQuery.fn, 'hide');
-          spyOn(jQuery.fn, 'show');
-          spyOn(this.sidePanel.eventEmitter, 'publish');
-        });
-        it('should toggle on', function() {
-          this.sidePanel.toggle(true);
-          expect(jQuery.fn.hide).not.toHaveBeenCalled();
-          expect(jQuery.fn.show).toHaveBeenCalled();
-          expect(this.sidePanel.eventEmitter.publish).toHaveBeenCalledWith('REMOVE_CLASS.'+this.sidePanel.windowId, 'focus-max-width');
-          expect(this.sidePanel.eventEmitter.publish).toHaveBeenCalledWith('SHOW_ICON_TOC.'+this.sidePanel.windowId);
-        });
-        it('should toggle off', function() {
-          this.sidePanel.toggle(false);
-          expect(jQuery.fn.hide).toHaveBeenCalled();
-          expect(jQuery.fn.show).not.toHaveBeenCalled();
-          expect(this.sidePanel.eventEmitter.publish).toHaveBeenCalledWith('ADD_CLASS.'+this.sidePanel.windowId, 'focus-max-width');
-          expect(this.sidePanel.eventEmitter.publish).toHaveBeenCalledWith('HIDE_ICON_TOC.'+this.sidePanel.windowId);
-        });
-      });
-    });
-  });
-});
diff --git a/spec/widgets/statusBar.test.js b/spec/widgets/statusBar.test.js
deleted file mode 100644
index 43ca1d8be105ec59eb442cd70063030c58026ec7..0000000000000000000000000000000000000000
--- a/spec/widgets/statusBar.test.js
+++ /dev/null
@@ -1,20 +0,0 @@
-describe('WidgetStatusBar', function() {
-  var subject;
-  beforeEach(function() {
-    subject = new Mirador.WidgetStatusBar({})
-  });
-
-  afterEach(function() {
-    delete subject;
-  });
-
-  describe('Initialization', function() {
-    it('should initialize', function() {
-      expect(true).toBe(true); //Force beforeEach() setup to run
-    });
-  });
-
-  xdescribe('', function() {
-
-  });
-}); 
diff --git a/spec/widgets/tabs.test.js b/spec/widgets/tabs.test.js
deleted file mode 100644
index df5428dc6b66e5518f1948b6482352dbe33b5bf6..0000000000000000000000000000000000000000
--- a/spec/widgets/tabs.test.js
+++ /dev/null
@@ -1,167 +0,0 @@
-describe('Tabs', function() {
-  var subject;
-  beforeEach(function() {
-    jQuery('body').append('<div id="mytabs"></div>');
-    this.sandbox = jQuery('#mytabs');
-    this.windowId = '380c9e54-7561-4010-a99f-f132f5dc13fd';
-    this.eventEmitter = new Mirador.EventEmitter();
-    this.tabList = [{
-      name : 'toc',
-      options : {
-        available: true,
-        id:'tocTab', 
-        label:'Index'
-      }
-    },
-    {
-      name : 'layers',
-      options : {
-        available: true,
-        id:'layersTab', 
-        label:'Layers'
-      }
-    }];
-    this.tabs = new Mirador.Tabs({
-      appendTo: this.sandbox,
-      windowId: this.windowId,
-      tabs: this.tabList,
-      eventEmitter: this.eventEmitter
-    });
-    subject = this.tabs;
-  });
-
-  afterEach(function() {
-    delete this.tabs;
-    this.sandbox.remove();
-  });
-
-  describe('Initialization', function() {
-    it('should initialize with multiple tabs', function() {
-      expect(true).toBe(true); //Force beforeEach() to run
-      expect($('.tab').length).toEqual(2);
-    });
-    it('should initialize with Mirador defaults', function() {
-      this.sandbox.html('');
-      this.tabs = new Mirador.Tabs({
-        appendTo: this.sandbox,
-        windowId: this.windowId,
-        tabs: [{
-          name : 'toc',
-          options : {
-            available: true,
-            id:'tocTab', 
-            label:'Index'
-          }
-        },
-        {
-          name : 'layers',
-          options : {
-            available: false,
-            id:'layersTab', 
-            label:'Layers'
-          }
-        }],
-        eventEmitter: this.eventEmitter
-      });
-      subject = this.tabs;
-      expect($('.tab').length).toEqual(0);
-    });
-  });
-
-  describe('state', function() {
-    var target_state 
-    beforeEach(function() {
-      target_state = {};
-      jQuery.extend(target_state, subject.tabState, {
-        additional_key: true
-      });
-    });
-    it('should return the state as-is when given no arguments', function() {
-      expect(subject.state()).toEqual(subject.tabState);
-      expect(subject.state()).not.toEqual(target_state);
-   });
-    it('should set and return the new state when given arguments', function() {
-      expect(subject.state(target_state, true)).toEqual(target_state);
-      expect(subject.state()).toEqual(target_state);
-    });
-    it('should publish a annotationsTabStateUpdated event on non-initial setup', function() {
-      spyOn(this.eventEmitter, 'publish');
-      expect(subject.state(target_state, false)).toEqual(target_state);
-      expect(this.eventEmitter.publish).toHaveBeenCalledWith('tabStateUpdated.' + this.windowId, target_state);
-      expect(subject.state()).toEqual(target_state);
-    });
-  });
-
-  describe('tabSelected', function() {
-    jQuery.each([0, 1], function(k, i) {
-      it('should switch to tab ' + i, function() {
-        subject.tabSelected(i);
-        expect(subject.state().selectedTabIndex).toEqual(i);
-      });
-    });
-  });
-
-  describe('getTemplateData', function() {
-    it('returns annotation and TOC tab info', function() {
-      expect(Object.keys(subject.getTemplateData())).toEqual(['annotationsTab', 'tocTab', 'searchTab']);
-    });
-  });
-
-  describe('listenForActions', function() {
-    it('should re-render upon a tabStateUpdated event', function() {
-      spyOn(subject, 'render');
-      this.eventEmitter.publish('tabStateUpdated.' + this.windowId, { stuff: 'dummyData' });
-      expect(subject.render).toHaveBeenCalledWith({stuff:'dummyData'});
-    });
-    it('should re-select tabs upon a tabSelected event', function() {
-      spyOn(subject, 'tabSelected');
-      this.eventEmitter.publish('tabSelected.' + this.windowId, 2);
-      expect(subject.tabSelected).toHaveBeenCalledWith(2);
-    });
-  });
-
-  describe('bindEvents', function() {
-    it('should fire tabSelected for clicking on a tab', function() {
-      spyOn(subject.eventEmitter, 'publish').and.callThrough();
-      jQuery.each([0, 1], function(_, i) {
-        subject.element.find('.tab').eq(i).click();
-        expect(subject.eventEmitter.publish).toHaveBeenCalledWith('tabSelected.' + subject.windowId, i);
-        expect(subject.state().selectedTabIndex).toEqual(i);
-      });
-    });
-  });
-
-  describe('render', function() {
-    describe('Re-renders', function() {
-      it('should change tab selection', function() {
-        subject.render({
-          tabs : this.tabList,
-          selectedTabIndex: 1
-        });
-        expect($('.tab').first()).not.toHaveClass('selected');
-        expect($('.tab').eq(1)).toHaveClass('selected');
-      });
-    });
-    describe('From scratch', function() {
-      beforeEach(function() {
-        this.sandbox.html('');
-        subject.element = null;
-      });
-      it('should hide tab selection if only one is available', function() {
-        this.tabList[1].options.available = false;
-        subject.hasStructures = false;
-        spyOn(subject.eventEmitter, 'publish');
-        subject.render({
-          tabs: this.tabList,
-          selectedTabIndex: 0
-        });
-        expect(subject.eventEmitter.publish).toHaveBeenCalledWith('sidePanelVisibilityByTab.'+subject.windowId, false);
-        expect(subject.element.find('.tab')).not.toBeInDOM();
-      });
-    });
-  });
-
-  xdescribe('toggle', function() {
-
-  });
-}); 
diff --git a/spec/widgets/thumbnailsView.test.js b/spec/widgets/thumbnailsView.test.js
deleted file mode 100644
index a3149bd8e79646b2e3e6c5ea78bd3de4f3cdd038..0000000000000000000000000000000000000000
--- a/spec/widgets/thumbnailsView.test.js
+++ /dev/null
@@ -1,313 +0,0 @@
-describe('ThumbnailsView', function () {
-  var subject;
-  
-  beforeEach(function() {
-    jasmine.getJSONFixtures().fixturesPath = 'spec/fixtures';
-    this.viewContainer = document.createElement('div', {
-      class: 'view-container'
-    });
-    this.fixture = getJSONFixture('Richardson7manifest.json');
-    this.manifest = new Mirador.Manifest(
-      this.fixture['@id'], 'IIIF', this.fixture
-    );
-    this.appendTo = this.viewContainer;
-    this.eventEmitter = new Mirador.EventEmitter;
-    this.imagesList = this.manifest.getCanvases();
-    this.canvasControls = jQuery.extend(
-      true, {}, Mirador.DEFAULT_SETTINGS.windowSettings.canvasControls
-    );
-    this.state = state = new Mirador.SaveController(jQuery.extend(
-      true, {}, Mirador.DEFAULT_SETTINGS, {eventEmitter: this.eventEmitter}
-    ));
-    this.windowId = '380c9e54-7561-4010-a99f-f132f5dc13fd';
-    this.thumbnailsView = new Mirador.ThumbnailsView({
-      manifest: this.manifest,
-      appendTo: this.appendTo,
-      windowId: this.windowId,
-      eventEmitter: this.eventEmitter,
-      imagesList: this.imagesList,
-      state: this.state,
-      bottomPanelAvailable: true,
-      annoEndpointAvailable: false,
-      canvasControls: this.canvasControls,
-      annotationState: this.canvasControls.annotations.annotationState
-    });
-    subject = this.thumbnailsView;
-  });
-
-  afterEach(function() {
-    delete this.thumbnailsView;
-  });
-
-  describe('Initialization', function () {
-    it('should initialize', function () {
-      expect(true).toBe(true); // Force initial beforeEach() to run
-      expect(subject.currentImgIndex).toEqual(0);
-    });
-    it('should initialize with a defined canvas to show', function() {
-      this.thumbnailsView = new Mirador.ThumbnailsView({
-        manifest: this.manifest,
-        appendTo: this.appendTo,
-        windowId: this.windowId,
-        eventEmitter: this.eventEmitter,
-        imagesList: this.imagesList,
-        state: this.state,
-        bottomPanelAvailable: true,
-        annoEndpointAvailable: false,
-        canvasControls: this.canvasControls,
-        annotationState: this.canvasControls.annotations.annotationState,
-        canvasID: this.imagesList[3]['@id']
-      });
-      subject = this.thumbnailsView;
-      expect(subject.currentImgIndex).toEqual(3);
-    });
-  });
-
-  describe('r-t-l viewing', function() {
-    it('should add proper CSS to list items, floating right', function() {
-      var thumbnailsView = new Mirador.ThumbnailsView({
-        manifest: this.manifest,
-        appendTo: this.appendTo,
-        windowId: this.windowId,
-        eventEmitter: this.eventEmitter,
-        imagesList: this.imagesList,
-        imagesListLtr: this.imagesList.concat(),
-        vDirectionStatus: 'rtl',
-        state: this.state,
-        bottomPanelAvailable: true,
-        annoEndpointAvailable: false,
-        canvasControls: this.canvasControls,
-        annotationState: this.canvasControls.annotations.annotationState,
-        canvasId: this.imagesList[3]['@id']
-      });
-
-      expect(jQuery(thumbnailsView.appendTo).find('.thumbnail-view li')).toHaveClass('thumbnail-rtl');
-    });
-  });
-
-  describe('loadContent', function () {
-    beforeEach(function() {
-      this.imagesList[this.imagesList.length-1].width = 0; // Zero out width of last canvas, as a test
-    });
-    it('should add template to appendTo', function() {
-      jQuery(subject.appendTo).html("");
-      subject.loadContent();
-      expect(jQuery(subject.appendTo).find('.thumbnail-image').length).toEqual(this.imagesList.length);
-    });
-  });
-
-  describe('updateImage', function () {
-    var canvas_id, selector;
-    it('should reapply highlighting correctly', function() {
-      canvas_id = this.imagesList[5]['@id'];
-      subject.updateImage(canvas_id);
-      selector = "img[data-image-id='"+canvas_id+"']";
-      expect(jQuery(subject.element).find('img').first().is('.highlight')).toBe(false);
-      expect(jQuery(subject.element).find(selector).is('.highlight')).toBe(true);
-    });
-  });
-
-  describe('updateFocusImages', function () {
-    var canvas_ids, selector;
-    it('should reapply highlighting correctly', function() {
-      canvas_ids = [this.imagesList[5]['@id'], this.imagesList[6]['@id']];
-      subject.updateFocusImages(canvas_ids);
-      selector = "img[data-image-id='"+this.imagesList[5]['@id']+"']";
-      expect(jQuery(subject.element).find('img').first().is('.highlight')).toBe(false);
-      expect(jQuery(subject.element).find(selector).is('.highlight')).toBe(true);
-      selector = "img[data-image-id='"+this.imagesList[6]['@id']+"']";
-      expect(jQuery(subject.element).find(selector).is('.highlight')).toBe(true);
-    });
-  });
-
-  describe('currentImageChanged', function () {
-    it('should scroll to make the highlighted item visible', function(done) {
-      subject.updateImage(this.imagesList[12]['@id']);
-      subject.currentImageChanged();
-      setTimeout(function() {
-        expect(subject.element.scrollLeft()).not.toBeLessThan(subject.element.find('.highlight').position().left);
-        done();
-      }, 1000);
-    });
-    it('should scroll on BookView', function(done) {
-      var windowObject = {
-        viewType: 'BookView'
-      };
-      spyOn(subject.state, 'getWindowObjectById').and.returnValue(windowObject);
-      subject.updateImage(this.imagesList[12]['@id']);
-      subject.currentImageChanged();
-      setTimeout(function() {
-        expect(subject.element.scrollLeft()).not.toBeLessThan(subject.element.find('.highlight').position().left);
-        done();
-      }, 1000);
-    });
-  });
-
-  describe('listenForActions', function() {
-    it('should respond to currentCanvasIDUpdated broadcasts', function() {
-      spyOn(subject, 'currentImageChanged');
-      this.eventEmitter.publish('currentCanvasIDUpdated.' + this.windowId);
-      expect(subject.currentImageChanged).toHaveBeenCalled();
-    });
-    it('should respond to windowResize', function(done) {
-      spyOn(subject, 'loadImages');
-      this.eventEmitter.publish('windowResize');
-      setTimeout(function() {
-        expect(subject.loadImages).toHaveBeenCalled();
-        done();
-      }, 200);
-    })
-  });
-
-  describe('bindEvents', function () {
-    it('should make images fade in after loading', function(done) {
-      spyOn(jQuery.fn, 'hide').and.callThrough();
-      spyOn(jQuery.fn, 'fadeIn').and.callThrough();
-      jQuery(subject.element).find('img').first().trigger('load');
-      setTimeout(function() {
-        expect(jQuery.fn.hide).toHaveBeenCalled();
-        expect(jQuery.fn.fadeIn).toHaveBeenCalledWith(jasmine.any(Number), jasmine.any(Function));
-        done();
-      }, 800);
-    });
-    it('should call loadImages when scrolling', function() {
-      spyOn(subject, 'loadImages');
-      expect(subject.loadImages).not.toHaveBeenCalled();
-      jQuery(subject.element).trigger('scroll');
-      expect(subject.loadImages).toHaveBeenCalled();
-    });
-    it('should change canvases when a thumbnail is clicked', function() {
-      spyOn(this.eventEmitter, 'publish');
-      jQuery(subject.element).find('.thumbnail-image').first().click();
-      expect(this.eventEmitter.publish).toHaveBeenCalledWith('SET_CURRENT_CANVAS_ID.' + this.windowId, this.imagesList[0]['@id']);
-    });
-  });
-
-  describe('toggle', function() {
-    beforeEach(function() {
-      spyOn(subject, 'show');
-      spyOn(subject, 'hide');
-    });
-    it('should call show for true', function() {
-      subject.toggle(true);
-      expect(subject.show).toHaveBeenCalled();
-      expect(subject.hide).not.toHaveBeenCalled();
-    });
-    it('should call hide for false', function() {
-      subject.toggle(false);
-      expect(subject.show).not.toHaveBeenCalled();
-      expect(subject.hide).toHaveBeenCalled();
-    });
-  });
-
-  describe('loadImages', function () {
-    it('should load visible images only', function() {
-      var images_loaded = 0;
-      spyOn(Mirador, 'isOnScreen').and.callFake(function() {
-        return ++images_loaded > 2;
-      });
-      spyOn(subject, 'loadImage');
-      subject.loadImages();
-      expect(subject.loadImage).toHaveBeenCalledWith(jasmine.any(Object), jasmine.any(String));
-      expect(subject.loadImage.calls.count()).toEqual(this.imagesList.length-2);
-    });
-  });
-
-  describe('loadImage', function () {
-    var imageElement, spyImagePromise;
-    var url = "http://www.test.org/iiif/00001/full/full/0/default.jpg";
-    beforeEach(function() {
-      imageElement = document.createElement('img');
-      spyImagePromise = jQuery.Deferred();
-      spyOn(Mirador, 'createImagePromise').and.returnValue(spyImagePromise);
-    });
-    it('should set src after promise is fulfilled', function() {
-      subject.loadImage(imageElement, url);
-      spyImagePromise.resolve(url);
-      expect(jQuery(imageElement).attr('src')).toEqual(url);
-    });
-  });
-
-  describe('reloadImages', function () {
-    it('should set attributes', function() {
-      spyOn(jQuery.fn, 'attr').and.callThrough();
-      subject.reloadImages(200, false);
-      expect(jQuery.fn.attr).toHaveBeenCalledWith('height', 200);
-      expect(jQuery.fn.attr).toHaveBeenCalledWith('width', jasmine.any(Number));
-      expect(jQuery.fn.attr).toHaveBeenCalledWith('src', '');
-    });
-    it('should trigger show when requested', function() {
-      spyOn(subject, 'show');
-      subject.reloadImages(150, true);
-      expect(subject.show).toHaveBeenCalled();
-    });
-  });
-
-  describe('hide', function () {
-    it('should hide the thumbnailsView', function () {
-      spyOn(jQuery.fn, 'hide');
-      subject.hide();
-      expect(jQuery.fn.hide).toHaveBeenCalled();
-    });
-    it('should hide at the parent level if embedded', function() {
-      var dummyParent = document.createElement('span');
-      subject.panel = { panel: "fake" };
-      spyOn(subject.element, 'parent').and.returnValue(dummyParent);
-      spyOn(jQuery.fn, 'hide');
-      subject.hide();
-      expect(jQuery.fn.hide).toHaveBeenCalled();
-    });
-  });
-
-  describe('show', function () {
-    it('should show the thumbnailsView', function () {
-      spyOn(jQuery.fn, 'show');
-      subject.show();
-      expect(jQuery.fn.show).toHaveBeenCalled();
-    });
-    it('should load content when fully shown', function(done) {
-      spyOn(subject, 'loadImages');
-      subject.show();
-      setTimeout(function() {
-        expect(subject.loadImages).toHaveBeenCalled();
-        done();
-      }, 400);
-    });
-    it('should show at the parent level if embedded', function() {
-      var dummyParent = document.createElement('span');
-      subject.panel = { panel: "fake" };
-      spyOn(subject.element, 'parent').and.returnValue(dummyParent);
-      spyOn(jQuery.fn, 'show');
-      subject.show();
-      expect(jQuery.fn.show).toHaveBeenCalled();
-    });
-  });
-
-
-  describe('adjustWidth', function() {
-    beforeEach(function() {
-      spyOn(subject.eventEmitter, 'publish').and.callThrough();
-    });
-    it('should publish REMOVE_CLASS event when hasClass is true', function() {
-      subject.adjustWidth('xekko', true);
-      expect(subject.eventEmitter.publish).toHaveBeenCalledWith('REMOVE_CLASS.'+this.windowId, 'xekko');
-    });
-    it('should publish ADD_CLASS event when hasClass is false', function() {
-      subject.adjustWidth('xekko', false);
-      expect(subject.eventEmitter.publish).toHaveBeenCalledWith('ADD_CLASS.'+this.windowId, 'xekko');
-    });
-  });
-
-  describe('adjustHeight', function() {
-    it('should remove class when hasClass is true', function() {
-      subject.element.addClass('xekko');
-      subject.adjustHeight('xekko', true);
-      expect(subject.element.hasClass('xekko')).toBe(false);
-    });
-    it('should add class when hasClass is false', function() {
-      subject.element.removeClass('xekko');
-      subject.adjustHeight('xekko', false);
-      expect(subject.element.hasClass('xekko')).toBe(true);
-    });
-  });
-});
diff --git a/spec/widgets/toc.test.js b/spec/widgets/toc.test.js
deleted file mode 100644
index 052df26a8cccb5efeb7204a103133d704ac21c00..0000000000000000000000000000000000000000
--- a/spec/widgets/toc.test.js
+++ /dev/null
@@ -1,246 +0,0 @@
-
-describe('Table of Contents', function() {
-  beforeEach(function(){
-    jasmine.getJSONFixtures().fixturesPath = 'spec/fixtures';
-
-    this.eventEmitter = new Mirador.EventEmitter();
-    this.v1SimpleStructures = getJSONFixture('simpleStructuresFixtureV1.json'),
-    this.v1SimpleStructuresTemplateData = '[{"@id":"http://www.example.org/iiif/book1/range/r1.json","@type":"sc:Range","label":"Introduction","canvases":["http://www.example.org/iiif/book1/canvas/p1.json"],"id":"http://www.example.org/iiif/book1/range/r1.json","within":"root","level":0,"children":[{"@id":"http://www.example.org/iiif/book1/range/r2.json","@type":"sc:Range","label":"Part 1","within":"http://www.example.org/iiif/book1/range/r1.json","canvases":["http://www.example.org/iiif/book1/canvas/p2.json","http://www.example.org/iiif/book1/canvas/p3.json#xywh=0,0,750,300"],"id":"http://www.example.org/iiif/book1/range/r2.json","level":1}]}]',
-    this.simpleStructuresElement = '<ul class="toc"><li class="leaf-item"><h2><a class="toc-link" data-rangeid="http://www.example.org/iiif/book1/range/r2.json"><i class="fa fa-caret-right toc-caret"></i><i class="fa fa-certificate star"></i><span>Part 1</span></a></h2></li><li></li></ul>';
-    this.v2SimpleStructures = getJSONFixture('simpleStructuresFixtureV2.json'),
-    // v21SimpleStructures = getJSONFixture('simpleStructuresFixtureV21.json'),
-    this.realisticV1 = getJSONFixture('Richardson7manifest.json'),
-    this.realisticV2 = getJSONFixture('BNF-condorcet-florus-dispersus-manifest.json');
-    // this.realisticV21 = {},
-
-    this.sandbox = sandbox();
-
-  });
-
-  afterEach(function() {
-  });
-
-  describe('Initialisation', function(){
-
-    it('should render a table of contents element', function() {
-      var testToc = new Mirador.TableOfContents({
-        structures: this.v1SimpleStructures.structures,
-        manifestVersion: '1',
-        appendTo: this.sandbox,
-        windowId: 'dummyID',
-        canvasID: 1234,
-        eventEmitter: this.eventEmitter
-      });
-
-      expect(this.sandbox.find('.toc')).toExist();
-      expect(testToc.structures.length).toEqual(2);
-    });
-
-    it('should assign a range ID to toc link elements', function() {
-      var testToc = new Mirador.TableOfContents({
-        structures: this.v1SimpleStructures.structures,
-        manifestVersion: '1',
-        appendTo: this.sandbox,
-        windowId: 'dummyID',
-        canvasID: 1234,
-        eventEmitter: this.eventEmitter
-      });
-
-      expect(this.sandbox.find('.toc-link')).toExist();
-      expect(this.sandbox.find('.toc-link').first().data().rangeid).toBe('http://www.example.org/iiif/book1/range/r2.json');
-    });
-
-    it('should render an empty template if there are no structures', function(){
-      var testToc = new Mirador.TableOfContents({
-        structures: [],
-        appendTo: this.sandbox,
-        windowId: 'dummyID',
-        canvasID: 1234,
-        eventEmitter: this.eventEmitter
-      });
-
-      expect(this.sandbox.find('.toc')).toExist();
-      expect(this.sandbox.find('h2 span')).toContainText(i18next.t('noIndex'));
-    });
-
-    it('should set tocData with a cached element for each range', function() {
-      var testToc = new Mirador.TableOfContents({
-        structures: this.v1SimpleStructures.structures,
-        manifestVersion: '1',
-        appendTo: this.sandbox,
-        windowId: 'dummyID',
-        canvasID: 1234,
-        eventEmitter: this.eventEmitter
-      });
-
-      expect(Object.keys(testToc.tocData).length).toEqual(2);
-      expect(testToc.tocData['http://www.example.org/iiif/book1/range/r1.json']).not.toBeUndefined();
-      expect(testToc.tocData['http://www.example.org/iiif/book1/range/r2.json']).not.toBeUndefined();
-
-      expect(testToc.tocData['http://www.example.org/iiif/book1/range/r1.json'].element).not.toBeUndefined();
-      expect(testToc.tocData['http://www.example.org/iiif/book1/range/r2.json'].element).not.toBeUndefined();
-    });
-  });
-
-  describe('Template data', function() {
-    xit('should set structures property with children if there is only one "structure"', function() {
-    });
-
-    xit('should set structures property with top-level ranges if there is more than one "structure"', function() {
-
-    });
-
-    it('should return an HTML element from the structures (v1.0)', function() {
-      var testToc = new Mirador.TableOfContents({
-        structures: this.v1SimpleStructures.structures,
-        manifestVersion: '1',
-        appendTo: this.sandbox,
-        windowId: 'dummyID',
-        canvasID: 1234,
-        eventEmitter: this.eventEmitter
-      });
-
-      expect(testToc.structures.length).toEqual(2);
-      expect(testToc.element[0].outerHTML)
-        .toBe(this.simpleStructuresElement);
-    });
-
-    it('should return an HTML element from the structures (v2.0)', function() {
-
-      var testToc = new Mirador.TableOfContents({
-        structures: this.v2SimpleStructures.structures,
-        manifestVersion: '2',
-        appendTo: this.sandbox,
-        windowId: 'dummyID',
-        canvasID: 1234,
-        eventEmitter: this.eventEmitter
-      });
-
-      expect(testToc.structures.length).toEqual(2);
-      expect(testToc.element[0].outerHTML)
-        .toBe(this.simpleStructuresElement);
-    });
-
-    xit('should return a tree of ranges from the structures (v2.1)', function() {
-
-    });
-  });
-
-  describe('render conditions', function() {
-    it('should render the correct selected ranges for the initial canvasID', function() {
-      var testToc = new Mirador.TableOfContents({
-        structures: this.v2SimpleStructures.structures,
-        manifestVersion: '2',
-        appendTo: this.sandbox,
-        windowId: 'dummyID',
-        canvasID: 1234,
-        eventEmitter: this.eventEmitter
-      });
-    });
-    it('should re-render when the canvasID is updated', function() {
-    });
-    it('should re-render when a caret is clicked', function() {
-    });
-  });
-
-  describe('Open, closed, selected, unselected states', function() {
-    it('should set an item to active when one of its child canvases are deemed the "currentCanvasID"', function(){
-    });
-    it('should close the previous selected range when a new range is selected', function() {
-    });
-    it('should set a toc item to "open" when the caret is clicked', function() {
-    });
-    it('should close the previous selected range when a new range is selected, even when another range has been manually expanded', function(){
-
-    });
-    it('should close the previous selected range when a new range is selected, even when another range inside the parent range of the newly selected range has been manually expanded', function() {
-    });
-    it('should scroll to a newly selected range', function() {
-
-    });
-    it('should not scroll to a range that has been toggled open when the selected canvas has not changed', function() {
-
-    });
-  });
-
-  describe('Tab state interactions', function() {
-    var testToc;
-    beforeEach(function() {
-      testToc = new Mirador.TableOfContents({
-        structures: this.v1SimpleStructures.structures,
-        manifestVersion: '1',
-        appendTo: this.sandbox,
-        windowId: 'dummyID',
-        canvasID: 1234,
-        eventEmitter: this.eventEmitter
-      });
-      spyOn(testToc.element, 'show');
-      spyOn(testToc.element, 'hide');
-    });
-    
-    it('shows the toc element on tabStateUpdated when the selected tab is not the tocTab', function(){
-      var data = {
-        tabs: [{options:{id:'navTab'}}, {options:{id:'tocTab'}}],
-        selectedTabIndex: 1
-      };
-      testToc.tabStateUpdated(data);
-      expect(testToc.element.show).toHaveBeenCalled();
-    });
-
-    it('hides the toc element on tabStateUpdated when the selected tab is the tocTab', function(){
-      var data = {
-        tabs: [{options:{id:'navTab'}}, {options:{id:'tocTab'}}],
-        selectedTabIndex: 0
-      };
-      testToc.tabStateUpdated(data);
-      expect(testToc.element.hide).toHaveBeenCalled();
-    });
-  });
-  
-  it('should set active', function() {
-    var testToc = new Mirador.TableOfContents({
-      structures: this.v1SimpleStructures.structures,
-      manifestVersion: '1',
-      appendTo: this.sandbox,
-      windowId: 'dummyID',
-      canvasID: 1234,
-      eventEmitter: this.eventEmitter
-    });
-    testToc.setActive(false);
-    expect(testToc.active).toBe(false);
-    testToc.setActive(true);
-    expect(testToc.active).toBe(true);
-  });
-  
-  it('should hide', function() {
-    var testToc = new Mirador.TableOfContents({
-      structures: this.v1SimpleStructures.structures,
-      manifestVersion: '1',
-      appendTo: this.sandbox,
-      windowId: 'dummyID',
-      canvasID: 1234,
-      eventEmitter: this.eventEmitter
-    });
-    spyOn(jQuery.fn, 'hide');
-    spyOn(this.eventEmitter, 'publish');
-    testToc.hide();
-    expect(jQuery.fn.hide).toHaveBeenCalled();
-    expect(this.eventEmitter.publish).toHaveBeenCalledWith('ADD_CLASS.dummyID', 'focus-max-width');
-  });
-  
-  it('should show', function() {
-    var testToc = new Mirador.TableOfContents({
-      structures: this.v1SimpleStructures.structures,
-      manifestVersion: '1',
-      appendTo: this.sandbox,
-      windowId: 'dummyID',
-      canvasID: 1234,
-      eventEmitter: this.eventEmitter
-    });
-    spyOn(jQuery.fn, 'show');
-    spyOn(this.eventEmitter, 'publish');
-    testToc.show();
-    expect(jQuery.fn.show).toHaveBeenCalled();
-    expect(this.eventEmitter.publish).toHaveBeenCalledWith('REMOVE_CLASS.dummyID', 'focus-max-width');
-  });
-});
diff --git a/spec/workspace.test.js b/spec/workspace.test.js
deleted file mode 100644
index c1e20515cd1f3faa0404a45348812f9a03d85fa7..0000000000000000000000000000000000000000
--- a/spec/workspace.test.js
+++ /dev/null
@@ -1,230 +0,0 @@
-describe('Workspace', function() {
-  beforeEach(function(){
-    this.eventEmitter = new Mirador.EventEmitter();
-    this.viewer = {};
-    this.viewerDiv = jQuery('<div/>');
-    jasmine.getFixtures().set(this.viewerDiv);
-
-    //register Handlebars helper
-    Handlebars.registerHelper('t', function(i18n_key) {
-      var result = i18next.t(i18n_key);
-      return new Handlebars.SafeString(result);
-    });
-  });
-
-  describe('splits', function() {
-    it('should have three siblings instead of two', function() {
-      this.workspace = new Mirador.Workspace({
-        parent:                     this.viewer, //viewer
-        appendTo: this.viewerDiv,
-        layoutDescription: Mirador.layoutDescriptionFromGridString('1x2'),
-        eventEmitter: this.eventEmitter
-      });
-      expect(this.workspace.layoutDescription.children.length).toEqual(2);
-      expect(this.workspace.slots.length).toEqual(2);
-
-      this.workspace.splitRight(this.workspace.slots[0]);
-
-      expect(this.workspace.layoutDescription.children.length).toEqual(3);
-      expect(this.workspace.slots.length).toEqual(3);
-    });
-
-    it('should have new children and structure', function() {
-      this.workspace = new Mirador.Workspace({
-        parent:                     this.viewer, //viewer
-        appendTo: this.viewerDiv,
-        layoutDescription: Mirador.layoutDescriptionFromGridString('1x2'),
-        eventEmitter: this.eventEmitter
-      });
-      var originalId = this.workspace.layoutDescription.children[0].id;
-
-      expect(this.workspace.slots.length).toBe(2);
-
-      this.workspace.splitDown(this.workspace.slots[0]);
-
-      expect(this.workspace.layoutDescription.children[0].children.length).toBe(2);
-      expect(this.workspace.slots.length).toBe(3);
-      expect(this.workspace.layoutDescription.children[0].children[0].id).toBe(originalId);
-    });
-
-    it('should have new children and structure (even if root)', function() {
-      this.workspace = new Mirador.Workspace({
-        parent:                     this.viewer, //viewer
-        appendTo: this.viewerDiv,
-        layoutDescription: Mirador.layoutDescriptionFromGridString('1x1'),
-        eventEmitter: this.eventEmitter
-      });
-      var originalId = this.workspace.layoutDescription.id;
-
-      expect(this.workspace.layoutDescription.children).toBe(undefined);
-      expect(this.workspace.slots.length).toBe(1);
-
-      this.workspace.splitRight(this.workspace.slots[0]);
-
-      expect(this.workspace.layoutDescription.children.length).toEqual(2);
-      expect(this.workspace.slots.length).toEqual(2);
-      expect(this.workspace.layoutDescription.children[0].id).toBe(originalId);
-    });
-
-    it('should have new children and structure splitting down or up (even if root)', function() {
-      this.workspace = new Mirador.Workspace({
-        parent:                     this.viewer, //viewer
-        appendTo: this.viewerDiv,
-        layoutDescription: Mirador.layoutDescriptionFromGridString('1x1'),
-        eventEmitter: this.eventEmitter
-      });
-      var originalId = this.workspace.layoutDescription.id;
-
-      expect(this.workspace.layoutDescription.children).toBe(undefined);
-      expect(this.workspace.slots.length).toBe(1);
-
-      this.workspace.splitDown(this.workspace.slots[0]);
-
-      expect(this.workspace.layoutDescription.children.length).toEqual(2);
-      expect(this.workspace.layoutDescription.children[0].type).toBe('row');
-      expect(this.workspace.slots.length).toEqual(2);
-      expect(this.workspace.layoutDescription.children[0].id).toBe(originalId);
-    });
-  });
-
-  describe('removeNode', function() {
-    it('should remove a sibling (going from 3 to 2)', function() {
-      this.workspace = new Mirador.Workspace({
-        parent:                     this.viewer, //viewer
-        appendTo: this.viewerDiv,
-        layoutDescription: Mirador.layoutDescriptionFromGridString('1x3'),
-        eventEmitter: this.eventEmitter
-      });
-      var originalId = this.workspace.layoutDescription.id;
-
-      expect(this.workspace.layoutDescription.children.length).toBe(3);
-      expect(this.workspace.slots.length).toBe(3);
-
-      var newDescriptionChildrenIds = this.workspace.layoutDescription.children.map(function(child) {
-        return child.id;
-      });
-      newDescriptionChildrenIds.splice(0,1);
-
-      newSlotIDs = this.workspace.slots.map(function(slot) {
-        return slot.slotID;
-      });
-      newSlotIDs.splice(0,1);
-
-      this.workspace.removeNode(this.workspace.slots[0]);
-
-
-      expect(this.workspace.layoutDescription.children.length).toEqual(2);
-      expect(this.workspace.slots.length).toEqual(2);
-      expect(this.workspace.layoutDescription.children.map(function(child) {
-        return child.id;
-      })).toEqual(newDescriptionChildrenIds);
-      expect(this.workspace.slots.map(function(slot) {
-        return slot.slotID;
-      })).toEqual(newSlotIDs);
-    });
-
-    it('should remove sibling and create new parent with same id as target', function() {
-      this.workspace = new Mirador.Workspace({
-        parent:                     this.viewer, //viewer
-        appendTo: this.viewerDiv,
-        layoutDescription: Mirador.layoutDescriptionFromGridString('1x2'),
-        eventEmitter: this.eventEmitter
-      });
-      var originalId = this.workspace.slots[1].slotID;
-
-      expect(this.workspace.layoutDescription.children.length).toBe(2);
-      expect(this.workspace.slots.length).toBe(2);
-
-      this.workspace.splitDown(this.workspace.slots[0]);
-      var newSlotID = this.workspace.slots[2].slotID;
-
-      this.workspace.removeNode(this.workspace.slots[0]);
-
-      expect(this.workspace.layoutDescription.children.length).toBe(2);
-      expect(this.workspace.slots.length).toEqual(2);
-      expect(this.workspace.layoutDescription.children[0].id).toBe(newSlotID);
-      expect(this.workspace.slots[1].slotID).toBe(newSlotID);
-    });
-
-    xit('should remove sibling and create new parent with same id as target (even if siblings have children)', function() {
-      this.workspace = new Mirador.Workspace({
-        parent:                     this.viewer, //viewer
-        appendTo: this.viewerDiv,
-        layoutDescription: Mirador.layoutDescriptionFromGridString('1x2'),
-        eventEmitter: this.eventEmitter
-      });
-      var originalId = this.workspace.slots[1].slotID;
-
-      expect(this.workspace.layoutDescription.children.length).toBe(2);
-      expect(this.workspace.slots.length).toBe(2);
-
-      // split the right slot (column)
-      this.workspace.splitDown(this.workspace.slots[1]);
-      var newSlotID = this.workspace.slots[2].slotID;
-
-      // remove the left slot...
-      this.workspace.removeNode(this.workspace.slots[0]);
-
-      // there should still be 2 slots, since the other column had children
-      expect(this.workspace.layoutDescription.children.length).toBe(2);
-      expect(this.workspace.slots.length).toEqual(2);
-      expect(this.workspace.layoutDescription.children[1].id).toBe(newSlotID);
-      expect(this.workspace.slots[1].slotID).toBe(newSlotID);
-    });
-
-    xit('should remove sibling and create new parent with same id as target (even if root)', function() {
-      this.workspace = new Mirador.Workspace({
-        parent:                     this.viewer, //viewer
-        appendTo: this.viewerDiv,
-        layoutDescription: Mirador.layoutDescriptionFromGridString('1x2'),
-        eventEmitter: this.eventEmitter
-      });
-      var originalId = this.workspace.slots[1].slotID;
-
-      expect(this.workspace.layoutDescription.children.length).toBe(2);
-      expect(this.workspace.slots.length).toBe(2);
-
-      this.workspace.removeNode(this.workspace.slots[0]);
-
-      expect(this.workspace.layoutDescription.children).toBe(undefined);
-      expect(this.workspace.slots.length).toEqual(1);
-      expect(this.workspace.layoutDescription.id).toBe(originalId);
-      expect(this.workspace.slots[0].slotID).toBe(originalId);
-    });
-
-  });
-
-  xdescribe('Adding Windows', function() {
-    var mockManifest = {
-
-    };
-    var windowConfig = {
-
-    };
-    expect(this.workspace.windows.length).toBe(0);
-    this.workspace.addWindow(windowConfig);
-    expect(this.workspace.windows.length).toBe(1);
-  });
-
-  describe('Removing Windows', function() {
-
-  });
-
-  xdescribe('Resetting Layout', function() {
-    var mockManifest = {
-
-    };
-    var windowConfig = {
-
-    };
-    expect(this.workspace.windows.length).toBe(0);
-    this.workspace.addWindow(windowConfig);
-    this.workspace.addWindow(windowConfig);
-    this.workspace.addWindow(windowConfig);
-    expect(this.workspace.windows.length).toBe(3);
-    this.resetLayout('1x2');
-    expect(this.workspace.windows.length).toBe(2);
-    expect(this.workspace.slots.length).toBe(2);
-    expect(this.workspace.slots[0].window).not().toBe(null);
-  });
-});
diff --git a/spec/workspaces/slot.test.js b/spec/workspaces/slot.test.js
deleted file mode 100644
index 17633bf4d74b715e495bf6035545fc3cbc6be561..0000000000000000000000000000000000000000
--- a/spec/workspaces/slot.test.js
+++ /dev/null
@@ -1,252 +0,0 @@
-describe('Slot', function () {
-  var subject;
-  beforeEach(function () {
-    var windowElement = jQuery('<div id="MOCK_WINDOW_1"/>');
-    this.appendTo = jQuery('<div/>').append(windowElement);
-    this.eventEmitter = new Mirador.EventEmitter();
-
-    var mockWindow = {
-      id: 'MOCK_WINDOW_1',
-      element: windowElement
-    };
-    
-    var windowConfig = {
-      state: new Mirador.SaveController(jQuery.extend(true, {}, Mirador.DEFAULT_SETTINGS, {eventEmitter:this.eventEmitter}))
-    };
-    
-    jasmine.getJSONFixtures().fixturesPath = 'spec/fixtures';
-    this.slot = new Mirador.Slot({
-      window: mockWindow,
-      eventEmitter: this.eventEmitter,
-      state: windowConfig.state,
-      layoutAddress: '1,1'
-    });
-    subject = this.slot;
-  });
-
-  describe('listenForActions', function () {
-    beforeEach(function() {
-      spyOn(subject.eventEmitter, 'publish').and.callThrough();
-    });
-    it('should respond to layoutChanged', function() {
-      subject.eventEmitter.publish('layoutChanged', '2x2');
-      expect(subject.eventEmitter.publish).toHaveBeenCalledWith('windowSlotAddressUpdated', {
-        id: subject.window.id,
-        slotAddress: '1,1'
-      });
-    });
-    it('should respond to HIDE_REMOVE_SLOT', function() {
-      spyOn(jQuery.fn, 'hide');
-      subject.eventEmitter.publish('HIDE_REMOVE_SLOT');
-      expect(jQuery.fn.hide).toHaveBeenCalled();
-      expect(subject.eventEmitter.publish).toHaveBeenCalledWith('HIDE_REMOVE_OBJECT.MOCK_WINDOW_1');
-    });
-    it('should respond to SHOW_REMOVE_SLOT', function() {
-      spyOn(jQuery.fn, 'show');
-      subject.eventEmitter.publish('SHOW_REMOVE_SLOT');
-      expect(jQuery.fn.show).toHaveBeenCalled();
-      expect(subject.eventEmitter.publish).toHaveBeenCalledWith('SHOW_REMOVE_OBJECT.MOCK_WINDOW_1');
-    });
-    it('should respond to ADD_ITEM_FROM_WINDOW', function() {
-      spyOn(subject, 'addItem');
-      subject.eventEmitter.publish('ADD_ITEM_FROM_WINDOW', 'MOCK_WINDOW_1');
-      expect(subject.addItem).toHaveBeenCalled();
-    });
-    it('should respond to REMOVE_SLOT_FROM_WINDOW', function() {
-      subject.eventEmitter.publish('REMOVE_SLOT_FROM_WINDOW', 'MOCK_WINDOW_1');
-      expect(subject.eventEmitter.publish).toHaveBeenCalledWith('REMOVE_NODE', subject);
-    });
-    jQuery.each(['RIGHT', 'LEFT', 'DOWN', 'UP'], function(_, dir) {
-      it('should respond to SPLIT_' + dir + '_FROM_WINDOW', function() {
-        subject.eventEmitter.publish('SPLIT_' + dir + '_FROM_WINDOW', 'MOCK_WINDOW_1');
-        expect(subject.eventEmitter.publish).toHaveBeenCalledWith('SPLIT_' + dir, subject);
-      });
-    });
-  });
-  
-  describe('bindEvents', function () {
-    it('should add item when Add Item is clicked', function() {
-      spyOn(subject, 'addItem').and.callThrough();
-      subject.element.find('.addItemLink').click();
-      expect(subject.addItem).toHaveBeenCalled();
-    });
-    it('should remove itself when Remove Slot is clicked', function() {
-      spyOn(subject.eventEmitter, 'publish').and.callThrough();
-      subject.element.find('.remove-slot-option').click();
-      expect(subject.eventEmitter.publish).toHaveBeenCalledWith('REMOVE_NODE', subject);
-    });
-    it('should receive a drop', function() {
-      spyOn(subject, 'dropItem');
-      subject.element.trigger('drop');
-      expect(subject.dropItem).toHaveBeenCalled();
-    });
-    it('should prevent defaults on drops', function() {
-      var spyDragOver = spyOnEvent(subject.element, 'dragover'), 
-          spyDragEnter = spyOnEvent(subject.element.find('.dropMask'), 'dragenter'),
-          spyDragLeave = spyOnEvent(subject.element.find('.dropMask'), 'dragleave');
-      subject.element.trigger('dragover');
-      expect(spyDragOver).toHaveBeenPrevented();
-      expect(subject.element.find('.dropMask')).toExist();
-      subject.element.find('.dropMask').trigger('dragenter');
-      expect(spyDragEnter).toHaveBeenPrevented();
-      expect(subject.element).toHaveClass('draggedOver');
-      subject.element.find('.dropMask').trigger('dragleave');
-      expect(spyDragLeave).toHaveBeenPrevented();
-      expect(subject.element).not.toHaveClass('draggedOver');
-    });
-  });
-  
-  describe('dropItem', function () {
-    var getData, getAsString, mockEvent;
-    beforeEach(function() {
-      getData = "";
-      getAsString = "";
-      mockEvent = {
-        preventDefault: jasmine.createSpy('preventDefault'),
-        originalEvent: {
-          dataTransfer: {
-            getData: jasmine.createSpy('getData').and.callFake(function() { return getData; }),
-            items: [ { getAsString: jasmine.createSpy('getAsString').and.callFake(function(f) { return f(getAsString); }) } ]
-          }
-        }
-      };
-      spyOn(subject, 'handleDrop');
-    });
-    it('should handle dropped URLs', function() {
-      getData = "http://text.url.net";
-      subject.dropItem(mockEvent);
-      expect(mockEvent.preventDefault).toHaveBeenCalled();
-      expect(subject.handleDrop).toHaveBeenCalledWith('http://text.url.net');
-    });
-    it('should handle dropped files', function() {
-      getAsString = "http://text2.url.net";
-      subject.dropItem(mockEvent);
-      expect(mockEvent.preventDefault).toHaveBeenCalled();
-      expect(subject.handleDrop).toHaveBeenCalledWith('http://text2.url.net')
-    });
-  });
-  
-  describe('handleDrop', function() {
-    var manifestsState, manifestUrl, canvasUrl, imageInfoUrl, collectionUrl, fullUrl, fixture, fullFixture;
-    beforeEach(function() {
-      manifestsState = {};
-      manifestUrl = 'https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093';
-      canvasUrl = 'https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093/canvas/canvas-5982052.json';
-      imageInfoUrl = 'https://images-dev.harvardx.harvard.edu/ids/iiif/5982052/info.json';
-      collectionUrl = 'https://iiif.test.net/collection.json';
-      fixture = { '@id': 'https://oculus-dev.harvardx.harvard.edu/manifests/drs:5981093' };
-      fullFixture = getJSONFixture('Richardson7manifest.json');
-      spyOn(subject.state, 'getStateProperty').and.callFake(function(arg) {
-        return manifestsState;
-      });
-      spyOn(subject.eventEmitter, 'publish').and.callThrough();
-    });
-    it('should handle manifest-only URLs (not cached)', function() {
-      subject.handleDrop(manifestUrl);
-      expect(subject.eventEmitter.publish).toHaveBeenCalledWith('ADD_MANIFEST_FROM_URL', [manifestUrl, '(Added from URL)']);
-      var mani = new Mirador.Manifest(manifestUrl, 'IIIF', fullFixture);
-      subject.eventEmitter.publish('manifestReceived', mani);
-      expect(subject.eventEmitter.publish).toHaveBeenCalledWith('ADD_WINDOW', {
-        manifest: mani,
-        slotAddress: '1,1'
-      });
-    });
-    it('should handle manifest-only URLs (cached)', function() {
-      manifestsState[manifestUrl] = fixture;
-      subject.handleDrop(manifestUrl);
-      expect(subject.eventEmitter.publish).toHaveBeenCalledWith('ADD_WINDOW', {
-        manifest: fixture,
-        slotAddress: '1,1'
-      });
-    });
-    it('should handle manifest URLs with canvas (not cached)', function() {
-      fullUrl = 'http://projectmirador.org?manifest=' + manifestUrl + '&canvas=' + canvasUrl;
-      subject.handleDrop(fullUrl);
-      expect(subject.eventEmitter.publish).toHaveBeenCalledWith('ADD_MANIFEST_FROM_URL', [manifestUrl, '(Added from URL)']);
-      var mani = new Mirador.Manifest(manifestUrl, 'IIIF', fullFixture);
-      subject.eventEmitter.publish('manifestReceived', mani);
-      expect(subject.eventEmitter.publish).toHaveBeenCalledWith('ADD_WINDOW', {
-        manifest: mani,
-        slotAddress: '1,1',
-        canvasID: canvasUrl,
-        viewType: 'ImageView'
-      });
-    });
-    it('should handle manifest URLs with canvas (cached)', function() {
-      fullUrl = 'http://projectmirador.org?manifest=' + manifestUrl + '&canvas=' + canvasUrl;
-      manifestsState[manifestUrl] = fixture;
-      subject.handleDrop(fullUrl);
-      expect(subject.eventEmitter.publish).toHaveBeenCalledWith('ADD_WINDOW', {
-        manifest: fixture,
-        slotAddress: '1,1',
-        canvasID: canvasUrl,
-        viewType: 'ImageView'
-      });
-    });
-    it('should handle single-image URLs', function() {
-      fullUrl = 'http://projectmirador.org?canvasId=' + canvasUrl + '&image=' + imageInfoUrl;
-      subject.handleDrop(fullUrl);
-      expect(subject.eventEmitter.publish).toHaveBeenCalledWith('ADD_MANIFEST_FROM_URL', [imageInfoUrl, '(Added from URL)']);
-    });
-    it('should handle collection URLs', function() {
-      spyOn(jQuery, 'getJSON').and.returnValue({
-        done: function(f) {
-          f({
-            "@context": "http://iiif.io/api/presentation/2/context.json",
-            "@id": collectionUrl,
-            "@type": "sc:Collection",
-            "label": "Dummy collection",
-            "manifests": [
-              {
-                "@id": manifestUrl,
-                "@type": "sc:Manifest",
-                "label": "Richardson 7 fixture"
-              },
-              {
-                "@id": "http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/manifest.json",
-                "@type": "sc:Manifest",
-                "label": "BNF fixture" 
-              }
-            ]
-          }, {}, {});
-        }
-      });
-      fullUrl = 'http://projectmirador.org?collection=' + collectionUrl;
-      subject.handleDrop(fullUrl);
-      expect(subject.eventEmitter.publish).toHaveBeenCalledWith('ADD_MANIFEST_FROM_URL', [manifestUrl, '(Added from URL)']);
-      expect(subject.eventEmitter.publish).toHaveBeenCalledWith('ADD_MANIFEST_FROM_URL', ["http://demos.biblissima-condorcet.fr/iiif/metadata/florus-dispersus/manifest.json", '(Added from URL)']);
-    });
-  });
-  
-  it('clearSlot', function () {
-    subject.clearSlot();
-    expect(subject.window).toBeUndefined();
-  });
-  
-  it('getAddress', function () {
-    expect(subject.getAddress()).toEqual(subject.layoutAddress);
-  });
-  
-  it('addItem', function () {
-    subject.focused = false;
-    spyOn(subject.eventEmitter, 'publish');
-    subject.addItem();
-    expect(subject.focused).toBe(true);
-    expect(subject.eventEmitter.publish).toHaveBeenCalledWith('ADD_SLOT_ITEM', subject);
-  });
-
-  it("shouldn't break when slot does not contain a window", function () {
-    delete this.slot.window;
-    this.eventEmitter.publish('windowRemoved', 'MOCK_WINDOW_1');
-    this.eventEmitter.publish('layoutChanged', {});
-    this.eventEmitter.publish('HIDE_REMOVE_SLOT');
-    this.eventEmitter.publish('SHOW_REMOVE_SLOT');
-    this.eventEmitter.publish('ADD_ITEM_FROM_WINDOW', 'MOCK_WINDOW_1');
-    this.eventEmitter.publish('REMOVE_SLOT_FROM_WINDOW', 'MOCK_WINDOW_1');
-    this.eventEmitter.publish('SPLIT_RIGHT_FROM_WINDOW', 'MOCK_WINDOW_1');
-    this.eventEmitter.publish('SPLIT_LEFT_FROM_WINDOW', 'MOCK_WINDOW_1');
-    this.eventEmitter.publish('SPLIT_DOWN_FROM_WINDOW', 'MOCK_WINDOW_1');
-    this.eventEmitter.publish('SPLIT_UP_FROM_WINDOW', 'MOCK_WINDOW_1');
-    expect(this.slot.window).toBe(undefined); // Just checking all the above code didn't fail.
-  });
-});
diff --git a/spec/workspaces/window.test.js b/spec/workspaces/window.test.js
deleted file mode 100644
index 49acfcaee5d49fb85706e0f9934f5748cccd24f0..0000000000000000000000000000000000000000
--- a/spec/workspaces/window.test.js
+++ /dev/null
@@ -1,224 +0,0 @@
-describe('Window', function() {
-  describe('Basic Operation', function() {
-    beforeEach(function() {
-      this.eventEmitter = new Mirador.EventEmitter();
-      this.mockedEventEmitter = new MockEventEmitter(this.eventEmitter);
-      this.appendTo = jQuery('<div/>');
-      Mirador.viewer = {
-        // all of this global state should be
-        // removed as soon as possible.
-        eventEmitter: this.mockedEventEmitter,
-        annotationEndpoints: [],
-        workspace: {
-          slots: []
-        }
-      };
-      spyOn(Mirador, 'ThumbnailsView').and.callFake(function() {
-        this.updateImages = jasmine.createSpy();
-        this.toggle = jasmine.createSpy();
-        this.adjustHeight = jasmine.createSpy();
-        this.updateFocusImages = jasmine.createSpy();
-        this.updateImage = jasmine.createSpy();
-      });
-      spyOn(Mirador, 'ImageView').and.callFake(function() {
-        this.toggle = jasmine.createSpy();
-        this.adjustHeight = jasmine.createSpy();
-        this.updateImage = jasmine.createSpy();
-      });
-      spyOn(Mirador, 'BookView').and.callFake(function() {
-        this.updateImages = jasmine.createSpy();
-        this.toggle = jasmine.createSpy();
-        this.adjustHeight = jasmine.createSpy();
-        this.updateImage = jasmine.createSpy();
-      });
-
-      var state = new Mirador.SaveController(jQuery.extend(true, {}, Mirador.DEFAULT_SETTINGS, {eventEmitter:this.eventEmitter}));
-      this.window = new Mirador.Window(jQuery.extend(
-        true,
-        {},
-        state.getStateProperty('windowSettings'),
-        {
-          state: state,
-          eventEmitter: this.eventEmitter,
-          manifest: {
-            jsonLd: {
-              sequences: [
-                { viewingHint: 'paged',
-                  canvases: [{
-                    '@id': ''
-                  }]
-                }]
-            },
-            getCanvases: function() { return [{
-              // This is an example of one canvas from richardson 7.
-              label: "(seq. 3)",
-              width: 4680,
-              '@type': "sc:Canvas",
-              images: [{
-                resource: {
-                  service: {
-                    profile: "http://library.stanford.edu/iiif/image-api/1.1/conformance.html#level1",
-                    '@context': "http://iiif.io/api/image/1/context.json",
-                    '@id': "https://ids.lib.harvard.edu/ids/iiif/5981098"
-                  },
-                  format: "image/jpeg",
-                  height: 5112,
-                  width: 4680,
-                  '@id': "https://ids.lib.harvard.edu/ids/iiif/5981098/full/full/0/native.jpg",
-                  '@type': "dctypes:Image"
-                },
-                on: "https://iiif.lib.harvard.edu/manifests/drs:5981093/canvas/canvas-5981098.json",
-                motivation: "sc:painting",
-                '@id': "https://iiif.lib.harvard.edu/manifests/drs:5981093/annotation/anno-5981098.json",
-                '@type': "oa:Annotation"
-              }
-                      ],
-              height: 5112,
-              '@id': "https://iiif.lib.harvard.edu/manifests/drs:5981093/canvas/canvas-5981098.json",
-              thumbnail: {
-                '@id': "https://ids.lib.harvard.edu/ids/iiif/5981098/full/,150/0/native.jpg",
-                '@type': "dctypes:Image"
-              }
-            }, {
-              '@id': "https://purl.stanford.edu/qm670kv1873/iiif/canvas/image_1",
-              '@type': "sc:Canvas",
-              label: "Upper board outside",
-              height: 2236,
-              width: 1732,
-              images: [{
-                '@id': "https://purl.stanford.edu/qm670kv1873/iiif/annotation/image_1",
-                '@type': "oa:Annotation",
-                motivation: "sc:painting",
-                resource: {
-                  '@id': "https://stacks.stanford.edu/image/iiif/qm670kv1873%2FW168_000001_300/full/full/0/default.jpg",
-                  '@type': "dctypes:Image",
-                  format: "image/jpeg",
-                  height: 2236,
-                  width: 1732,
-                  service: {
-                    '@context': "http://iiif.io/api/image/2/context.json",
-                    '@id': "https://stacks.stanford.edu/image/iiif/qm670kv1873%2FW168_000001_300",
-                    profile: "http://iiif.io/api/image/2/level1.json"
-                  }
-                },
-                on: "https://purl.stanford.edu/qm670kv1873/iiif/canvas/image_1"
-              }]
-            }];
-                                    },
-            getAnnotationsListUrls: function() {
-              return [];
-            },
-            getStructures: function() {
-              return [];
-            },
-            getVersion: function() {
-              return '1';
-            },
-            getViewingDirection: function() {
-              return 'right-to-left';
-            }
-          },
-          appendTo: this.appendTo,
-          userButtons: [{
-            'iconClass': 'fa-file-text-o',
-            'attributes': {
-              'class': 'mirador-icon-text',
-              'href': 'http://example.com',
-              'target': '_blank'
-            }
-          }]
-        }));
-    });
-
-    afterEach(function() {
-      delete Mirador.viewer;
-    });
-
-    describe('Initialisation', function() {
-      it('should build the canvases index', function() {
-        expect(this.window.canvases['https://iiif.lib.harvard.edu/manifests/drs:5981093/canvas/canvas-5981098.json']).not.toBe('undefined');
-        expect(Object.keys(this.window.canvases).length).toEqual(2);
-        expect(typeof this.window.canvases['https://iiif.lib.harvard.edu/manifests/drs:5981093/canvas/canvas-5981098.json'].getBounds).toBe('function');
-      });
-      it('should place itself in DOM', function() {
-        expect(true).toBe(true);
-        expect(this.appendTo.find('.window')).toExist();
-        expect(this.appendTo.find('.remove-object-option').css('display')).toBe('none');
-        expect(this.appendTo.find('.book-option')).toExist();
-        expect(this.appendTo.find('.scroll-option')).toExist();
-        var calls = Mirador.ImageView.calls;
-        expect(calls.count()).toBe(1);
-        expect(calls.first().args[0].appendTo.is(this.appendTo.find('.view-container'))).toBe(true);
-      });
-
-      it('should place default buttons in DOM', function(){
-        expect(this.appendTo.find('.mirador-icon-view-type')).toExist();
-        expect(this.appendTo.find('.mirador-icon-metadata-view')).toExist();
-        expect(this.appendTo.find('.mirador-osd-fullscreen')).toExist();
-      });
-
-      it('should place user buttons in DOM', function(){
-        expect(this.appendTo.find('.mirador-icon-text')).toExist();
-        expect(this.appendTo.find('.mirador-icon-text').attr('href')).toBe('http://example.com');
-        expect(this.appendTo.find('.mirador-icon-text').attr('target')).toBe('_blank');
-        expect(this.appendTo.find('.mirador-icon-text').has('i.fa.fa-lg.fa-fw.fa-file-text-o').length).toBe(1);
-      });
-    });
-
-    describe('Menu Events', function() {
-      xit('should change to book view when button is clicked', function() {
-        expect(this.appendTo.find('.book-option')).toExist();
-        expect(this.window.focusModules.BookView).toBe(null);
-        this.appendTo.find('.book-option').trigger('click');
-        var calls = Mirador.BookView.calls;
-        var bottomPanelCalls = this.window.bottomPanel.updateFocusImages.calls;
-        expect(calls.count()).toBe(1);
-        expect(bottomPanelCalls.count()).toBe(1);
-      });
-    });
-
-    describe('r-t-l viewing', function() {
-      it('causes the imagesList ordering to be reversed and the derivative lists to be generated', function() {
-        expect(this.window.imagesListRtl[0]).toBe(this.window.imagesList[this.window.imagesList.length-1]);
-        expect(this.window.vDirectionStatus).toBe('rtl');
-      });
-    });
-
-    describe('Navigation events', function() {
-      it('changing the canvasID changes the focused canvasModel', function() {
-        expect(this.window.canvasID).toEqual('https://iiif.lib.harvard.edu/manifests/drs:5981093/canvas/canvas-5981098.json');
-        this.window.setCurrentCanvasID('https://purl.stanford.edu/qm670kv1873/iiif/canvas/image_1');
-        expect(this.window.canvasID).toEqual('https://purl.stanford.edu/qm670kv1873/iiif/canvas/image_1');
-        this.eventEmitter.publish('SET_CURRENT_CANVAS_ID.' + this.window.id, 'https://iiif.lib.harvard.edu/manifests/drs:5981093/canvas/canvas-5981098.json');
-        expect(this.window.canvasID).toEqual('https://iiif.lib.harvard.edu/manifests/drs:5981093/canvas/canvas-5981098.json');
-      });
-    });
-
-    describe('Destroying', function () {
-
-      it('should respond to windowRemoved', function () {
-        spyOn(this.window,'destroy');
-        this.eventEmitter.publish('windowRemoved', this.window.id);
-        expect(this.window.destroy).toHaveBeenCalled();
-      });
-
-      it('should unsubscribe from all events', function () {
-        this.window.destroy();
-        for(var key in this.window.eventEmitter.events){
-          expect(this.window.eventEmitter.events[key]).toBe(0);
-        }
-      });
-
-      it('should remove dom element',function(){
-        this.window.destroy();
-        expect(this.appendTo.find('.window').length).toBe(0);
-      });
-
-    });
-
-  });
-
-  describe('Configuration', function() {
-
-  });
-});
diff --git a/src/action-types.js b/src/action-types.js
new file mode 100644
index 0000000000000000000000000000000000000000..9783cb967f276c8c5974510e9448cb22646dc649
--- /dev/null
+++ b/src/action-types.js
@@ -0,0 +1,21 @@
+const ActionTypes = {
+  FOCUS_WINDOW: 'FOCUS_WINDOW',
+  ADD_MANIFEST: 'ADD_MANIFEST',
+  ADD_WINDOW: 'ADD_WINDOW',
+  NEXT_CANVAS: 'NEXT_CANVAS',
+  PREVIOUS_CANVAS: 'PREVIOUS_CANVAS',
+  REMOVE_WINDOW: 'REMOVE_WINDOW',
+  PICK_WINDOWING_SYSTEM: 'PICK_WINDOWING_SYSTEM',
+  REQUEST_MANIFEST: 'REQUEST_MANIFEST',
+  RECEIVE_MANIFEST: 'RECEIVE_MANIFEST',
+  RECEIVE_MANIFEST_FAILURE: 'RECEIVE_MANIFEST_FAILURE',
+  SET_CONFIG: 'SET_CONFIG',
+  UPDATE_CONFIG: 'UPDATE_CONFIG',
+  REMOVE_MANIFEST: 'REMOVE_MANIFEST',
+  REQUEST_INFO_RESPONSE: 'REQUEST_INFO_RESPONSE',
+  RECEIVE_INFO_RESPONSE: 'RECEIVE_INFO_RESPONSE',
+  RECEIVE_INFO_RESPONSE_FAILURE: 'RECEIVE_INFO_RESPONSE_FAILURE',
+  REMOVE_INFO_RESPONSE: 'REMOVE_INFO_RESPONSE',
+};
+
+export default ActionTypes;
diff --git a/src/actions/index.js b/src/actions/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..ec56ae64a9757709b08108efe0f7ad38a45055b9
--- /dev/null
+++ b/src/actions/index.js
@@ -0,0 +1,227 @@
+import fetch from 'node-fetch';
+import ActionTypes from '../action-types';
+
+/**
+ * Action Creators for Mirador
+ * @namespace ActionCreators
+ */
+
+
+/**
+ * setConfig - action creator
+ *
+ * @param  {Object} config
+* @memberof ActionCreators
+ */
+export function setConfig(config) {
+  return { type: ActionTypes.SET_CONFIG, config };
+}
+
+/**
+ * updateConfig - action creator
+ *
+ * @param  {Object} config
+* @memberof ActionCreators
+ */
+export function updateConfig(config) {
+  return { type: ActionTypes.UPDATE_CONFIG, config };
+}
+
+/**
+ * focusWindow - action creator
+ *
+ * @param  {String} windowId
+ * @memberof ActionCreators
+ */
+export function focusWindow(windowId) {
+  return { type: ActionTypes.FOCUS_WINDOW, windowId };
+}
+
+/**
+ * addWindow - action creator
+ *
+ * @param  {Object} options
+ * @memberof ActionCreators
+ */
+export function addWindow(options) {
+  const defaultOptions = {
+    // TODO: Windows should be a hash with id's as keys for easy lookups
+    // https://redux.js.org/faq/organizing-state#how-do-i-organize-nested-or-duplicate-data-in-my-state
+    id: `window-${new Date().valueOf()}`,
+    canvasIndex: 0,
+    collectionIndex: 0,
+    manifestId: null,
+    rangeId: null,
+    xywh: [0, 0, 400, 400],
+    rotation: null,
+  };
+  return { type: ActionTypes.ADD_WINDOW, payload: Object.assign({}, defaultOptions, options) };
+}
+
+/**
+ * removeWindow - action creator
+ *
+ * @param  {String} windowId
+ * @memberof ActionCreators
+ */
+export function removeWindow(windowId) {
+  return { type: ActionTypes.REMOVE_WINDOW, windowId };
+}
+
+/**
+ * nextCanvas - action creator
+ *
+ * @param  {String} windowId
+ * @memberof ActionCreators
+ */
+export function nextCanvas(windowId) {
+  return { type: ActionTypes.NEXT_CANVAS, windowId };
+}
+
+/**
+ * previousCanvas - action creator
+ *
+ * @param  {String} windowId
+ * @memberof ActionCreators
+ */
+export function previousCanvas(windowId) {
+  return { type: ActionTypes.PREVIOUS_CANVAS, windowId };
+}
+
+/**
+ * requestManifest - action creator
+ *
+ * @param  {String} manifestId
+ * @memberof ActionCreators
+ */
+export function requestManifest(manifestId) {
+  return {
+    type: ActionTypes.REQUEST_MANIFEST,
+    manifestId,
+  };
+}
+
+/**
+ * receiveManifest - action creator
+ *
+ * @param  {String} windowId
+ * @param  {Object} manifestJson
+ * @memberof ActionCreators
+ */
+export function receiveManifest(manifestId, manifestJson) {
+  return {
+    type: ActionTypes.RECEIVE_MANIFEST,
+    manifestId,
+    manifestJson,
+  };
+}
+
+/**
+ * receiveManifestFailure - action creator
+ *
+ * @param  {String} windowId
+ * @param  {String} error
+ * @memberof ActionCreators
+ */
+export function receiveManifestFailure(manifestId, error) {
+  return {
+    type: ActionTypes.RECEIVE_MANIFEST_FAILURE,
+    manifestId,
+    error,
+  };
+}
+
+/**
+ * fetchManifest - action creator
+ *
+ * @param  {String} manifestId
+ * @memberof ActionCreators
+ */
+export function fetchManifest(manifestId) {
+  return ((dispatch) => {
+    dispatch(requestManifest(manifestId));
+    return fetch(manifestId)
+      .then(response => response.json())
+      .then(json => dispatch(receiveManifest(manifestId, json)))
+      .catch(error => dispatch(receiveManifestFailure(manifestId, error)));
+  });
+}
+
+/**
+ * removeManifest - action creator
+ *
+ * @param  {String} manifestId
+ * @memberof ActionCreators
+ */
+export function removeManifest(manifestId) {
+  return { type: ActionTypes.REMOVE_MANIFEST, manifestId };
+}
+
+/**
+ * requestInfoResponse - action creator
+ *
+ * @param  {String} infoId
+ * @memberof ActionCreators
+ */
+export function requestInfoResponse(infoId) {
+  return {
+    type: ActionTypes.REQUEST_INFO_RESPONSE,
+    infoId,
+  };
+}
+
+/**
+ * receiveInfoResponse - action creator
+ *
+ * @param  {String} infoId
+ * @param  {Object} manifestJson
+ * @memberof ActionCreators
+ */
+export function receiveInfoResponse(infoId, infoJson) {
+  return {
+    type: ActionTypes.RECEIVE_INFO_RESPONSE,
+    infoId,
+    infoJson,
+  };
+}
+
+/**
+ * receiveInfoResponseFailure - action creator
+ *
+ * @param  {String} infoId
+ * @param  {String} error
+ * @memberof ActionCreators
+ */
+export function receiveInfoResponseFailure(infoId, error) {
+  return {
+    type: ActionTypes.RECEIVE_INFO_RESPONSE_FAILURE,
+    infoId,
+    error,
+  };
+}
+
+/**
+ * fetchInfoResponse - action creator
+ *
+ * @param  {String} infoId
+ * @memberof ActionCreators
+ */
+export function fetchInfoResponse(infoId) {
+  return ((dispatch) => {
+    dispatch(requestInfoResponse(infoId));
+    return fetch(infoId)
+      .then(response => response.json())
+      .then(json => dispatch(receiveInfoResponse(infoId, json)))
+      .catch(error => dispatch(receiveInfoResponseFailure(infoId, error)));
+  });
+}
+
+/**
+ * removeInfoResponse - action creator
+ *
+ * @param  {String} infoId
+ * @memberof ActionCreators
+ */
+export function removeInfoResponse(infoId) {
+  return { type: ActionTypes.REMOVE_INFO_RESPONSE, infoId };
+}
diff --git a/src/components/App.js b/src/components/App.js
new file mode 100644
index 0000000000000000000000000000000000000000..1c9743ca35587e370f9a13301d37639b229e2d9f
--- /dev/null
+++ b/src/components/App.js
@@ -0,0 +1,119 @@
+import React, { Component } from 'react';
+import { connect } from 'react-redux';
+import PropTypes from 'prop-types';
+import { actions } from '../store';
+import Display from './Display';
+import ManifestForm from './ManifestForm';
+import ManifestListItem from './ManifestListItem';
+import Workspace from './Workspace';
+import ns from '../config/css-ns';
+
+/**
+ * This is the top level Mirador component.
+ * @prop {Object} manifests
+ */
+class App extends Component {
+  /**
+   * constructor -
+   */
+  constructor(props) {
+    super(props);
+    this.state = {
+      lastRequested: '',
+    };
+
+    this.setLastRequested = this.setLastRequested.bind(this);
+  }
+
+  /**
+   * setLastRequested - Sets the state lastRequested
+   *
+   * @private
+   */
+  setLastRequested(requested) {
+    this.setState({
+      lastRequested: requested,
+    });
+  }
+
+  /**
+   * computedContent - computes the content to be displayed based on logic
+   *
+   * @return {type}  description
+   * @private
+   */
+  computedContent() {
+    const { manifests } = this.props;
+    const { lastRequested } = this.state;
+    const manifest = manifests[lastRequested];
+    if (manifest) {
+      if (manifest.isFetching) {
+        return '☕';
+      }
+      if (manifest.error) {
+        return manifest.error.message;
+      }
+      return JSON.stringify(manifest.json, 0, 2);
+    }
+    return 'Nothing Selected Yet';
+  }
+
+  /**
+   * render
+   * @return {String} - HTML markup for the component
+   */
+  render() {
+    const { manifests } = this.props;
+    const { lastRequested } = this.state;
+    const manifestList = Object.keys(manifests).map(manifest => (
+      <ManifestListItem
+        key={manifest}
+        manifest={manifest}
+      />
+    ));
+    return (
+      <div className={ns('app')}>
+        <Workspace />
+        <div className={ns('control-panel')}>
+          <ManifestForm setLastRequested={this.setLastRequested} />
+          <ul>{manifestList}</ul>
+
+          <Display
+            manifest={manifests[lastRequested]}
+          />
+        </div>
+      </div>
+    );
+  }
+}
+
+App.propTypes = {
+  manifests: PropTypes.instanceOf(Object).isRequired,
+};
+
+/**
+ * mapStateToProps - to hook up connect
+ * @memberof App
+ * @private
+ */
+const mapStateToProps = state => (
+  {
+    manifests: state.manifests,
+  }
+);
+
+/**
+ * mapDispatchToProps - used to hook up connect to action creators
+ * @memberof App
+ * @private
+ */
+const mapDispatchToProps = dispatch => ({
+  fetchManifest: manifestUrl => (
+    dispatch(actions.fetchManifest(manifestUrl))
+  ),
+});
+
+export default connect(
+  mapStateToProps,
+  mapDispatchToProps,
+)(App);
diff --git a/src/components/Display.js b/src/components/Display.js
new file mode 100644
index 0000000000000000000000000000000000000000..f9db0dd00071959859696844e527ac7f0f7cd039
--- /dev/null
+++ b/src/components/Display.js
@@ -0,0 +1,64 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+import ManifestMetadata from './ManifestMetadata';
+import ns from '../config/css-ns';
+
+/**
+ * Determines how to best display the content (or lack thereof) the manifest
+ * @private
+ */
+const displayContent = (manifest) => {
+  if (manifest) {
+    if (manifest.isFetching) {
+      return '☕';
+    }
+    if (manifest.error) {
+      return manifest.error.message;
+    }
+    return <ManifestMetadata manifest={manifest} />;
+  }
+  return 'Nothing Selected Yet';
+};
+
+/**
+ * Determines which classes should be used for display, based on the state of
+ * the manifest
+ * @memberof Display
+ * @private
+ */
+const stateClass = (manifest) => {
+  if (manifest) {
+    if (manifest.isFetching) {
+      return 'fetching';
+    }
+    if (manifest.error) {
+      return 'error';
+    }
+    return '';
+  }
+  return 'empty';
+};
+
+
+/**
+ * Displays a manifest
+ * @param {object} props
+ * @param {object} [props.manifest = undefined]
+ */
+const Display = ({ manifest }) => (
+  <div className="Display">
+    <div id="exampleManifest" className={ns(stateClass(manifest))}>
+      {displayContent(manifest)}
+    </div>
+  </div>
+);
+
+Display.propTypes = {
+  manifest: PropTypes.object, // eslint-disable-line react/forbid-prop-types
+};
+
+Display.defaultProps = {
+  manifest: undefined,
+};
+
+export default Display;
diff --git a/src/components/ManifestForm.js b/src/components/ManifestForm.js
new file mode 100644
index 0000000000000000000000000000000000000000..54f1557e96ec08d11bc9792c6c526d7cdd132d69
--- /dev/null
+++ b/src/components/ManifestForm.js
@@ -0,0 +1,99 @@
+import React, { Component } from 'react';
+import { connect } from 'react-redux';
+import PropTypes from 'prop-types';
+import { actions } from '../store';
+
+/**
+ * Provides a form for user input of a manifest url
+ * @prop {Function} fetchManifest
+ * @prop {Function} setLastRequested
+ */
+class ManifestForm extends Component {
+  /**
+   * constructor -
+   */
+  constructor(props) {
+    super(props);
+    this.state = {
+      formValue: '',
+    };
+
+    this.formSubmit = this.formSubmit.bind(this);
+    this.handleInputChange = this.handleInputChange.bind(this);
+  }
+
+  /**
+   * formSubmit - triggers manifest update and sets lastRequested
+   * @param  {Event} event
+   * @private
+   */
+  formSubmit(event) {
+    const { fetchManifest, setLastRequested } = this.props;
+    const { formValue } = this.state;
+    event.preventDefault();
+    fetchManifest(formValue);
+    setLastRequested(formValue);
+  }
+
+  /**
+   * handleInputChange - sets state based on input change.
+   * @param  {Event} event
+   * @private
+   */
+  handleInputChange(event) {
+    const that = this;
+    event.preventDefault();
+    that.setState({
+      formValue: event.target.value,
+    });
+  }
+
+  /**
+   * render
+   * @return {String} - HTML markup for the component
+   */
+  render() {
+    const { formValue } = this.state;
+    return (
+      <form onSubmit={this.formSubmit}>
+        <input
+          value={formValue}
+          id="manifestURL"
+          type="text"
+          onChange={this.handleInputChange}
+        />
+        <button id="fetchBtn" type="submit">FetchManifest</button>
+      </form>
+    );
+  }
+}
+
+ManifestForm.propTypes = {
+  fetchManifest: PropTypes.func.isRequired,
+  setLastRequested: PropTypes.func.isRequired,
+};
+
+/**
+ * mapStateToProps - to hook up connect
+ * @memberof ManifestForm
+ * @private
+ */
+const mapStateToProps = () => (
+  {}
+);
+
+/**
+ * mapDispatchToProps - used to hook up connect to action creators
+ * @memberof ManifestForm
+ * @private
+ */
+const mapDispatchToProps = dispatch => ({
+  fetchManifest: manifestUrl => (
+    dispatch(actions.fetchManifest(manifestUrl))
+  ),
+});
+
+export default connect(
+  mapStateToProps,
+  mapDispatchToProps,
+)(ManifestForm);
diff --git a/src/components/ManifestListItem.js b/src/components/ManifestListItem.js
new file mode 100644
index 0000000000000000000000000000000000000000..b67886e8d869abb540943b088ef0246b6dcef84e
--- /dev/null
+++ b/src/components/ManifestListItem.js
@@ -0,0 +1,62 @@
+import React from 'react';
+import { connect } from 'react-redux';
+import PropTypes from 'prop-types';
+import { actions } from '../store';
+import ns from '../config/css-ns';
+
+
+/**
+ * Handling open button click
+ */
+const handleOpenButtonClick = (event, manifest, addWindow) => {
+  addWindow({ manifestId: manifest });
+};
+/**
+ * Represents an item in a list of currently-loaded or loading manifests
+ * @param {object} props
+ * @param {object} [props.manifest = string]
+ */
+
+/**
+ * Determines which classes should be used for display, based on the state of
+ * the manifest
+ * @memberof ManifestListItem
+ * @private
+ */
+const ManifestListItem = ({ manifest, addWindow }) => (
+  <li className={ns('manifest-list-item')}>
+    <button type="button" onClick={event => handleOpenButtonClick(event, manifest, addWindow)}>
+      {manifest}
+    </button>
+  </li>
+);
+
+ManifestListItem.propTypes = {
+  manifest: PropTypes.string.isRequired, // eslint-disable-line react/forbid-prop-types
+  addWindow: PropTypes.func.isRequired,
+};
+
+/**
+ * mapStateToProps - to hook up connect
+ * @memberof ManifestListItem
+ * @private
+ */
+const mapStateToProps = () => (
+  {}
+);
+
+/**
+ * mapDispatchToProps - used to hook up connect to action creators
+ * @memberof ManifestListItem
+ * @private
+ */
+const mapDispatchToProps = dispatch => ({
+  addWindow: options => (
+    dispatch(actions.addWindow(options))
+  ),
+});
+
+export default connect(
+  mapStateToProps,
+  mapDispatchToProps,
+)(ManifestListItem);
diff --git a/src/components/ManifestMetadata.js b/src/components/ManifestMetadata.js
new file mode 100644
index 0000000000000000000000000000000000000000..2f79254a7dfc59c14e0ba3acb81d939237cb6261
--- /dev/null
+++ b/src/components/ManifestMetadata.js
@@ -0,0 +1,35 @@
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
+import ns from '../config/css-ns';
+
+/**
+ * ManifestMetadata
+ * @param {object} window
+ */
+export default class ManifestMetadata extends Component {
+  /**
+   * Renders things
+   * @param {object} props
+   */
+  render() {
+    const { manifest } = this.props;
+    return (
+      <div>
+        <h3>
+          {manifest.manifestation.getLabel().map(label => label.value)[0]}
+        </h3>
+        <div className={ns('description')}>
+          {manifest.manifestation.getDescription().map(label => label.value)}
+        </div>
+      </div>
+    );
+  }
+}
+
+ManifestMetadata.propTypes = {
+  manifest: PropTypes.object, // eslint-disable-line react/forbid-prop-types
+};
+
+ManifestMetadata.defaultProps = {
+  manifest: null,
+};
diff --git a/src/components/OpenSeadragonViewer.js b/src/components/OpenSeadragonViewer.js
new file mode 100644
index 0000000000000000000000000000000000000000..3709ab33b168ac179a9c375ab803db1fa3d09016
--- /dev/null
+++ b/src/components/OpenSeadragonViewer.js
@@ -0,0 +1,89 @@
+import React, { Component, Fragment } from 'react';
+import PropTypes from 'prop-types';
+import OpenSeadragon from 'openseadragon';
+import miradorWithPlugins from '../lib/miradorWithPlugins';
+import ns from '../config/css-ns';
+
+/**
+ * Represents a OpenSeadragonViewer in the mirador workspace. Responsible for mounting
+ * and rendering OSD.
+ */
+class OpenSeadragonViewer extends Component {
+  /**
+   * @param {Object} props
+   */
+  constructor(props) {
+    super(props);
+
+    this.viewer = null;
+    this.ref = React.createRef();
+  }
+
+  /**
+   * React lifecycle event
+   */
+  componentDidMount() {
+    const { tileSources } = this.props;
+    if (!this.ref.current) {
+      return;
+    }
+    this.viewer = new OpenSeadragon({
+      id: this.ref.current.id,
+      preserveViewport: true,
+      blendTime: 0.1,
+      alwaysBlend: false,
+      showNavigationControl: false,
+    });
+    tileSources.forEach(tileSource => this.addTileSource(tileSource));
+  }
+
+  /**
+   */
+  componentDidUpdate() {
+    const { tileSources } = this.props;
+    tileSources.forEach(tileSource => this.addTileSource(tileSource));
+  }
+
+  /**
+   */
+  componentWillUnmount() {
+    this.viewer.removeAllHandlers();
+  }
+
+  /**
+   */
+  addTileSource(tileSource) {
+    this.viewer.addTiledImage({
+      tileSource,
+      success: (event) => {
+      },
+    });
+  }
+
+  /**
+   * Renders things
+   */
+  render() {
+    const { window } = this.props;
+    return (
+      <Fragment>
+        <div
+          className={ns('osd-container')}
+          id={`${window.id}-osd`}
+          ref={this.ref}
+        />
+      </Fragment>
+    );
+  }
+}
+
+OpenSeadragonViewer.defaultProps = {
+  tileSources: [],
+};
+
+OpenSeadragonViewer.propTypes = {
+  tileSources: PropTypes.arrayOf(PropTypes.object),
+  window: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types
+};
+
+export default miradorWithPlugins(OpenSeadragonViewer);
diff --git a/src/components/ViewerNavigation.js b/src/components/ViewerNavigation.js
new file mode 100644
index 0000000000000000000000000000000000000000..a6d989f143db068813cd8de574dcf5242ede5b6a
--- /dev/null
+++ b/src/components/ViewerNavigation.js
@@ -0,0 +1,91 @@
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
+import { connect } from 'react-redux';
+import miradorWithPlugins from '../lib/miradorWithPlugins';
+import { actions } from '../store';
+import ns from '../config/css-ns';
+
+/**
+ */
+class ViewerNavigation extends Component {
+  /**
+   */
+  constructor(props) {
+    super(props);
+
+    this.nextCanvas = this.nextCanvas.bind(this);
+    this.previousCanvas = this.previousCanvas.bind(this);
+  }
+
+  /**
+   */
+  nextCanvas() {
+    const { window, nextCanvas } = this.props;
+    if (this.hasNextCanvas()) nextCanvas(window.id);
+  }
+
+  /**
+   */
+  hasNextCanvas() {
+    const { window, canvases } = this.props;
+    return window.canvasIndex < canvases.length - 1;
+  }
+
+  /**
+   */
+  previousCanvas() {
+    const { window, previousCanvas } = this.props;
+    if (this.hasPreviousCanvas()) previousCanvas(window.id);
+  }
+
+  /**
+   */
+  hasPreviousCanvas() {
+    const { window } = this.props;
+    return window.canvasIndex > 0;
+  }
+
+  /**
+   * Renders things
+   */
+  render() {
+    return (
+      <div className={ns('osd-navigation')}>
+        <button
+          type="button"
+          disabled={!this.hasPreviousCanvas()}
+          onClick={this.previousCanvas}
+        >
+        &#8249;
+        </button>
+        <button
+          type="button"
+          disabled={!this.hasNextCanvas()}
+          onClick={this.nextCanvas}
+        >
+        &#8250;
+        </button>
+      </div>
+    );
+  }
+}
+
+ViewerNavigation.propTypes = {
+  canvases: PropTypes.array.isRequired, // eslint-disable-line react/forbid-prop-types
+  nextCanvas: PropTypes.func.isRequired,
+  previousCanvas: PropTypes.func.isRequired,
+  window: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types
+};
+
+
+/**
+ * mapDispatchToProps - used to hook up connect to action creators
+ * @memberof ManifestForm
+ * @private
+ */
+const mapDispatchToProps = dispatch => ({
+  nextCanvas: windowId => dispatch(actions.nextCanvas(windowId)),
+  previousCanvas: windowId => dispatch(actions.previousCanvas(windowId)),
+});
+
+export default connect(null, mapDispatchToProps)(miradorWithPlugins(ViewerNavigation));
diff --git a/src/components/Window.js b/src/components/Window.js
new file mode 100644
index 0000000000000000000000000000000000000000..f28a3ddeff9f276da7380a7457e338c9dc1fa92d
--- /dev/null
+++ b/src/components/Window.js
@@ -0,0 +1,82 @@
+import React, { Component } from 'react';
+import { connect } from 'react-redux';
+import PropTypes from 'prop-types';
+import ns from '../config/css-ns';
+import WindowBackground from './WindowBackground';
+import WindowTopBar from './WindowTopBar';
+import WindowViewer from './WindowViewer';
+
+/**
+ * Represents a Window in the mirador workspace
+ * @param {object} window
+ */
+class Window extends Component {
+  /**
+   * Return style attributes
+   */
+  styleAttributes() {
+    const { window } = this.props;
+    return { width: `${window.xywh[2]}px`, height: `${window.xywh[3]}px` };
+  }
+
+  /**
+   * renderViewer
+   *
+   * @return {String, null}
+   */
+  renderViewer() {
+    const { manifest, window } = this.props;
+    if (manifest) {
+      return (
+        <WindowViewer
+          window={window}
+          manifest={manifest}
+        />
+      );
+    }
+    return null;
+  }
+
+  /**
+   * Renders things
+   */
+  render() {
+    const { manifest, window } = this.props;
+    return (
+      <div className={ns('window')} style={this.styleAttributes()}>
+        <WindowTopBar
+          windowId={window.id}
+          manifest={manifest}
+        />
+        <WindowBackground
+          manifest={manifest}
+        />
+        {this.renderViewer()}
+      </div>
+    );
+  }
+}
+
+Window.propTypes = {
+  window: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types
+  manifest: PropTypes.object, // eslint-disable-line react/forbid-prop-types
+};
+
+Window.defaultProps = {
+  manifest: null,
+};
+
+/**
+ * mapStateToProps - used to hook up connect to action creators
+ * @memberof Window
+ * @private
+ */
+const mapStateToProps = ({ windows, manifests }, props) => {
+  const window = windows.find(win => props.id === win.id);
+  return {
+    window,
+    manifest: manifests[window.manifestId],
+  };
+};
+
+export default connect(mapStateToProps)(Window);
diff --git a/src/components/WindowBackground.js b/src/components/WindowBackground.js
new file mode 100644
index 0000000000000000000000000000000000000000..9ff70f1904aa9b247af5da7b9a03871ef7bdecb9
--- /dev/null
+++ b/src/components/WindowBackground.js
@@ -0,0 +1,61 @@
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
+
+/**
+ * Represents a WindowBackground in the mirador workspace
+ * @param {object} window
+ */
+class WindowBackground extends Component {
+  /**
+   * Fetches IIIF thumbnail URL
+   */
+  thumbnail() {
+    const { manifest } = this.props;
+    const thumb = manifest.manifestation.getThumbnail() || { id: 'http://placekitten.com/200/300' };
+    return thumb.id;
+  }
+
+
+  /**
+   * content - based off of manifest state
+   *
+   * @return {type}
+   */
+  content(manifest) {
+    if (!manifest) return null;
+    switch (manifest.isFetching) {
+      case true:
+        return 'spinner';
+      case false:
+        if (manifest.manifestation) {
+          return <img src={this.thumbnail()} alt="" />;
+        }
+        break;
+      default:
+        return null;
+    }
+    return null;
+  }
+
+  /**
+   * Renders things
+   */
+  render() {
+    const { manifest } = this.props;
+    return (
+      <div>
+        {this.content(manifest)}
+      </div>
+    );
+  }
+}
+
+WindowBackground.propTypes = {
+  manifest: PropTypes.object, // eslint-disable-line react/forbid-prop-types
+};
+
+WindowBackground.defaultProps = {
+  manifest: null,
+};
+
+export default WindowBackground;
diff --git a/src/components/WindowTopBar.js b/src/components/WindowTopBar.js
new file mode 100644
index 0000000000000000000000000000000000000000..19b7e35664508b44497f789a65e4c051f9df3c55
--- /dev/null
+++ b/src/components/WindowTopBar.js
@@ -0,0 +1,63 @@
+import React, { Component } from 'react';
+import { connect } from 'react-redux';
+import PropTypes from 'prop-types';
+import { actions } from '../store';
+import WindowTopBarButtons from './WindowTopBarButtons';
+import miradorWithPlugins from '../lib/miradorWithPlugins';
+import ns from '../config/css-ns';
+
+/**
+ * WindowTopBar
+ */
+class WindowTopBar extends Component {
+  /**
+   * titleContent
+   *
+   * @return {String}
+   */
+  titleContent() {
+    const { manifest } = this.props;
+    if (manifest && manifest.manifestation) {
+      return manifest.manifestation.getLabel().map(label => label.value)[0];
+    }
+    return '';
+  }
+
+  /**
+   * render
+   * @return
+   */
+  render() {
+    const { removeWindow, windowId } = this.props;
+    return (
+      <div className={ns('window-top-bar')}>
+        <h3>{this.titleContent()}</h3>
+        <WindowTopBarButtons windowId={windowId} />
+        <button type="button" className={ns('window-close')} aria-label="Close Window" onClick={() => removeWindow(windowId)}>&times;</button>
+      </div>
+    );
+  }
+}
+
+/**
+ * mapDispatchToProps - used to hook up connect to action creators
+ * @memberof ManifestListItem
+ * @private
+ */
+const mapDispatchToProps = dispatch => ({
+  removeWindow: windowId => (
+    dispatch(actions.removeWindow(windowId))
+  ),
+});
+
+WindowTopBar.propTypes = {
+  manifest: PropTypes.object, // eslint-disable-line react/forbid-prop-types
+  removeWindow: PropTypes.func.isRequired,
+  windowId: PropTypes.string.isRequired,
+};
+
+WindowTopBar.defaultProps = {
+  manifest: null,
+};
+
+export default connect(null, mapDispatchToProps)(miradorWithPlugins(WindowTopBar));
diff --git a/src/components/WindowTopBarButtons.js b/src/components/WindowTopBarButtons.js
new file mode 100644
index 0000000000000000000000000000000000000000..6bcdef6b45cd95ca78df88b7dd221d597ef62b65
--- /dev/null
+++ b/src/components/WindowTopBarButtons.js
@@ -0,0 +1,19 @@
+import React, { Component, Fragment } from 'react';
+import miradorWithPlugins from '../lib/miradorWithPlugins';
+/**
+ *
+ */
+class WindowTopBarButtons extends Component {
+  /**
+   * render
+   *
+   * @return {type}  description
+   */
+  render() {
+    return (
+      <Fragment />
+    );
+  }
+}
+
+export default miradorWithPlugins(WindowTopBarButtons);
diff --git a/src/components/WindowViewer.js b/src/components/WindowViewer.js
new file mode 100644
index 0000000000000000000000000000000000000000..77f77b7fd45e794a444861f6f1f7816f42e2f4b8
--- /dev/null
+++ b/src/components/WindowViewer.js
@@ -0,0 +1,121 @@
+import React, { Component, Fragment } from 'react';
+import PropTypes from 'prop-types';
+import { connect } from 'react-redux';
+import { actions } from '../store';
+import miradorWithPlugins from '../lib/miradorWithPlugins';
+import OpenSeadragonViewer from './OpenSeadragonViewer';
+import ViewerNavigation from './ViewerNavigation';
+
+/**
+ * Represents a WindowViewer in the mirador workspace. Responsible for mounting
+ * OSD and Navigation
+ */
+class WindowViewer extends Component {
+  /**
+   * @param {Object} props
+   */
+  constructor(props) {
+    super(props);
+
+    const { manifest } = this.props;
+    this.canvases = manifest.manifestation.getSequences()[0].getCanvases();
+  }
+
+  /**
+   * componentDidMount - React lifecycle method
+   * Request the initial canvas on mount
+   */
+  componentDidMount() {
+    const { fetchInfoResponse } = this.props;
+    fetchInfoResponse(this.imageInformationUri());
+  }
+
+  /**
+   * componentDidUpdate - React lifecycle method
+   * Request a new canvas if it is needed
+   */
+  componentDidUpdate(prevProps) {
+    const { window, fetchInfoResponse } = this.props;
+    if (prevProps.window.canvasIndex !== window.canvasIndex && !this.infoResponseIsInStore()) {
+      fetchInfoResponse(this.imageInformationUri());
+    }
+  }
+
+  /**
+   * infoResponseIsInStore - checks whether or not an info response is already
+   * in the store. No need to request it again.
+   * @return [Boolean]
+   */
+  infoResponseIsInStore() {
+    const { infoResponses } = this.props;
+    const currentInfoResponse = infoResponses[this.imageInformationUri()];
+    return (currentInfoResponse !== undefined
+      && currentInfoResponse.isFetching === false
+      && currentInfoResponse.json !== undefined);
+  }
+
+  /**
+   * Constructs an image information URI to request from a canvas
+   */
+  imageInformationUri() {
+    const { window } = this.props;
+    return `${this.canvases[window.canvasIndex].getImages()[0].getResource().getServices()[0].id}/info.json`;
+  }
+
+  /**
+   * Return an image information response from the store for the correct image
+   */
+  tileInfoFetchedFromStore() {
+    const { infoResponses } = this.props;
+    return [infoResponses[this.imageInformationUri()]]
+      .filter(infoResponse => (infoResponse !== undefined
+        && infoResponse.isFetching === false
+        && infoResponse.error === undefined))
+      .map(infoResponse => infoResponse.json);
+  }
+
+  /**
+   * Renders things
+   */
+  render() {
+    const { window } = this.props;
+    return (
+      <Fragment>
+        <OpenSeadragonViewer
+          tileSources={this.tileInfoFetchedFromStore()}
+          window={window}
+        />
+        <ViewerNavigation window={window} canvases={this.canvases} />
+      </Fragment>
+    );
+  }
+}
+
+/**
+ * mapStateToProps - to hook up connect
+ * @memberof WindowViewer
+ * @private
+ */
+const mapStateToProps = state => (
+  {
+    infoResponses: state.infoResponses,
+  }
+);
+
+/**
+ * mapDispatchToProps - used to hook up connect to action creators
+ * @memberof WindowViewer
+ * @private
+ */
+const mapDispatchToProps = dispatch => ({
+  fetchInfoResponse: infoId => dispatch(actions.fetchInfoResponse(infoId)),
+});
+
+WindowViewer.propTypes = {
+  infoResponses: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types
+  fetchInfoResponse: PropTypes.func.isRequired,
+  manifest: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types
+  window: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types
+};
+
+export default connect(mapStateToProps, mapDispatchToProps)(miradorWithPlugins(WindowViewer));
diff --git a/src/components/Workspace.js b/src/components/Workspace.js
new file mode 100644
index 0000000000000000000000000000000000000000..f9b36c36e59018a8b55199770500083e7e1c0eb8
--- /dev/null
+++ b/src/components/Workspace.js
@@ -0,0 +1,40 @@
+import React from 'react';
+import { connect } from 'react-redux';
+import PropTypes from 'prop-types';
+import Window from './Window';
+import ns from '../config/css-ns';
+
+/**
+ * Represents a work area that contains any number of windows
+ * @memberof Workspace
+ * @private
+ */
+const Workspace = ({ windows }) => (
+  <div className={ns('workspace')}>
+    {
+      windows.map(window => (
+        <Window
+          key={window.id}
+          id={window.id}
+        />
+      ))
+    }
+  </div>
+);
+
+Workspace.propTypes = {
+  windows: PropTypes.instanceOf(Array).isRequired,
+};
+
+/**
+ * mapStateToProps - to hook up connect
+ * @memberof Workspace
+ * @private
+ */
+const mapStateToProps = state => (
+  {
+    windows: state.windows,
+  }
+);
+
+export default connect(mapStateToProps)(Workspace);
diff --git a/src/config/css-ns.js b/src/config/css-ns.js
new file mode 100644
index 0000000000000000000000000000000000000000..77ad4b4c914bd35951b7f64799d611f67694d6be
--- /dev/null
+++ b/src/config/css-ns.js
@@ -0,0 +1,10 @@
+import { createCssNs } from 'css-ns';
+
+/**
+ * export ns - sets up css namespacing for everything to be `mirador-`
+ */
+const ns = className => createCssNs({
+  namespace: 'mirador',
+})(className);
+
+export default ns;
diff --git a/src/config/settings.js b/src/config/settings.js
new file mode 100644
index 0000000000000000000000000000000000000000..5532a6a728ebfed6ed0f3a52af166cdb483e25e0
--- /dev/null
+++ b/src/config/settings.js
@@ -0,0 +1,3 @@
+export default {
+  foo: 'bar',
+};
diff --git a/src/index.js b/src/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..406e2a89e6e94cb1a348350daa7a2b69bc41f4ab
--- /dev/null
+++ b/src/index.js
@@ -0,0 +1,8 @@
+import init from './init';
+
+const exports = {
+  viewer: init,
+  plugins: {},
+};
+
+export default exports;
diff --git a/src/init.js b/src/init.js
new file mode 100644
index 0000000000000000000000000000000000000000..307b11a14a6953c72b223f66f0f3501f1a1b6c13
--- /dev/null
+++ b/src/init.js
@@ -0,0 +1,29 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import { Provider } from 'react-redux';
+import deepmerge from 'deepmerge';
+import App from './components/App';
+import { actions, store } from './store';
+import settings from './config/settings';
+import './styles/index.scss';
+
+/**
+ * Default Mirador instantiation
+ */
+export default function (config) {
+  const viewer = {
+    actions,
+    store,
+  };
+  const action = actions.setConfig(deepmerge(settings, config));
+  store.dispatch(action);
+
+  ReactDOM.render(
+    <Provider store={store}>
+      <App config={config} />
+    </Provider>,
+    document.getElementById(config.id),
+  );
+
+  return viewer;
+}
diff --git a/src/lib/componentPlugins.js b/src/lib/componentPlugins.js
new file mode 100644
index 0000000000000000000000000000000000000000..a97841f2a59387f62efa3d7a61dbf0e1256e9e4f
--- /dev/null
+++ b/src/lib/componentPlugins.js
@@ -0,0 +1,14 @@
+/**
+ * componentPlugins - gets window plugins based on a component parent
+ */
+export default function componentPlugins(componentName, plugins = []) {
+  // TODO: Figure out how to handle when not running under window. Probably not
+  // a pressing priority, but relevant for tests
+  return plugins.map((pluginName) => {
+    if (window.Mirador.plugins[pluginName]
+        && window.Mirador.plugins[pluginName].parent === componentName) {
+      return window.Mirador.plugins[pluginName];
+    }
+    return null;
+  }).filter(plugin => (plugin !== (undefined || null)));
+}
diff --git a/src/lib/miradorWithPlugins.js b/src/lib/miradorWithPlugins.js
new file mode 100644
index 0000000000000000000000000000000000000000..06efc98cb8473c1104df4b9734971cf215b4d672
--- /dev/null
+++ b/src/lib/miradorWithPlugins.js
@@ -0,0 +1,60 @@
+import React, { Component, Fragment } from 'react';
+import PropTypes from 'prop-types';
+import { connect } from 'react-redux';
+import componentPlugins from './componentPlugins';
+/**
+ * miradorWithPlugins - renders and returns a component with provided plugins
+ *
+ * @param  {type} WrappedComponent
+ */
+export default function miradorWithPlugins(WrappedComponent) {
+  /**
+   */
+  class ConnectedComponent extends Component {
+    /**
+     * constructor -
+     */
+    constructor(props) {
+      super(props);
+
+      this.getPluginParent = this.getPluginParent.bind(this);
+    }
+
+    /**
+     * pluginParent - access the plugin's "parent"
+     */
+    getPluginParent() {
+      return this.pluginParent;
+    }
+
+    /**
+     * render - renders the wrapped component with the plugins.
+     */
+    render() {
+      const { config } = this.props;
+      const { plugins } = config;
+      return (
+        <Fragment>
+          <WrappedComponent {...this.props} ref={(parent) => { this.pluginParent = parent; }} />
+          { /* TODO: Refactor .name here in some way so we dont need to rely on it */}
+          {componentPlugins(WrappedComponent.name, plugins)
+            .map(component => React.createElement(
+              connect(component.mapStateToProps, component.mapDispatchToProps)(component.component),
+              { key: component.name, ...this.props, pluginParent: this.getPluginParent },
+            ))
+          }
+        </Fragment>
+      );
+    }
+  }
+
+  ConnectedComponent.propTypes = {
+    config: PropTypes.instanceOf(Object).isRequired,
+  };
+
+  /**
+   */
+  const mapStateToProps = state => ({ config: state.config });
+
+  return connect(mapStateToProps, null)(ConnectedComponent);
+}
diff --git a/src/reducers/config.js b/src/reducers/config.js
new file mode 100644
index 0000000000000000000000000000000000000000..92df252e757a53160f7c3fe1305aa35cbb286a82
--- /dev/null
+++ b/src/reducers/config.js
@@ -0,0 +1,18 @@
+import deepmerge from 'deepmerge';
+import ActionTypes from '../action-types';
+
+/**
+ * configReducer - does a deep merge of the config
+ */
+const configReducer = (state = {}, action) => {
+  switch (action.type) {
+    case ActionTypes.UPDATE_CONFIG:
+      return deepmerge(state, action.config);
+    case ActionTypes.SET_CONFIG:
+      return action.config;
+    default:
+      return state;
+  }
+};
+
+export { configReducer as default };
diff --git a/src/reducers/index.js b/src/reducers/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..a52f1c82bd3259b2a501689a603aad622bbe5c2d
--- /dev/null
+++ b/src/reducers/index.js
@@ -0,0 +1,21 @@
+import { combineReducers } from 'redux';
+import workspaceReducer from './workspace';
+import windowsReducer from './windows';
+import manifestsReducer from './manifests';
+import configReducer from './config';
+import infoResponsesReducer from './infoResponses';
+
+/**
+ * Action Creators for Mirador
+ * @namespace RootReducer
+ */
+
+const rootReducer = combineReducers({
+  workspace: workspaceReducer,
+  windows: windowsReducer,
+  manifests: manifestsReducer,
+  config: configReducer,
+  infoResponses: infoResponsesReducer,
+});
+
+export default rootReducer;
diff --git a/src/reducers/infoResponses.js b/src/reducers/infoResponses.js
new file mode 100644
index 0000000000000000000000000000000000000000..9954dcb9b4c7ad1480fe09062a0c1ef98cd0591f
--- /dev/null
+++ b/src/reducers/infoResponses.js
@@ -0,0 +1,39 @@
+import ActionTypes from '../action-types';
+
+/**
+ * infoResponsesReducer
+ */
+const infoResponsesReducer = (state = {}, action) => {
+  switch (action.type) {
+    case ActionTypes.REQUEST_INFO_RESPONSE:
+      return Object.assign({}, state, {
+        [action.infoId]: {
+          isFetching: true,
+        },
+      });
+    case ActionTypes.RECEIVE_INFO_RESPONSE:
+      return Object.assign({}, state, {
+        [action.infoId]: {
+          json: action.infoJson,
+          isFetching: false,
+        },
+      });
+    case ActionTypes.RECEIVE_INFO_RESPONSE_FAILURE:
+      return Object.assign({}, state, {
+        [action.infoId]: {
+          error: action.error,
+          isFetching: false,
+        },
+      });
+    case ActionTypes.REMOVE_INFO_RESPONSE:
+      return Object.keys(state).reduce((object, key) => {
+        if (key !== action.infoId) {
+          object[key] = state[key]; // eslint-disable-line no-param-reassign
+        }
+        return object;
+      }, {});
+    default: return state;
+  }
+};
+
+export default infoResponsesReducer;
diff --git a/src/reducers/manifests.js b/src/reducers/manifests.js
new file mode 100644
index 0000000000000000000000000000000000000000..48041ac3a01a23b87e7666d4888e3158224fc6b7
--- /dev/null
+++ b/src/reducers/manifests.js
@@ -0,0 +1,40 @@
+import manifesto from 'manifesto.js';
+import ActionTypes from '../action-types';
+
+/**
+ * manifestsReducer
+ */
+const manifestsReducer = (state = {}, action) => {
+  switch (action.type) {
+    case ActionTypes.REQUEST_MANIFEST:
+      return Object.assign({}, state, {
+        [action.manifestId]: {
+          isFetching: true,
+        },
+      });
+    case ActionTypes.RECEIVE_MANIFEST:
+      return Object.assign({}, state, {
+        [action.manifestId]: {
+          manifestation: manifesto.create(action.manifestJson),
+          isFetching: false,
+        },
+      });
+    case ActionTypes.RECEIVE_MANIFEST_FAILURE:
+      return Object.assign({}, state, {
+        [action.manifestId]: {
+          error: action.error,
+          isFetching: false,
+        },
+      });
+    case ActionTypes.REMOVE_MANIFEST:
+      return Object.keys(state).reduce((object, key) => {
+        if (key !== action.manifestId) {
+          object[key] = state[key]; // eslint-disable-line no-param-reassign
+        }
+        return object;
+      }, {});
+    default: return state;
+  }
+};
+
+export default manifestsReducer;
diff --git a/src/reducers/windows.js b/src/reducers/windows.js
new file mode 100644
index 0000000000000000000000000000000000000000..508200fbdb3be9822833a37c10aa5d21d236e64a
--- /dev/null
+++ b/src/reducers/windows.js
@@ -0,0 +1,31 @@
+import ActionTypes from '../action-types';
+
+/**
+ * windowsReducer
+ */
+const windowsReducer = (state = [], action) => {
+  switch (action.type) {
+    case ActionTypes.ADD_WINDOW:
+      return state.concat(Object.assign({}, action.payload));
+    case ActionTypes.REMOVE_WINDOW:
+      return state.filter(window => window.id !== action.windowId);
+    case ActionTypes.NEXT_CANVAS:
+      return state.map((window) => {
+        if (window.id === action.windowId) {
+          return Object.assign({}, window, { canvasIndex: window.canvasIndex + 1 });
+        }
+        return window;
+      });
+    case ActionTypes.PREVIOUS_CANVAS:
+      return state.map((window) => {
+        if (window.id === action.windowId) {
+          return Object.assign({}, window, { canvasIndex: window.canvasIndex - 1 });
+        }
+        return window;
+      });
+    default:
+      return state;
+  }
+};
+
+export default windowsReducer;
diff --git a/src/reducers/workspace.js b/src/reducers/workspace.js
new file mode 100644
index 0000000000000000000000000000000000000000..2219a7bc3fdbb7bc373c9ea0237ae3d7e25f4942
--- /dev/null
+++ b/src/reducers/workspace.js
@@ -0,0 +1,15 @@
+import ActionTypes from '../action-types';
+
+/**
+ * workspaceReducer
+ */
+const workspaceReducer = (state = {}, action) => {
+  switch (action.type) {
+    case ActionTypes.FOCUS_WINDOW:
+      return Object.assign({}, state, { focusedWindowId: action.windowId });
+    default:
+      return state;
+  }
+};
+
+export { workspaceReducer as default };
diff --git a/src/store.js b/src/store.js
new file mode 100644
index 0000000000000000000000000000000000000000..bbb6c6e1cb30f7853ac971e599de3ba78bf1f321
--- /dev/null
+++ b/src/store.js
@@ -0,0 +1,20 @@
+// Topics for understanding
+// redux modules for nested stores
+// state normalisation
+// (normalizer library)
+
+import thunkMiddleware from 'redux-thunk';
+import { createStore, applyMiddleware } from 'redux';
+import { composeWithDevTools } from 'redux-devtools-extension';
+import rootReducer from './reducers/index';
+import * as ActionCreators from './actions';
+
+// Create a Redux store holding the state of your app.
+// Its API is { subscribe, dispatch, getState }.
+export const store = createStore(
+  rootReducer,
+  composeWithDevTools(applyMiddleware(thunkMiddleware)),
+);
+
+export const actions = ActionCreators;
+export default { actions, store };
diff --git a/src/styles/index.scss b/src/styles/index.scss
new file mode 100644
index 0000000000000000000000000000000000000000..f37eb5dc2f4a4d823401ae7b2cf93931f407bbd7
--- /dev/null
+++ b/src/styles/index.scss
@@ -0,0 +1,64 @@
+body {
+  background: white;
+  height: 100%;
+}
+
+.mirador {
+  &-control-panel {
+    position: absolute;
+    box-sizing: border-box;
+    padding: 15px;
+    margin:0px;
+    left:0;
+    top:0;
+    bottom:0;
+    width: 300px;
+    border-right: 2px solid black;
+  }
+
+  &-workspace {
+    position: absolute;
+    box-sizing: border-box;
+    margin: 0;
+    padding-left: 300px;
+    top:0;
+    right:0;
+    bottom:0;
+    left:0;
+    overflow: scroll;
+  }
+
+  &-window {
+    border: 1px solid black;
+    overflow: hidden;
+    position: relative;
+  }
+
+  &-window-top-bar {
+    background: linear-gradient(to bottom, rgba(0, 0, 0, .65) 0%, rgba(0, 0, 0, 0) 100%);
+    color: white;
+    position: absolute;
+    z-index: 10;
+
+    h3 {
+      margin: 0;
+    }
+  }
+
+  &-osd-container {
+    background: gray;
+    bottom: 0;
+    height: 100%;
+    position: absolute;
+    top: 0;
+    width: 100%;
+  }
+
+  &-osd-navigation {
+    bottom: 10px;
+    left: 0;
+    position: absolute;
+    right: 0;
+    text-align: center;
+  }
+}
diff --git a/webpack.config.js b/webpack.config.js
new file mode 100644
index 0000000000000000000000000000000000000000..b643a0c157d3c7d4335bd4c45415fab4b7ba516d
--- /dev/null
+++ b/webpack.config.js
@@ -0,0 +1,94 @@
+const path = require('path');
+const TerserPlugin = require('terser-webpack-plugin');
+const paths = require('./config/paths');
+
+const eslintLoaderConfig = {
+  test: /\.(js|mjs|jsx)$/,
+  enforce: 'pre',
+  use: [
+    {
+      options: {
+        formatter: require.resolve('react-dev-utils/eslintFormatter'),
+        eslintPath: require.resolve('eslint'),
+
+      },
+      loader: require.resolve('eslint-loader'),
+    },
+  ],
+  include: paths.appSrc,
+};
+
+const babelLoaderConfig = {
+  test: /\.(js|mjs|jsx)$/,
+  include: paths.appSrc, // CRL
+  loader: require.resolve('babel-loader'),
+  options: {
+    plugins: [
+      [
+        require.resolve('babel-plugin-named-asset-import'),
+        {
+          loaderMap: {
+            svg: {
+              ReactComponent: '@svgr/webpack?-prettier,-svgo![path]',
+            },
+          },
+        },
+      ],
+    ],
+    cacheDirectory: true,
+    // Save disk space when time isn't as important
+    cacheCompression: true,
+    compact: true,
+  },
+};
+
+module.exports = [
+  {
+    entry: './src/store.js',
+    output: {
+      path: path.join(__dirname, 'dist'),
+      filename: 'm3core.umd.js',
+      libraryTarget: 'umd',
+      library: 'm3core',
+    },
+    module: {
+      rules: [
+        eslintLoaderConfig,
+        babelLoaderConfig,
+      ],
+    },
+  },
+  {
+    entry: './src/index.js',
+    output: {
+      path: path.join(__dirname, 'dist'),
+      filename: 'mirador.min.js',
+      libraryTarget: 'umd',
+      library: 'Mirador',
+      libraryExport: 'default',
+    },
+    resolve: { extensions: ['.js'] },
+    module: {
+      rules: [
+        eslintLoaderConfig,
+        babelLoaderConfig,
+        {
+          test: /\.scss$/,
+          use: [
+            'style-loader', // creates style nodes from JS strings
+            'css-loader', // translates CSS into CommonJS
+            'sass-loader', // compiles Sass to CSS, using Node Sass by default
+          ],
+        }],
+    },
+    optimization: {
+      minimizer: [
+        new TerserPlugin({
+          terserOptions: {
+            mangle: false,
+          },
+        }),
+      ],
+    },
+  },
+];